我对文件或符号链接很好奇/etc/mtab
。我相信这是一个遗留机制。在我使用过的每一个现代 Linux 上,这是一个符号链接/proc/mounts
,如果mtab
是“普通”文件系统上的常规文件,那么/etc
在使软件与挂载命名空间一起工作时就会遇到挑战。
很长一段时间我一直认为两件事之一是正确的。任何一个:
- 我们正在等待软件
/etc/mtab
引用过期或更新 - 其他非 Linux 操作系统仍然使用相同的文件名,并且链接是为了跨平台合规性
然而,这两种想法似乎都站不住脚。我找不到任何在 Linux 之外保留相同文件名的现代操作系统的良好参考。而且它似乎已经存在了太久了,不仅仅是一个向后兼容性问题;更重大的变化似乎在同一时间发生和消失。
所以我想知道是否/etc/mtab
真的只是出于历史原因。它是否已被正式弃用?有没有固体的现代的[截至 2023 年] 保留它的原因是什么?
我不想从我的系统中删除它,但作为软件开发人员,我想了解它的用处以及是否要避免它。
答案1
现在是否应该考虑弃用 /etc/mtab 的使用?
取决于你问的是谁。如果你问 Linux 上 mount 的作者,答案是肯定的;2018年以来它说
...默认情况下在编译时完全禁用,因为在当前的 Linux 系统上它更好...
我认为这是一个非常有力的声明。在此之前,/etc/mtab“也受支持”,但人们认为最好不要使用它:
这个真正的 mtab 文件仍然受支持,但在当前的 Linux 系统上,最好将其作为符号链接......
这句话从那时就有了2014年。在此之前,只是受到推崇的:
mtab 文件仍然受支持,但建议使用符号链接...
换句话说,是的。这已被弃用近十年了。你不应该依赖它。忽略。
如果有的话,事实来源是/proc/mounts。 (考虑到 Linux 挂载命名空间的存在,正确、唯一且明确地列出挂载在逻辑上是一个不平凡的问题)
答案2
我打算将其添加为评论,但比 更好的实用程序/etc/mtab
,它已被弃用,甚至/proc/mounts
是受支持且有用的
findmnt
默认情况下,它并不总是存在,具体取决于发行版,但几乎总是在存储库中。它提供与/etc/mtab
和相同的信息/proc/mounts
,并且具有用于解析数据并仅打印出需要或想要的内容的开关,或者只是使其更清晰。这些可以通过其man
页面找到。