Kubuntu 22.04 恢复模式无法以只读(RO)方式挂载根文件系统求助
Kubuntu 22.04 恢复模式无法以只读(RO)方式挂载根文件系统求助
嘿,我太懂你这种困惑了——明明GRUB已经传了ro参数,结果进了恢复模式shell还是RW状态,确实有点反直觉,毕竟恢复模式本该支持只读挂载来做文件系统检查之类的操作。
问题出在Kubuntu(其实整个Ubuntu系都这样)的恢复模式启动流程上:哪怕GRUB传递了ro,initramfs里的恢复模式脚本会自动把根分区重新挂载为读写模式,目的是方便用户执行修复操作(比如修改配置、安装依赖),但这就破坏了你想要的只读状态。
给你两个可行的解决办法:
方法一:直接启动到只读单用户shell(最快捷)
- 开机时按住
Shift键进入GRUB菜单,找到带“recovery mode”的启动项,按e进入编辑界面 - 找到以
linux开头的那一行,把里面的recovery或者你改成的single替换成init=/bin/bash - 按下
Ctrl+X或者F10启动系统,这时候会直接进入一个极简的shell,根分区会保持只读挂载状态——因为我们跳过了后续会自动重挂载为RW的启动脚本
这个方法最直接,完全满足你需要RO挂载根文件系统的需求,而且不用修改系统文件。
方法二:修改恢复模式脚本(适合需要长期调整的情况)
如果你希望每次进入恢复模式菜单都能默认RO挂载,那可以修改恢复模式的启动脚本:
- 先正常启动到Kubuntu系统,打开终端
- 编辑恢复模式的脚本文件:
sudo nano /usr/share/initramfs-tools/scripts/local-top/recovery-mode - 找到类似下面的代码段(负责挂载根分区为RW):
把它注释掉(在行首加mount -o remount,rw "$rootmnt"#),或者改成挂载为RO:mount -o remount,ro "$rootmnt" - 保存文件后,更新initramfs:
sudo update-initramfs -u - 下次进入恢复模式时,根分区就会保持只读挂载了
不过要注意:修改这个脚本会改变恢复模式的默认行为,如果你之后需要在恢复模式里写文件,得手动执行mount -o remount,rw /才行。
另外补充下:进入只读shell后,大部分只读操作(比如查看日志、检查文件系统)都能正常执行,要是临时需要读写,可以执行mount -o remount,rw /切换,用完再切回去就行。
备注:内容来源于stack exchange,提问作者Kenshi
相关产品推荐
相关产品推荐

