CentOS 系统修复模式
最近在一次调 CentOS 系统分辨率的时候出了意外,造成的结果就是登录后提示“Could not apply the stored configuration for monitors”,结果上网一搜,原来是我在改分辨率的时候被系统创建了显示器配置文件,等我一登录系统就读取配置文件,发现没有匹配的显示器,结果报错。网上的解决办法是删除那个显示器配置文件,也就是执行如下命令:
rm -f $HOME/.config/monitors.xml
可话虽如此,网上那些人还可以在提示此错误时打开 shell,我这 CentOS 7 系统根本无法打开 shell,就一整个错误提示窗口铺满整个屏幕,连关闭按钮都没有,快捷键也用不了,重启依旧无效。
这时我就想到了在开机时进入 Linux 的修复模式,可开机就俩菜单哪个都不是进入修复模式的。后来我在网上看到有人说可以修改启动菜单项以进入修复模式,于是我就试试,结果还真可以。其实修改起来很简单,当开机进入系统启动菜单选择时,按下“e
”键以编辑该启动菜单,再将光标移动到“crashkernel = auto
”项,将该项的值由“auto
”改为“linux single
”。
然后再按“Ctrl-X
”重启系统就进入了修复模式,输入root
用户密码即可以 root 用户登录 shell。
那么这个“linux single
”是何方神圣呢?其实它就是 linux 的单用户模式,也就是 root 用户模式,在引导项里面指定了这个值就表示让 grub 引导内核启动后以 root 用户模式登录。相应地,我们也可以在“/etc/inittab
”配置文件里面指定系统的运行级别,如果指定为 1 即表示以单用户模式登录。
我们通过在启动菜单里面编辑引导项其实只是临时的,系统重启之后它们又会恢复原值,如果想永久改变它们的某些项,我们可以在 grub 的配置文件里面进行修改,如果不知道 grub 的配置文件在什么地方,可以使用命令“whereis grub
”进行查找。在我的机子上它位于如下位置:
grub: /usr/lib/grub /etc/grub.d /etc/grub2.cfg /usr/share/grub
那么我们可以查看“/etc/grub2.cfg
”文件,结果显示的内容跟我们在编辑启动菜单时看到的内容一样。当然,查看和修改该文件需要超级用户权限。不过,一般不建议修改。