我用新的实用程序和共享库更新了旧的 Linux 启动盘。它仍然有一个空的/etc/mtab
开始,在旧磁盘上/etc/mtab
已更新,在新磁盘上/etc/mtab
保持为零。我现在看到我们链接/etc/mtab
到/proc/mounts
但问题仍然存在:
更新了什么
/etc/mtab
以使其保持最新状态?从什么时候变成
/etc/mtab
的/proc/mounts
我们如何跟上 Linux 中发生的所有根本性变化?
谢谢。
答案1
/etc/mtab
在常规文件的系统上,更新是和命令/etc/mtab
的工作。此外,一旦根文件系统以读写方式安装,引导脚本就会更新,方法是从引导脚本中提取信息或写入引导脚本所知道的已安装内容。mount
umount
/etc/mtab
/proc/mounts
长期以来,人们一直在争论它/etc/mtab
应该是常规文件还是指向 的符号链接/proc/mounts
。将其设为常规文件的缺点是它可能与系统状态不同步(例如,如果在挂载或卸载操作期间根文件系统是只读的)。它也不适用于诸如 mount 之类的现代功能命名空间,其中进程可能看不到相同的安装点,即使它们看到相同的安装点/etc/mtab
。但将其设为符号链接/proc/mounts
有一个缺点,即内核过去不报告人们想要的所有信息:
- 内核过去常常隐藏默认的挂载选项,但默认值取决于内核版本,因此很难从 中找出确切的挂载选项
/proc/mounts
,而可以/etc/mtab
准确地为您提供传递给mount
命令的内容。 - 内核用来报告绑定安装作为原始安装的副本,而不是作为绑定安装。
现代内核通过报告更多信息,/etc/mounts
因此不再有理由更喜欢创建/etc/mtab
常规文件。
Debian 错误 #494001Debian 停止/etc/mtab
作为常规文件进行维护。该线程的要点(我尚未验证其准确性,但我没有理由怀疑):
- 线程的相关部分主要是初始消息。其余的主要是与过渡相关的担忧。
- “对于 linux >= 2.6.26,/proc/mounts 包含 /etc/mtab 中的所有信息,以及更多信息”。
- 这附加补丁包含要更新的代码的最后版本
/etc/mtab
(/etc/init.d/mtab.sh
)。
我们如何跟上 Linux 中发生的所有根本性变化?
祝你好运……每个人都有一套不同的他们认为是根本性的变化。所有这一切一定都出现在LWN(Linux 每周新闻),但是流量非常高,并且包括对拟议的即将发生的更改的讨论。