本文介绍以单用户模式引导CentOS、RHEL 7/8系统的方法,有三种方式可以实现目标。
前言 单用户模式,也称为维护模式,它允许一个超级用户恢复/修复系统问题。 通常,这些问题无法在多用户环境中解决。系统可以启动,但不能正常运行,否则您将无法登录。 它在基于Red Hat(RHEL)7/8的系统上使用runlevel1.target或rescue.target。 在这种模式下,系统会挂载所有本地文件系统,但不会激活网络接口。 它仅启用某些服务和最少的功能来修复系统。 当您要运行fsck来修复损坏的文件系统,重置忘记的root密码或修复系统上的挂载点问题时,此方法最有用,参考Linux入门记录六:系统启动流程+单用户修改root密码+GRUB加密。 您可以使用以下三种方法以单用户模式启动CentOS、RHEL 7/8系统: 方法1:通过向内核添加“rd.break”参数以单用户模式引导CentOS、RHEL 7/8系统。 方法2:以单用户模式引导CentOS、RHEL 7/8系统,方法是在内核中用“init=/bin/bash or init=/bin/sh”参数替换“rhgb quiet”一词。 方法3:以单用户模式引导CentOS、RHEL 7/8系统,方法是用内核中的“rw init=/sysroot/bin/sh”参数替换“ro”一词。
方法1:通过向内核添加“rd.break”参数以单用户模式引导CentOS、RHEL 7/8系统 重新引导系统,在GRUB2引导屏幕上,按“e”键以编辑选定的内核,您需要选择第一行,第一行是新的内核,而如果您想使用较旧的内核引导系统,则可以选择其他行:
根据您的RHEL、CentOS版本,找到单词“linux16”或“linux”,按键盘上的“End”按钮,转到行尾,然后添加关键字“rd.break”,如下所示:屏幕快照,然后按“Ctrl+x”或“F10”以启动进入单用户模式。 对于RHEL、CentOS 7系统,您需要找到linux16这个词,而对于RHEL、CentOS 8系统,则需要找到Linux:
此更改将您的根文件系统挂载到“read only (RO)”模式,您可以通过运行以下命令进行检查。另外,下面的输出清楚地表明您处于“Emergency Mode”,即紧急模式: # mount | grep root
要更改“sysroot”文件系统,您需要使用读取和写入(RW)模式将其重新安装: # mount -o remount,rw /sysroot 运行以下命令来更改环境,通常称为“jailed directory”或“chroot jail”: # chroot /sysroot
现在,单用户模式已完全可以使用,解决退出单用户模式的问题后,请执行以下步骤。 CentOS、RHEL 7/8默认使用SELinux,因此请创建以下隐藏文件,该文件将在下次启动时自动对所有文件进行重新标记: # touch /.autorelabel 最后,运行以下命令重新启动系统,或者,键入“exit”命令两次以重新启动系统: # reboot -f
方法2:以单用户模式引导CentOS、RHEL 7/8系统,方法是用内核中的“init=/bin/bash or init=/bin/sh”参数替换“rhgb quiet”一词 重新引导系统,在GRUB2引导屏幕上,按“e”键以编辑选定的内核参数:
找到单词“rhgb quiet”并将其替换为“init=/bin/bash”或“init=/bin/sh”,然后按“Ctrl+x”或“F10”以单用户模式启动。 init=/bin/bash的屏幕截图:
init=/bin/sh的屏幕截图:
默认情况下,这将以只读(RO)模式挂载“/”分区,因此您需要使用READ和WRITE(RW)模式重新挂载“/”文件系统以进行更改: # mount -o remount,rw /
现在,您可以执行所需的任何任务,完成后,运行以下命令以在重新引导时启用SELinux重新标记: # touch /.autorelabel 最后重新启动系统: # exec /sbin/init 6
方法3:以单用户模式引导CentOS、RHEL 7/8系统,方法是用内核中的“rw init=/sysroot/bin/sh”参数替换“ro”一词 要中断自动引导,请重新引导系统,然后按GRUB2初始屏幕上的任意键。 这将显示系统上可用内核的列表,并选择新的内核,然后按“e”键编辑所选的内核参数。 找到以单词“linux”或“linux16”开头的行,并将“ro”替换为“rw init=/sysroot/bin/sh”,完成后,按“Ctrl+x”或“F10”以单用户模式启动。 通过运行以下命令将环境更改为“chroot jail”: # chroot /sysroot 对系统进行任何必要的更改,完成后,运行以下命令以在重新引导时启用SELinux重新标记: # touch /.autorelabel 最后重新启动系统: # reboot -f
相关主题 |