我通过修改启动脚本将整个分区 sda2 挂载为只读。它使整个系统除了 /dev 文件夹外都变为只读。我想知道为什么……?
另外,我只希望一个文件夹(如 /mnt/var/log)为 RW,并将所有文件夹保留为 RO,但即使尝试以多种方式挂载,它也没有发生,而且它也是 RO。
有没有什么方法可以在 Slackware 中实现这个目标?
答案1
/dev
不是真正的文件系统;它是内核提供的功能的接口,它像文件系统一样公开,因为这样可以让各种程序轻松使用。这就是为什么尽管您的/dev/sda2
挂载是只读的,但它仍然是可写的。(您会发现/proc
,如果您有它,/sys
也会有类似的行为;原因是一样的。)
无法指定以只读方式挂载的分区的可写子集。如果您希望/mnt/var/log
或希望以与 相同的方式运行/dev
,则需要以内核为 执行的操作相同/dev
:创建一个单独的分区,并将其以读写方式挂载到您希望可写入的目录中。
答案2
/dev 通常会安装一个 ramfs 或 tmpfs,名为 udev 的软件会根据其配置和内核的消息在其上创建/删除设备。
如果你想要在只读根分区上创建一个 rw 目录,可以使用一个简单的命令
mount ramfs /here/i/want/write -t ramfs