Windows Ubuntu 双系统 - 在操作系统之间共享文件

额,我有一台上网本,所以在Windows上也不能玩游戏,没问题。但是我要买一台新的台式电脑,配置更高,能够运行最流行的游戏,并且我想在上面安装Windows来玩不兼容Ubuntu的游戏和软件。我也想保留Ubuntu作为我的主操作系统,所以我打算设置双启动。
在这台电脑上,我会使用一个小的固态硬盘来存放两个操作系统,并且还有一个第二块硬盘(500GB的机械硬盘)用来存储我的文件。我希望避免每次下载文件时都需要将文件从一个操作系统复制到另一个操作系统。我的问题是:有没有办法让这两个操作系统都使用那个机械硬盘作为用户目录,比如将其格式化为NTFS,然后让Ubuntu将其挂载到/home目录下,同时让Windows将用户文件(例如“我的文档”、“我的视频”和“下载”等)存储在该分区上?
2个回答

把/home放在NTFS分区是不可取的,因为Linux无法保留NTFS分区上的所有权和权限。
我建议将/home保留在SSD上的默认/分区,并在格式化为NTFS的"存储"分区中创建符号链接到具有大部分数据(文档、音乐、图片、视频等)的文件夹,这样Ubuntu和Windows都可以读写。
由于/home还存储了所有配置文件,将/home保留在SSD上的/分区中有助于保持速度。
详细的操作方法请参考:http://www.howtogeek.com/howto/35807/how-to-harmonize-your-dual-boot-setup-for-windows-and-ubuntu/ 按照"How To"中的说明进行操作后,可以像这样创建符号链接:
  1. 打开Nautilus并删除您在/home/[user]中不使用的文件夹,例如Documents等。您应该已经在Storage文件夹中有了Documents等文件夹。(在Linux中,分区也是一个文件夹)。
  2. 导航到Storage文件夹,您将在那里看到Documents等文件夹。
  3. 右键单击Document文件夹,选择“创建链接”。这将创建一个名为“link to Documents”的文件夹。
  4. 同样地,在Storage文件夹中创建“Link to Music”,“Link to Pictures”和所有其他子文件夹。
  5. 将这些“Link to…”文件夹复制到您的Home文件夹/home/[user]
  6. 最后,右键单击“Link to Documents”并将其重命名为“Documents”。对于其他链接,重复此操作。

或者

按照之前的方法删除/home/[user]中的文件夹。

通过按下Ctrl+Alt+T打开终端,并输入

ln -s /media/storage/Documents /home/[user]/Documents
ln -s /media/storage/Downloads /home/[user]/Downloads
ln -s /media/storage/Public /home/[user]/Public
ln -s /media/storage/Pictures /home/[user]/Pictures
ln -s /media/storage/Music /home/[user]/Music
ln -s /media/storage/Videos /home/[user]/Videos

希望这能帮到你。

非常感谢你,在互联网上寻找帮助时,我找到了这个解决方案,我很喜欢它,但是我不知道如何创建符号链接,所以非常感谢你。 - Diego
我在答案中添加了一个简短的教程,告诉你如何创建符号链接。 - user68186
嗨 :-) 我正在寻找配置自己的磁盘的最佳方法,我觉得你的回答很有意思。不过,我想知道,将/storage/[user]文件夹(存储分区)挂载到/home/[user]文件夹(操作系统分区)而不是创建符号链接,这样做可行吗?是否可以挂载单个文件夹,还是每个用户都需要创建一个分区? - leaf
实际上,NTFS可以存储POSIX权限 - phuclv

我按照如何协调Windows和Ubuntu的双重引导设置中指示的每一步进行操作,结果完美无缺,只是我无法将NTFS分区中的项目发送到垃圾箱。

如果你遇到相同的问题,只需在fstab中关于ntfs分区的那一行添加选项"uid=1000"和"gid=1000"。 我的配置看起来像这样:

# storage mount 
UUID=3F4648C2710CF3A1 /media/storage/    ntfs-3g        auto,user,utf8,uid=1000,gid=1000,rw 0 0

所以从头开始的完整步骤是(由YatriTrivedi从howtogeek.com和Manu Järvinen从his blog提供)。
1. 在干净的驱动器上设置一个新的GPT分区表(使用gparted从一个live usb ubuntu发行版)。以类似的方式规划您的分区方案:
- 至少100MB的EFI系统分区(ESP),这将是系统引导的核心 - Windows分区(NTFS) - Linux分区(Ext4) - 用于存储文件的大分区(或第二个硬盘)(NTFS) - 一个小的交换分区(SWAP)
别忘了为以后方便起见给您的分区标记名称。
从我的个人经验来看,如果你计划在Windows上玩游戏或使用专业软件(如Adobe Suite、ARCGIS、Autodesk等),建议在Windows分区上至少有100GB的空间。如果有150GB或更多的空间,那就更好了。Ubuntu软件对存储容量的要求要低得多,所以根据你的需求,可以轻松设置一个50到75GB的Linux分区。
2. 使用sudo apt install ntfs-3g命令让Linux处理ntfs文件系统,这是两个操作系统都能读取的唯一文件系统。
3. 使用sudo mkdir /media/storage或其他你想要分区出现的位置。如果不知道在哪里,只需复制/粘贴这行命令即可。
4. 使用sudo cp /etc/fstab /etc/fstab.backup命令备份你的fstab文件,该文件包含有关系统应如何处理磁盘分区的信息。编辑fstab将告诉Linux在每次启动时正确挂载该分区,因此备份总是很有用的,以防万一出现问题。sudo cp /etc/fstab.backup /etc/fstab命令可用于恢复备份(如果需要)。
5. 现在你需要找到分区的UUID,它是一个唯一标识符,作为序列号使用:sudo blkid。输入密码,然后找到对应于存储分区的那一行。 /dev/sda1: UUID=”23A87DBF64597DF1″ TYPE=”ntfs” /dev/sda2: UUID=”2479675e-2898-48c7-849f-132bb6d8f150″ TYPE=”ext4″ /dev/sda5: UUID=”66E53AEC54455DB2″ LABEL=”storage” TYPE=”ntfs” /dev/sda6: UUID=”05bbf608-87fa-4473-9774-cf4b2602d8d6″ TYPE=”swap”
这就是你在初始格式化时标记的地方。复制UUID。
6. gksudo gedit /etc/fstab 这会打开 fstab 以供编辑。在 fstab 的底部添加以下行,并粘贴您的 UUID 而不是我的: # 存储挂载 UUID=3F4648C2710CF3A1 /media/storage/ ntfs-3g auto,user,utf8,uid=1000,gid=1000,rw 0 0 设置 uid=1000 和 gid=1000 可以让您能够从 Linux 发送项目到回收站。不要触碰 fstab 中的其他内容,确保 UUID 正确无误。
7. 保存并重新启动(重要)。
现在,您应该能够在“位置”菜单下看到一个名为“storage”的选项了。接下来,在 Linux 和 Windows 中配置您的子文件夹,将您的文档等存储在该分区中!

如何让Windows和Ubuntu的双启动设置和谐共存似乎对您的问题至关重要。如果远程资源发生变化或消失,您能否在问题中包含它的重要部分?仅包含链接的回答可能会被Ask Ubuntu删除。 - David Foerster
既然这个链接是首先给出的最佳答案,那是否把详细信息放在第一个答案中会更合理呢?如果不行的话,我很乐意编辑我的回答! - Nat Azodnem
这可能有用,但其他答案的状态大多与您的状态无关。我坚持我在之前评论中提出的建议。 - David Foerster