如何高效地分区一个单独的Windows-Ubuntu双启动磁盘?

这不是一个关于如何安装Ubuntu或者如何在安装过程中使用手动分区的问题,而是一个关于访问权限的问题,以及如何避免它们给你带来困扰的问题...
;-)
这个问题不会教你如何在硬盘上进行分区,但会告诉你在安装过程的第4步中应该做什么,根据你的个人用例,选择以下的其中之一:

注意:上述问题也可以用于多个磁盘,但答案中的示例仅针对一个磁盘。


可能是Ubuntu分区大小的重复问题。 - Bishan
3个回答

我对Windows很熟悉,但Ubuntu不太熟悉

(或者反过来)

Windows和Ubuntu都是符合POSIX标准的操作系统,它们都允许您定义哪个用户可以访问哪个单个文件、目录、分区或磁盘!

但它们做事情的方式略有不同(有些人需要全职工作来清理整天错误的数据所有权!)

所以拿一个平均硬盘来说:

Windows Installed

如果您有多个分区,那么您可能正在运行UEFI系统。请不要删除任何这些分区!请专注于您拥有的最大分区,并在下面的练习中使用该分区...
根据您的使用情况,为每个操作系统提供足够的空间来安装其自己的系统和应用程序(下面的数字是最低和推荐的系统要求,因此您应该将它们乘以一个适合您使用情况的因子)。 注意:Ubuntu还需要一个交换分区,大小为此处描述的大小
剩余的磁盘空间(-10%)可以用于创建一个数据分区,使用gparted格式化为NTFS。请参阅下面的注释以获得以下布局:

Partitioning - Medium

然后:

  • 安装Windows操作系统
  • 在Windows下创建所有用户
  • 安装Ubuntu操作系统
  • 在Ubuntu下创建所有用户,并使用与Windows相同的用户名和密码。
  • 再次启动Ubuntu Live CD,运行gparted,将Windows和Ubuntu分区缩小至淡黄色条的两到三倍。然后创建数据分区并将其格式化为"ntfs"
  • fstab中挂载此分区(例如:/media/data

以下步骤由user68186提供,从这里复制

  • 按下Ctrl+Alt+T,将您的数据目录移动到/Data挂载点,并逐行复制粘贴每一行后按Enter(将"UserName"替换为您的用户名):

      md /media/data/UserName
      md /media/data/UserName/{bin,Desktop,Documents,Downloads,Music,Pictures,Public,Templates,Videos}
      mv /home/UserName/bin /media/data/UserName/bin
      mv /home/UserName/Desktop /media/data/UserName/Desktop
      mv /home/UserName/Documents /media/data/UserName/Documents
      mv /home/UserName/Downloads /media/data/UserName/Downloads
      mv /home/UserName/Music /media/data/UserName/Music
      mv /home/UserName/Pictures /media/data/UserName/Pictures
      mv /home/UserName/Public /media/data/UserName/Public
      mv /home/UserName/Templates /media/data/UserName/Templates
      mv /home/UserName/Videos /media/data/UserName/Videos
    
  • 为您的用户在其他地方创建上述目录的符号链接:

      ln -s /media/data/UserName/bin/ bin
      ln -s /media/data/UserName/Desktop/ Desktop
      ln -s /media/data/UserName/Documents/ Documents
      ln -s /media/data/UserName/Downloads/ Downloads
      ln -s /media/data/UserName/Music/ Music
      ln -s /media/data/UserName/Pictures/ Pictures 
      ln -s /media/data/UserName/Public/ Public 
      ln -s /media/data/UserName/Templates/ Templates 
      ln -s /media/data/UserName/Videos/ Videos
    
  • 返回Windows,将用户目录移动到D:驱动器的users目录中。

为什么?
当你启动Windows(或Ubuntu)时,Windows和Ubuntu都有自己的系统文件和应用程序安装在各自的环境中。此外,你不必担心哪个文件放在哪里:所有Ubuntu文件都可以在Windows的d:\home目录下找到,而所有Windows文件都可以在Ubuntu的/users目录下找到。
如果你使用以下任何一种情况:
- Ubuntu命令:chown、chmod或Windows命令:cacls, - 如果你使用任何一个文件管理器右键单击目录或文件来使用set permissions
那么请永远不要在Windows的D:\home目录内或在Ubuntu的/Users目录内设置权限!同时,永远不要移动文件在/users和/home之间(或者在D:\home和D:\Users之间)!只能复制文件! (然后删除原始文件,因为移动将尝试将权限从一个完全不同的文件系统移动到另一个文件系统,这会给你带来麻烦,你应该避免这种情况)
“为什么你的驱动器上有10%的未分配空间?”嗯,这是当你的电脑全新时的一个小技巧:你并不需要那么多空间,而这个空闲空间就像是备胎一样,如果你需要扩展其他分区时,它可以派上用场!;-)
现在回到如何安装Ubuntu的第5步,继续操作...

很好的回答。只是要注意,Ubuntu桌面版的最低要求4GB并不足够支持安装应用程序和库文件。下次我设置双系统时,如果使用SSD和HD,我会假设Ubuntu和Windows一样需要大量空间,将SSD空间平均分配给两个操作系统。 - WillC
1@WillC 我同意你的观点(Ubuntu在我的SSD上有一个64GB的分区用于/,以及1TB的分区用于/home),但这些只是厂商的最低要求... ¯\(ツ) - Fabby
@Fabby,Windows的“移动用户目录”链接已经失效了。你能否确认一下这个链接是否等同于以下内容: https://support.microsoft.com/zh-cn/help/931087/how-to-redirect-user-shell-folders-to-a-specified-path-by-using-profil ? - madtyn

我对Windows和Ubuntu都非常熟悉

太好了!欢迎你!:-) 也许你已经读过上面的非专业版本,想知道它对你有什么好处...
嗯,我不会告诉你:

  • 在一个单一的 MBR 磁盘上创建 4 个主分区将限制你自己 (尽管以上某些用户可能已经在 GPT 磁盘上创建了它们),
  • 也不知道使用什么分区方案来安装你的操作系统:这就是 FHS 和 Microsoft 服务器安装指南的用途所在。
  • 也并不意味着 Microsoft 服务器真的还是 POSIX 兼容的服务器,而是 Interix 子系统。
  • 为了加快启动速度,将 Ubuntu 和 Windows 的操作系统文件放在 SSD 上,将数据文件放在 HDD 上。
  • 在 SSD 上创建交换空间是个不好的主意(尽管情况正在改善),适用于 Ubuntu 和 Windows。
你都知道这些,对吧?
嗯,关于NTFS和Ubuntu之间的互操作性,你可能不知道的是:
- 文件所有权和权限可以在Windows和Ubuntu之间互通。 - 可以定义Windows-Unix兼容的ACL。 - Windows的Junction点可以被视为Ubuntu的符号链接。 - 可以支持创建和更新压缩文件。
然而,你必须注意:
  • 使用正确的挂载选项:inheritpermissionsstreams_interface=windowshide_hid_fileswindows_namescompression
  • 使用ntfs-3g.usermap创建/.NTFS-3G/UserMapping文件,并手动编辑它(上述的permissions不需要)
  • 为了能够进行镜像备份,使用roefs_raw挂载卷
  • 始终在主机系统上进行复杂权限的管理!
  • 使用ntfs-3g-advanced驱动程序(以获得所有特性)
  • 创建ACL(重新编译驱动程序,在配置命令中设置选项--enable-posix-acls)
  • 在Windows上创建符号链接,并在/.NTFS-3G/中定义它们(例如:/.NTFS-3G/D:/Users)
  • 对于所有的花哨功能和选项,可以参考man ntfs-3g以及ntfs-3g的创作者之一所写的高级选项文章

    我是一个刚开始使用Windows和/或Ubuntu的用户

    Windows和Ubuntu都是先进的操作系统,允许您定义哪个用户可以访问哪个单独的文件、目录、分区或磁盘!但是定义所有这些访问权限可能是一项繁琐的任务。(有人整天都在做这个工作,是一份全职工作!)

    所以,以安装了Windows的普通硬盘为例:

    Windows Installed

    如果您有超过1个分区,则可能正在运行UEFI系统。 请不要删除其中任何一个分区! 专注于您拥有的最大分区,并在以下练习中使用该分区...
    您可以从浅黄色的颜色中看到它仅被部分使用。 如果超过50%满,请开始节省资金购买更大的硬盘驱动器。 如果超过80%请立即停止阅读这个答案并首先升级您的硬盘驱动器!;-) 理想情况是给出:
    • 40%的磁盘空间用于Windows(缩小分区)
    • 40%的Ubuntu(创建EXT4分区)
    • 20%供双方共同使用(创建FAT32分区:如果不需要Windows 2000兼容性,则最大卷大小为8TB)
    • 理想情况是也要创建交换分区以此处描述的大小
    如果按照上述规则操作,则会获得:

    Partitioning - Beginner

    为什么? 当您启动Windows(或Ubuntu)时,每个操作系统都有其自己的系统文件和应用程序安装在各自的环境中。

    有时候您希望拥有一些文件对两个操作系统都是共享的(音乐?视频?),这就是第三个分区的作用:它会以D:驱动器的形式显示在Windows下,以/home/YourUserName/data目录的形式显示在Ubuntu下。您可以安全地将任何文件存储在那里,而两个操作系统都不会破坏文件的所有权、权限等...因为它基本上就像一个大型的USB闪存驱动器,但位于硬盘上(FAT32)

    警告:您的/data卷(Windows下的D:)的最大文件大小为4GB!

    现在返回到官方安装说明的第4步并继续...