我/etc/fstab
的只有两行:根分区和 debugfs,而/etc/mtab
除了这两行之外,还有更多行,例如(sysfs,proc,udev,devpts,tmpfs,cgroup,...)。
额外的挂载点从哪里来?
答案1
这些挂载通常由 initramfs/initrd 脚本或其他早期启动系统初始化脚本执行,或者在完全使用 的发行版上systemd
,由initramfs 中的.mount
真实环境或迷你 systemd 环境执行的 systemd 单元文件执行。systemd
例如,Debian 9.mount
默认有以下单位:
/lib/systemd/system/dev-hugepages.mount
/lib/systemd/system/dev-mqueue.mount
/lib/systemd/system/proc-fs-nfsd.mount
/lib/systemd/system/proc-sys-fs-binfmt_misc.mount
/lib/systemd/system/run-rpc_pipefs.mount
/lib/systemd/system/sys-fs-fuse-connections.mount
/lib/systemd/system/sys-kernel-config.mount
/lib/systemd/system/sys-kernel-debug.mount
答案2
不要求分区必须列在 中/etc/fstab
。毕竟,您可以mount
使用命令行参数中显式指定的所有内容运行并挂载另一个文件系统,而无需使用/etc/fstab
.
然而,您所看到的是已经为您自动安装的东西。
如今,在 Debian 上,大多数文件系统(它们不是分区,因为没有磁盘支持这些文件系统)是由systemd
.
其中许多都是人们systemd
所说的“API 文件系统”,因为它们实际上是内核向应用程序提供的 API 的一部分。 此类文件系统的列表已硬连线到systemd
代码中。观察一下,它与文档不同步systemd
。
挂载 API 文件系统是作为进程 #1 运行的系统管理软件的常见任务之一,甚至没有 Linux,从 BSD(原文如此!)init
到systemd
.
- FreeBSD 挂载的 API 文件系统
init
没有文档记录,但类似systemd
可以在其代码中找到。 - 挂载的 API 文件系统
runit-init
在 Debian 上和范斯穆伦伯格rc
没有记录。它们可以在通用脚本文件中找到rc
,mountkernfs.sh
rc
,两个系统都使用。(请注意,这是明确屏蔽的 van Smoorenburg脚本之一systemd
,因为它完全由其systemd
所做的事情所支持。) - nosh 工具集中安装的 API 文件系统
system-manager
(适用于 Linux 和 BSD)均列在其手册页 (qv) 中,可通过man system-manager
.
进一步阅读
- API文件系统。 Freedesktop.org。
- 乔纳森·德博因·波拉德 (2018)。 ”API 文件系统和早期设备“
system-manager
.. 小吃指南。软件。