对于台式机和家庭服务器,你有什么关于磁盘分区方案的推荐?

你推荐桌面电脑使用什么分区方案?我一直创建三到四个主分区——根目录、交换空间、用户目录,有时还会单独创建一个引导分区。Ubuntu的默认安装提供了逻辑卷管理(LVM)。我从来没有添加过额外的驱动器或空间,所以似乎并不是很重要。不过,每次重新安装系统时,我总觉得可能有更好的方法。

1为了快速备份,您可以包括一个备份分区(ext4),并在更新系统之前使用clonezilla定期备份根目录(不包括home)。 - Renae Lider
这真是遗憾,它是“基于观点的”。确实有一些答案是基于观点的,但应该有一种方法可以用论据回答这个问题,使其不基于观点。 - Quidam
11个回答

  • /(即根文件系统)
  • swap
  • /home
  • 这样做的最大原因是,您可以对Ubuntu安装进行任何操作,而不会影响您家目录中的音乐/视频/其他文件。当我升级到新的Ubuntu版本并且安装过程出现问题时,我特别喜欢这一点。


    4我认为这是最好的方法,因为你可以将操作系统安装与个人数据分开。然而,最终的答案应该是“适合你最好的”。 - Jeremy Kerr
    我没有考虑升级,可能是因为我主要在工作中使用Ubuntu,那里没有很多需要保留的个人文件。我最喜欢你的方法。 - mfisch
    3我也使用这个分区方案。在您的服务器上,如果需要备份策略,我还会添加一个/backup分区。 - Pierre-Yves Gillier
    3我总是使用这个解决方案来进行桌面操作。 20-30%的根目录 / 70-80%的主目录 /home 1或2 GB的交换空间。 - neuromancer
    +1 这对于Bittink所描述的所有原因来说都非常重要。如果你想要一个与Windows兼容的设置,可以将主分区设置为NTFS格式,在启动时自动挂载该分区,并将你使用的文件夹建立符号链接到你的主目录。 - Evan Plaice
    2@Evan:能否将NTFS分区挂载为/home?这样做会不会造成混乱,因为NTFS没有Linux权限?/home不是需要这些权限吗? - MestreLion
    @mestreLion 是和不是。我有一个额外的/Home分区,因为当我清除操作系统时,我通常不喜欢携带所有多余的应用程序设置。我的做法是,为所有的Home文件夹(文档、公共等)创建一个NTFS分区,并将它们符号链接到实际存在于ext3文件系统上的/home文件夹中。这是我迄今发现的使用NTFS分区作为/home的最方便和透明的方法,你只需要在fstab中正确设置权限,允许NRFS驱动器的所有权限,否则最终会出现一些问题。 - Evan Plaice
    有人可以解释一下为什么要为/root单独分区吗?root用户有5%的磁盘空间作为保证,所以我不明白为什么要使用独立的/root分区。实际上,大多数人并不在/root中存储文件。 - Braiam

    一般来说,除非您同时运行多个Linux发行版,否则不需要单独设置/home或/boot分区。
    Ubuntu的桌面CD和服务器/备用CD安装程序都具有在现有系统上进行安装的功能,可以保留您的主目录(以及本地系统目录:/usr/local、/usr/src和/var/local)。此功能还会重用现有用户的用户ID和组ID,如果它与您在安装过程中创建的用户具有相同的用户名。
    要在安装时使用此选项,请选择高级分区选项,然后选择现有的/或/home分区。在弹出的对话框中,确保所选文件系统与该分区的现有文件系统匹配,并且未选中格式化框。然后按照其他选项正常进行。
    在Ubuntu 10.10中,我们希望添加一个选项到安装程序中,当检测到您已经安装了现有的Ubuntu副本时,会提供替换为您尝试安装的新版本的选项(在幕后使用上述功能)。虽然这个选项最终没有被采纳,但很可能会在Ubuntu 11.04中推出。
    关于单独的/boot分区,那是过去硬件限制的遗留物(引导加载程序1024柱面限制)。在现代系统上,我想不出单独的/boot会有任何实际优势,而且如果没有给予足够的空间,它有可能会填满并造成自身的问题,因为Ubuntu不会自动删除旧内核。

    1当你在博客上谈论这个问题时,我不同意。我喜欢一个根分区所提供的简洁性的想法,但是将/home放在一个单独的分区中非常方便,以防在重新安装Ubuntu时,我可以要求格式化/,而不是/home。 - Scaine
    3这大致与在 / 上未勾选格式框的效果相同。显然它不会格式化分区,但会删除在开始新安装之前存在的系统文件。 - Evan
    4有一个单独的/home分区有很多数字上的优势。你可以通过格式化根分区来进行干净的系统安装,但仍然保留你的数据。你可以在/home上使用加密或LVM,但对于根分区来说可能不需要这样做。为了备份简便起见,你只需对/home分区进行转储。对于高级用户来说,你可以调整系统并选择不同的文件系统用于应用程序和数据(这也是有意义的)。等等。 - Huygens
    2关于/boot的另一个重要事项是:如果你需要恢复系统,你无法确定恢复工具是否支持。如果你在基本安装中使用类似XFS在LVM上的文件系统,你可以在/raw分区上使用简单的ext3文件系统来作为/boot,这样即使是最简单的恢复工具也应该支持。 - Mei
    3分离的/boot分区在EFI/UEFI混乱后成为强制要求。 - Braiam
    2在预装Windows的MBR上,分离的/boot可以让您在不必恢复Windows引导加载程序的情况下卸载Ubuntu。 - ignis
    我不同意/boot分区不需要,也不同意/home分区不需要。也许对你来说可以,但是我非常希望在出现问题或被迫重新安装时保留我的数据! - Quidam

    1. /(即根文件系统)- 用于您的操作系统

    2. swap - 交换空间,应该比您的RAM容量稍大一些

    3. /home - 用于存储您的数据文件

    只有在使用备选安装程序设置全盘加密时,您才真正需要单独的/boot分区。目前,/boot中的文件需要解密,以便操作系统能够启动。

    一般来说,如果您想要的话,可以添加其他分区:

    通过重新安装操作系统来保留分区-这通常是拥有单独的/home分区的原因。如果您通过编译源代码安装了许多应用程序,那么单独的/usr/local或/opt也可能很有用。
    限制分区上文件使用的空间-例如,单独的/home分区将防止您的操作系统在填满home目录时变得非常缓慢,因为您仍然可以作为root用户登录并从home目录中删除一些文件。
    使用不同的文件系统-我使用更快、不太可靠的文件系统来存储/tmp,但我将/home存放在速度较慢、具有日志记录功能的文件系统上,以获得更好的数据保护。
    如Asmerito所建议的,您应该考虑将除/boot之外的所有分区放在LVM上。这将允许您灵活调整分区大小,甚至将其扩展到其他磁盘上。但是您可能不会预料到需要这种功能。
    如果您在备用安装程序中使用全盘加密,它将自动创建一个/boot分区、一个swap分区和另一个用于存储加密数据的分区。这个加密分区然后用于容纳一个LVM分区。这个LVM分区然后用于容纳所有额外的分区。最初,这只是您的根分区。
    希望这些都对您有所帮助。

    /root 目录是为 root 用户而设,而不是系统。 - Braiam

    至少,你需要一个根分区和一个交换分区。我强烈建议使用一个家目录分区,这样当你的家目录分区空间不足时,不会影响你的应用程序,更重要的是,不会影响核心组件。
    我通过一次艰难的经历才发现了这一点,当我的根分区空间耗尽时,我甚至无法启动Gnome桌面。我不得不通过终端登录并删除一些东西 :(

    1在最新版本的Ubuntu中不应该发生这种情况 - 我们现在确保/tmp目录(这些应用程序需要写入的位置)总是有足够的空间。 - RAOF
    @RAOF:这是在Ubuntu 9.04发生的。当然,现在我正在使用10.04版本。 - Nathan Osman
    4如果你不打算使用挂起到磁盘功能,其实也不一定需要交换分区。 - Marius Gedminas
    如果内核崩溃,它会想要写入内存转储。如果空间不足,它就不会写入(但否则不会造成任何损害)。内核崩溃转储可以在以后进行分析 - 它会在重新启动时从交换空间复制过来。 - Mei
    当你的内存非常低时,/swap 不是非常有用吗? - Quidam

    对于服务器安装来说,最佳实践是使用LVM,这样如果你的存储空间不足,可以轻松扩展。我的建议是:
    1. /boot
    2. /
    3. LVM(如果添加更多磁盘,只需调整LVM大小即可)。
    注意:如果你使用多用户环境,将/home创建在LVM上是一个好的做法。

    我使用:

    主分区:

    • /boot = 1 GB

    扩展分区与逻辑卷管理(LVM):

    • / = 5 GB
    • /var = 3 GB
    • /var/spool/cache = 2 GB ReiserFS(本地Squid磁盘缓存,用于所有浏览器)
    • /home = +500 GB 用于用户,包括一个公共文件夹(通过smb在本地和远程共享)。
    • /tmp = 128 MB(ramFS)。
    • swap = 内存的两倍。

    我多年来一直使用这个方案,非常满意。欢迎提出建议。


    你不需要那么多/boot空间,除非你安装了很多内核。256 MB已经足够了。如果你只有两个分区,即/boot和LVM,那么你不需要在扩展容器中创建LVM分区,因为旧式但广泛使用的MBR支持最多4个主分区。除非你的RAM很少,否则你不需要采用2RAM=交换空间的方案,如果你打算使用休眠功能并且拥有足够的RAM来处理工作负载,那么1.1RAM=交换空间就足够了。如果你有8 GB RAM并且不进行大量视频编辑,那么1 GB的交换空间(甚至没有交换空间)就足够了。 - Huygens
    那真是太多的分区了。 - Quidam

    在我的家用服务器上,我喜欢创建//swap/var/log。因为我运行防火墙并将所有活动记录到/var/log中,将日志创建为单独的分区可以确保即使日志变得庞大,也不会阻止我启动。

    如果您计划安装多个发行版,并希望使用相同的主文件夹,您可以通过单独安装一个/home分区并为每个发行版使用相同的用户名来实现。但是,如果您只使用Ubuntu,就没有必要拥有单独的/home分区。

    我总是在安装新版本的Ubuntu时进行全新安装,所以对我来说,有一个单独的/home是有意义的,因为我不必每次都备份我的主文件夹。

    2我要补充一点,对于我来说,现在转到了 Arch Linux 上,这个特别有用。这样,我只需要更换操作系统,几乎不费力气就能保留所有的数据。 - Victor
    1这里很多答案的问题在于它们没有使用多重引导,并且只考虑了不使用多重引导的情况下的人们。 - Quidam

    在我的笔记本桌面上:

    • 8GB 分配给 / (即文件系统的根目录)

    • 2 倍安装内存分配给 swap (例如,3GB 内存 = 为 swap 分配了 6GB)

    • 剩余的磁盘空间分配给 /home


    我认为现代内存计算机已经不再适用于“两倍安装内存”的规则了。 - Quidam
    是的,这意味着对我来说需要64 GB的交换空间,不确定我是否愿意提供那么多。也许下一次我建造的计算机会有64 GB的内存,那样就会有128 GB的交换空间了。这是不可行的。 - Victor