云网牛站
所在位置:首页 > 初入Linux圈 > 以单用户模式引导CentOS、RHEL 7/8系统的三种方法

以单用户模式引导CentOS、RHEL 7/8系统的三种方法

2020-05-02 16:18:54作者:吴弈达稿源:云网牛站

本文介绍以单用户模式引导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”键以编辑选定的内核,您需要选择第一行,第一行是新的内核,而如果您想使用较旧的内核引导系统,则可以选择其他行:

以单用户模式引导CentOS、RHEL 7/8系统的三种方法

根据您的RHEL、CentOS版本,找到单词“linux16”或“linux”,按键盘上的“End”按钮,转到行尾,然后添加关键字“rd.break”,如下所示:屏幕快照,然后按“Ctrl+x”或“F10”以启动进入单用户模式。

对于RHEL、CentOS 7系统,您需要找到linux16这个词,而对于RHEL、CentOS 8系统,则需要找到Linux:

以单用户模式引导CentOS、RHEL 7/8系统的三种方法

此更改将您的根文件系统挂载到“read only (RO)”模式,您可以通过运行以下命令进行检查。另外,下面的输出清楚地表明您处于“Emergency Mode”,即紧急模式:

# mount | grep root

以单用户模式引导CentOS、RHEL 7/8系统的三种方法

要更改“sysroot”文件系统,您需要使用读取和写入(RW)模式将其重新安装:

# mount -o remount,rw /sysroot

运行以下命令来更改环境,通常称为“jailed directory”或“chroot jail”:

# chroot /sysroot

以单用户模式引导CentOS、RHEL 7/8系统的三种方法

现在,单用户模式已完全可以使用,解决退出单用户模式的问题后,请执行以下步骤。

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”键以编辑选定的内核参数:

以单用户模式引导CentOS、RHEL 7/8系统的三种方法

找到单词“rhgb quiet”并将其替换为“init=/bin/bash”或“init=/bin/sh”,然后按“Ctrl+x”或“F10”以单用户模式启动。

init=/bin/bash的屏幕截图:

以单用户模式引导CentOS、RHEL 7/8系统的三种方法

init=/bin/sh的屏幕截图:

以单用户模式引导CentOS、RHEL 7/8系统的三种方法

默认情况下,这将以只读(RO)模式挂载“/”分区,因此您需要使用READ和WRITE(RW)模式重新挂载“/”文件系统以进行更改:

# mount -o remount,rw /

以单用户模式引导CentOS、RHEL 7/8系统的三种方法

现在,您可以执行所需的任何任务,完成后,运行以下命令以在重新引导时启用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

 

相关主题

在单用户模式/紧急模式下启动Ubuntu 18.04/Debian 9系统

子频道
精选文章
热门文章