如何让 2 个(或更多)发行版共享公共的 /home 和 /usr 分区?

如何让 2 个(或更多)发行版共享公共的 /home 和 /usr 分区?

我尝试寻找这个问题的答案,但无论是运气不好还是我的无能,我都无法做到。

在尝试进行此操作之前,我希望更好地了解以下情况。

我有一个 2.0TB(或 1,862 GiB,这将使计算变得更容易一些)的内置硬盘,我想在其上安装 2 或 3 个独立的发行版,因为它们都有我喜欢的部分,尽管由于这样或那样的原因它们不能全部都在一个发行版中。

我想按如下方式对磁盘进行分区:

|  Partition  |    Format   |     Use     |     Size    |
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
     sda1     |     EX2     |  Bios Boot  |     1 GiB*  |
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
     sda2     |     EX4     |  Linux-1 /  |    50 GiB   |
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
     sda3     |     EX4     |  Linux-2 /  |    50 GiB   |
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
     ....     |     ....    |  .....-# /  |    50 GiB   |
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
     sda4     |     Swap    |     Swap    |    12 GiB   |
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
     sda5     |     EX4     |     /usr    |   100 GiB   |
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
                           TOTAL THUS FAR |   163 GiB   |
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
                       REMAINING FOR HOME |  1,699 GiB  |
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
     sda6     |     EX4     |    /home    |  1,699 GiB  |
  • Bios Boot(/boot)会低得多,但将所有内容计算为 GiB 会更容易。数学。

无论如何,我对于这样做有几个疑问。

  1. 两个或更多发行版是否可以共享相同的/usr分区/home?如果您想知道的话,我想访问 中的所有内容/home以及 中的所有内容,/usr例如图标、主题等。
  2. 上述分区方案可行吗?
  3. 我知道其中一些必须是逻辑分区,但我没有使用它们的经验。如果你是我,你会如何设置它?
  4. 假设以上所有一切看起来都合理,我似乎记得在某处读到过,每当/usr位于单独的分区时,您都必须执行一些额外的步骤才能使操作系统正常启动。如果是这样,我应该怎么做才能使其正常工作?
  5. 假设我对 Linux 还很陌生,但很快就能学到很多东西。第一次就搞定的几率有多大?我把所有东西都搞砸,然后不得不重新安装一个发行版,直到我有更多的经验,这种几率有多大?

我现在能想到的就这么多。我很乐意回答你对我的这个想法的任何问题。我很高兴听到你与我分享关于这个小项目的信息!

答案1

我认为 /usr 不是一个好主意,因为那样可能会发生冲突,并且会用它们的发行版的文件互相替换,但是对于 /home,尽管它对相同两个发行版的损害比 /usr 要小,但我仍然不推荐它,除非你也想要一个损坏的系统(特别是如果你做诸如 Hibernate 等事情)。

答案2

发行版之间的共享/usr几乎不可能,因此不会产生任何差异。程序文件就驻留在程序文件中,而发行版之间的一个主要差异就是它们的程序文件不同。因此,共享唯一/usr有意义的方式是,如果两个发行版只是一个发行版的不同安装,或者可能是小版本(如 Ubuntu 和 Lubuntu)。即便如此,你也会遇到冲突问题,因为安装了不同的软件包,不同的软件包版本(即使它们仅在软件包升级时有所不同)等等。总的来说,它可能是理论上在某些有限的情况下可以共享/usr分区,但实际管理它极其不切实际;并且在大多数情况下(例如 Ubuntu 和 Fedora),/usr简单的共享是行不通的。

共享/home更为实用,但仍存在一些挑战。基本上,用户配置文件 ( ~/.config-for-some-program) 通常包含特定于发行版的引用 - 例如,指向可能因发行版而异的图标的指针。甚至一个发行版的不同版本之间也可能存在差异(例如,Ubuntu 14.04 和 15.10)。因此,尽管共享分区/home是可行的,但重要的是您要采取措施确保不同发行版上的用户拥有不同的主目录。对于 Ubuntu 和许多其他发行版,最容易做到这一点的方法是为用户提供不同的用户名 - 例如,ubuntu对 Ubuntu 和fedoraFedora 使用用户名;或对 Ubuntu 14.04 和 15.10 分别使用trustywily。安装后,您可以使用 之类的工具更改用户名而不更改主目录位置usermod,尽管最好从另一个帐户执行此操作。(就我个人而言,我通常会root为此类事情激活直接登录,尽管 Ubuntu 的安全策略不鼓励这样做。这个问题本身就是一个长期的争论。)

还有一点:您提到了“Bios Boot 分区”,但我认为您指的是单独的/boot分区。这样的分区不应在发行版之间共享。在大多数情况下,不需要单独的/boot分区;但是如果您确实使用分区,则每个发行版都需要单独的/boot分区。这个问题与 的问题类似/usr,但不那么严重——内核和 GRUB 配置位于 中/boot,因此可能会发生文件冲突,尤其是对于密切相关的发行版。

另一方面,名字BIOS 启动分区指 GRUB 在其中存储其自身部分内容的小型分区(通常约为 1 MiB)。此分区具有没有文件系统;GRUB 只是将其代码“原始”转储到那里。它仅由 GRUB 使用,仅在GUID 分区表 (GPT)磁盘,并且仅在 BIOS/CSM/传统模式(而不是 EFI/UEFI 模式)下启动时才有效。在新硬件上的新安装中,我建议使用 EFI 模式而不是 BIOS 模式,这样就不需要 BIOS 启动分区,但需要EFI 系统分区 (ESP),这是一个 ~100-1,000 MiB(我建议 >= 550 MiB)的 FAT32 分区,用于存放 EFI 引导加载程序。一个 ESP 可以在发行版之间共享。我意识到我刚刚抛出了很多您可能不熟悉的术语和概念。如果是这样,那很好;您最好现在就学习这些内容,而不是等到以后再学习,因为您犯了错误,因为您不明白自己在做什么,导致安装失败。以下是一些参考资料,可帮助您避免犯此类错误:

单引导时这一切都更简单,因为您不需要在多个发行版之间协调引导模式——您可以在 BIOS 模式或 EFI 模式下安装一个发行版,使用哪种模式并不重要。但是,如果两个发行版的引导模式不同,那么麻烦就开始了。

相关内容