谁在 GNU/Linux 系统中挂载 /proc 和 /sys?

谁在 GNU/Linux 系统中挂载 /proc 和 /sys?

如果你为嵌入式设备构建自定义的GNU/Linux系统,是否需要执行

mount -t proc proc /proc
mount -t sysfs sysfs /sys

在 init 进程中的某个地方还是由内核自动完成的?我读过有关此的相互矛盾的陈述。一本嵌入式 Linux 书籍建议在 init 脚本中运行命令,而我在某处读到 Systemd 没有这样做,因为它是在创建用户空间之前由内核完成的。

到底什么才是真实的呢?谁登上/proc/sys

答案1

如果您有systemd,它会自动执行此操作(还有一些额外的安装点,包括/dev//dev/shm/dev/pts/run甚至/tmp)。

如果您有不同的初始化系统,则必须根据其文档执行此操作,很可能手动使用/etc/fstab或/和脚本。

以下是使用 systemd 自动安装在 Fedora 38 上的内容,无需任何配置文件:

debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
devtmpfs on /dev type devtmpfs (rw,nosuid,noexec,relatime,seclabel,size=32889888k,nr_inodes=8222472,mode=755)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime,seclabel)
ramfs on /run/credentials/systemd-sysctl.service type ramfs (ro,nosuid,nodev,noexec,relatime,seclabel,mode=700)
ramfs on /run/credentials/systemd-tmpfiles-setup-dev.service type ramfs (ro,nosuid,nodev,noexec,relatime,seclabel,mode=700)
ramfs on /run/credentials/systemd-tmpfiles-setup.service type ramfs (ro,nosuid,nodev,noexec,relatime,seclabel,mode=700)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,nosuid,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,size=13156600k,nr_inodes=819200,mode=755)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=6578296k,nr_inodes=1644574,mode=700,uid=1000,gid=1000)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=49337248k)
tmpfs on /var/tmp type tmpfs (rw,nosuid,nodev,relatime,seclabel)

相关内容