Linux 中的哪些目录必须是根文件系统的一部分?

Linux 中的哪些目录必须是根文件系统的一部分?

我正在 KVM 下构建一些虚拟机,其中基础系统将是一个映像(尚未具体决定哪种格式),所有剩余的系统文件将是从分布式文件系统挂载的其他分区。

例如,/ 将成为主映像的一部分,但 /home 将从其他地方挂载。我的目标是使基本系统映像尽可能小,从而使系统尽可能不成为根分区的一部分。

所以我的问题是:Linux 中的哪些目录必须是根文件系统的一部分?例如,我假设 /etc 和 /sbin 等目录必须是,因为这些目录是允许启动系统和挂载其他分区的实用程序所在的地方。但 /opt 当然可以位于不同的分区上。

如果有必要的话,我正在构建的系统将是 Ubuntu Server 12.04 或者可能是 14.04(如果我等到它发布后再生产和部署这些系统的话)。

答案1

自 90 年代以来,情况并没有发生太大变化。通常,/etc /bin /sbin /lib /lib64 就是您在 / 上所需的一切。您可以使用远少于 1GB 的空间(我在几个 CentOS 虚拟机上有 256M,有足够的空间)

答案2

我建议你不要尝试这样的设计,除非你正在使用已经完成的非常新的 Linux 系统举动/usr。否则,您会遇到各种问题,主要问题是打包的二进制文件被拆分到共享文件系统和每个机器独有的文件系统中。这完全抵消了您通过共享文件系统可能获得的任何好处。

无论如何,在系统移动后/usr,根文件系统几乎包含挂载点、挂载点的符号链接,并且/etc否则为空;因此它可以非常小。这样的系统根本不包含打包的二进制文件;所有内容都在 下/usr

(这在现代 Linux 系统上是可行的,因为 initramfs 可以完成启动所需的文件系统的挂载工作。)

值得注意的是,Ubuntu 有不是完成/usr迁移后,可能要等到 systemd 进入后才会发生。它将错过 14.04 LTS,如果 Ubuntu 寿命那么长,我预计它要到 16.04 LTS 才会出现。我不确定你为什么选择 Ubuntu,但我会认真考虑另一个发行版(不仅仅是因为这个原因)。

答案3

你应该花些时间去理解Linux 文件系统层次标准

你可以有一个简单的分区方案,如/boot/或许多,许多分区

我的最小安装中有 < 1GB 的数据/

相关内容