【问题标题】:Does sysfs procfs devtmpfs mounted by kernel?sysfs procfs devtmpfs 是否由内核挂载?
【发布时间】:2015-12-16 08:14:39
【问题描述】:

我正在研究 systemd。

我以为 systemd 会在内核初始化后的引导过程中挂载 sysfs(/sys)、procfs(/proc)、devtmpfs(/dev)。

但是我的 systemd 调试日志显示 systemd 没有挂载这样的文件系统。(它只挂载 cgroups、securityfs 等...)

此类文件系统何时挂载,由谁挂载?内核会挂载 sys、proc、dev 吗?

【问题讨论】:

    标签: kernel boot systemd


    【解决方案1】:

    是的,它们是由 systemd PID1 挂载的,请参阅 systemd 源中的 src/core/mount-setup.c。

    【讨论】:

    • yes systemd 尝试挂载 sysfs 和 procfs。但是在 archlinux 中,initramfs 已经比 systemd 更早地挂载了它们
    【解决方案2】:

    第一点:Linux 内核无法在用户级别挂载伪文件系统。这也是为什么,例如,dev/ 中的所有条目必须由用户级对应项创建(proc/sys/ 不会发生这种情况,因为内核能够在已挂载的文件系统上创建条目)。

    在 Linux 发行版中,伪文件系统的挂载通常由 udev 在用户级别完成。当然,内核必须已配置为支持这些文件系统(否则,将无法挂载)。

    【讨论】:

    • 那么,你的意思是那些伪文件系统应该由用户进程挂载吗?(如udevd或systemd等)?
    • 是的,我就是这个意思。
    • 但是内核挂载了几个伪文件系统。内核源代码中有几个 mount() 函数。(fs/sysfs/mount.c,fs/proc/root.c)。这些函数实际上是挂载 sysfs 和 procfs 吗?
    猜你喜欢
    • 1970-01-01
    • 2023-01-19
    • 2014-02-01
    • 1970-01-01
    • 2011-05-23
    • 2014-11-05
    • 2013-02-13
    • 2016-12-08
    • 1970-01-01
    相关资源
    最近更新 更多