/usr 应该在哪个分区上

/usr 应该在哪个分区上

按照文档/bin/sbin包含系统启动和修复所需的最少文件,并且/usr是单独的分区,因此可以轻松卸载以进行修复。

但根据分区信息,启动所需的所有目录(除/boot)必须位于与 相同的分区上/。这些必需的目录是/etc/usr

我发现这两份文件相互矛盾。

  1. 根据第一个链接/bin,和/sbin对于启动必不可少,那么为什么第二个链接只说/etc/usr是必需的?系统是否只能使用/bin和在单用户模式下启动/sbin,但对于完整模式/usr,和/etc也是必需的?
  2. /usr为什么和必须/etc与根位于同一分区/boot,而/bin、 和则不必如此/sbin
  3. 怎么/usr才能设为只读?据我所知,/usr/bin它用于由包管理器存储二进制文件。
  4. 另外,我在某处读到过/bin,其中/sbin包含用于挂载其他文件系统的代码,如果是这样的话,谁会挂载它/?这是由 grub 完成的吗?

答案1

您正在阅读 2006 年的文献,其中提到的实践似乎相互矛盾,这一想法并不奇怪。

然而,让我们根据 Linux 发行版的现状来回答这个问题。

  • /sbin 是系统二进制文件
  • /etc 是主机特定的系统范围的配置数据
  • /usr 是共享的,只读数据
  • /var 是主机特定的、持久的、可变的数据
  • /run 是运行时(自上次启动以来)变量数据

鉴于让我们考虑您的每一个观点:

  1. 这是因为包括 init.d 在内的服务管理器需要主机配置和程序的共享(用户)/usr/bin。第二个链接表示正常启动,而第一个链接是指系统恢复等管理任务。考虑到上下文,两者都是正确的。

  2. 现代 Linux 实际上没有 /bin,而是在 /usr/bin 中,这在第二个文档中被视为必不可少。/boot 不必位于同一分区,因为它包含引导加载程序的数据,并且 Linux 在引导加载程序之后启动自身时不一定需要它。此外,/boot 通常是一个单独的分区,带有引导加载程序支持的文件系统。这只剩下 /sbin,Linux 内核将在某个时间点之后调用 init,但是文件系统作为 initram 的一部分安装。/etc/fstab 中包含的信息可能包含在调用 /sbin/init 之前要安装 /sbin/ 的位置,因此它可以是单独的。

  3. 第二个链接实际上并不是说 /usr 必须以只读方式挂载,而是从应用程序的角度来看,它应该是只读的。但是,文件仍然会作为安装和更新软件的管理任务的一部分进行更改。因此,某些工具(如包管理器)会在此处写入数据。

  4. GRUB 知道文件系统,但考虑到您的措辞,值得注意的是,从 Linux 的角度来看这并不重要。例如,在 Android 上,内核(系统程序)和 initram 存储在没有文件系统的分区中。然后,引导加载程序会将 Linux 和 initram 加载到内存中并调用 Linux。然后,Linux 将从 initram 挂载根。initram 包含访问硬件和挂载根文件系统所需的内核模块和软件,它不需要任何配置来执行此操作,因为它是从引导加载程序传递过来的。但随后它将访问 /etc/fstab 之类的文件,并在调用 /sbin/init 之前挂载 /sbin(如果需要)。

答案2

根据 Ubuntu 文档

以下目录绝对不能放在它们自己独立的分区中:

  • /bin——此目录存储大多数用户可访问的系统范围的可执行文件。
  • /sbin——此目录包含用于核心系统功能的可执行文件,并由系统管理员用于维护系统。
  • /proc——这是包含进程信息的系统使用目录。用户几乎从未访问过。
  • /dev——此目录包含系统创建的到您安装的硬件的链接,并且与 /proc 一样几乎从未被直接访问。

任何其他目录都可以放在单独的分区上,只要其挂载在 /etc/fstab 中正确记录即可。但是,这样做可能会严重影响性能。

Grub 加载内核和 initramfs(初始 RAM 文件系统)。initramfs 检查并安装驱动器,然后启动引导过程。

笔记: /etc包含系统配置文件;包括fstab,指定挂载点。我不确定 initramfs 如何处理这个问题。但我认为/etc应该将其添加到列表中,因为粗略的网络搜索表明需要修改引导文件或内核以适应移动/etc到单独的分区。

参考

https://help.ubuntu.com/community/DiskSpace

答案3

这是 systemd 引入的回归,它与桌面环境的集成更加紧密,因此在启动时需要库和守护进程,而在传统的 Unix 系统上,这些库和守护进程不会被视为最小核心系统的一部分。

对于现代硬件来说,单独的/usr分区对于大多数用户来说通常是不值得的,因此这被认为是一种可以接受的权衡。

相关内容