Merge pull request #18317 from lxbwolf/19-20200430-Three-Methods-Boot-CentOS-RHEL-7-8-Systems-in-Single-User-Mode

TSL 20200430 Three Methods Boot CentOS-RHEL 7-8 Systems in Single Use…
This commit is contained in:
Xingyu.Wang 2020-05-02 12:47:45 +08:00 committed by GitHub
commit 4b8f10f411
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 159 additions and 159 deletions

View File

@ -1,159 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (lxbwolf)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Three Methods Boot CentOS/RHEL 7/8 Systems in Single User Mode)
[#]: via: (https://www.2daygeek.com/boot-centos-7-8-rhel-7-8-single-user-mode/)
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
Three Methods Boot CentOS/RHEL 7/8 Systems in Single User Mode
======
Single user mode, also referred to as maintenance mode, which allows a single super user to recover/repair system problems.
Generally, these problems cannot be solved in a multi-user environment. The system can boot but will not function properly or you will not be able to log in.
It uses `runlevel1.target` or `rescue.target` on **[Red Hat][1]** (RHEL) 7/8 based systems.
In this mode, the system mount all local file systems, but does not activate network interfaces.
It only enables certain services and minimal functionality to repair the system.
This method is mostly useful when you want to run fsck to fix corrupted file systems, or to reset a forgotten root password, or to fix a mount point issue on the system.
You can boot **[CentOS][2]**/**[RHEL][3]** 7/8 systems in single user mode using the below three methods.
* **Method-1:** Boot CentOS/RHEL 7/8 systems in single user mode by adding the “rd.break” parameter to the kernel
* **Method-2:** Boot CentOS/RHEL 7/8 systems in single user mode by replacing the “rhgb quiet” word with the “init=/bin/bash or init=/bin/sh” parameter in the kernel
* **Method-3:** Boot CentOS/RHEL 7/8 systems in single user mode by replacing the “ro” word with the “rw init=/sysroot/bin/sh” parameter in the kernel
### Method-1: Boot CentOS/RHEL 7/8 systems in single user mode by adding the “rd.break” parameter to the kernel
Reboot your system, on the GRUB2 boot screen, press the `"e"` key to edit the selected kernel. You need to select the first line, the first one is the latest kernel whereas you can select the different one if you would like to boot your system with the older kernel.
![][4]
Depending on your RHEL/CentOS version, find the word **“linux16”** or **“linux”**, press the “End” button on the keyboard, go to the end of the line, and add the keyword **“rd.break”** as shown below in the screenshot, then press **“Ctrl+x”** or **“F10”** to boot into single-user mode.
You need to find the word **`linux16`** for RHEL/CentOS 7 systems, while **`linux`** for RHEL/CentOS 8 systems.
![][4]
This change mount your root file system into **“read only (RO)”** mode. You can check this by running the command below. Also, the output below clearly shows that you are in **“Emergency Mode”**.
```
# mount | grep root
```
![][4]
To make changes to the **“sysroot”** file system you need to remount it with READ and WRITE (RW) mode.
```
# mount -o remount,rw /sysroot
```
Run the below command to change the environment, commonly known as “jailed directory” or “chroot jail”.
```
# chroot /sysroot
```
![][4]
Now, single-user mode is completely ready for use. Once you have fixed your problem to exit single user mode, perform the following steps.
CentOS/RHEL 7/8 uses SELinux by default, so create the following hidden file, which will automatically perform a relabel of all files on next boot.
```
# touch /.autorelabel
```
Finally, run the below command to restart the system. Alternatively, type “exit” command twice to restart your system.
```
# reboot -f
```
### Method-2: Boot CentOS/RHEL 7/8 systems in single user mode by replacing the “rhgb quiet” word with the “init=/bin/bash or init=/bin/sh” parameters in the kernel
Reboot your system, on the GRUB2 boot screen, press the `"e"` key to edit the selected kernel parameters.
![][4]
Find the word **“rhgb quiet”** and replace it with **“init=/bin/bash”** or **“init=/bin/sh”**, then press **“Ctrl+x”** or **“F10”** to boot in single user mode.
Screenshot for **`init=/bin/bash`**.
![][4]
Screenshot for **`init=/bin/sh`**.
![][4]
By default, this will mount your “/” partition in read-only (RO) mode, so you will need to remount the “/” file system with READ and WRITE (RW) mode to make changes.
```
# mount -o remount,rw /
```
![][4]
You can now perform any task that you want. When you are done, run the following command to enable SELinux relabeling on reboot.
```
# touch /.autorelabel
```
Finally reboot the system.
```
# exec /sbin/init 6
```
### Method-3: Boot CentOS/RHEL 7/8 systems in single user mode by replacing the “ro” word with the “rw init=/sysroot/bin/sh” parameter in the kernel
To interrupt the automatic boot, reboot your system and press any key on the GRUB2 splash screen.
This will display the list of kernels available on your system and select the latest kernel and press the **`"e"`** key to edit the selected kernel parameters.
Find the line that starts with the word **“linux”** or **“linux16”** and replace **“ro”** with **“rw init=/sysroot/bin/sh”**. When finished, press **“Ctrl+x”** or **“F10”** to boot in single user mode.
Change the environment to “chroot jail” by running the below command.
```
# chroot /sysroot
```
Make any necessary changes to the system. Once done, run the below command to enable SELinux relabeling on reboot.
```
# touch /.autorelabel
```
Finally reboot the system.
```
# reboot -f
```
--------------------------------------------------------------------------------
via: https://www.2daygeek.com/boot-centos-7-8-rhel-7-8-single-user-mode/
作者:[Magesh Maruthamuthu][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.2daygeek.com/author/magesh/
[b]: https://github.com/lujun9972
[1]: https://www.2daygeek.com/category/red-hat/
[2]: https://www.2daygeek.com/category/centos/
[3]: https://www.2daygeek.com/category/rhel/
[4]: data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7

View File

@ -0,0 +1,159 @@
[#]: collector: (lujun9972)
[#]: translator: (lxbwolf)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Three Methods Boot CentOS/RHEL 7/8 Systems in Single User Mode)
[#]: via: (https://www.2daygeek.com/boot-centos-7-8-rhel-7-8-single-user-mode/)
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
在单用户模式下启动 CentOS/RHEL 7/8 的三种方法
======
单用户模式,也被称为维护模式,超级用户可以在此模式下恢复/修复系统问题。
通常情况下,这些问题在多用户环境中修复不了。系统可以启动但功能不能正常运行或者你登录不了系统。
在基于 **[Red Hat][1]** (RHEL) 7/8 的系统中,使用 `runlevel1.target``rescue.target` 来实现。
在此模式下,系统会挂载所有的本地文件系统,但不开启网络接口。
系统仅启动特定的几个服务和修复系统必要的尽可能少的功能。
当你想运行文件系统一致性检查来修复损坏的文件系统,或忘记 root 密码后重置密码,或修复系统上的一个挂载点问题时,这个方法会很有用。
你可以用下面三种方法以单用户模式启动 **[CentOS][2]**/**[RHEL][3]** 7/8 系统。
* **方法 1:** 通过向内核添加 “rd.break” 参数来以单用户模式启动 CentOS/RHEL 7/8 系统
* **方法 2:** 通过用 “init=/bin/bash“ 或 ”init=/bin/sh” 替换内核中的 “rhgb quiet” 语句来以单用户模式启动 CentOS/RHEL 7/8 系统
* **方法 3:** 通过用 “rw init=/sysroot/bin/sh” 参数替换内核中的 “ro” 语句以单用户模式启动 CentOS/RHEL 7/8 系统
### 方法 1 通过向内核添加 “rd.break” 参数来以单用户模式启动 CentOS/RHEL 7/8 系统
重启你的系统,在 GRUB2 启动界面,按下 `e` 键来编辑选中的内核。你需要选中第一行,第一个是最新的内核,然而如果你想用旧的内核启动系统你也可以选择其他的行。
![][4]
根据你的 RHEL/CentOS 版本,找到 **“linux16”** 或 **“linux”** 语句,按下键盘上的 ”End“ 按钮,跳到行末,像下面截图中展示的那样添加关键词 **“rd.break”**,按下 **“Ctrl+x”** 或 **“F10”** 来进入单用户模式。
如果你的系统是 RHEL/CentOS 7你需要找 **`linux16`**,如果你的系统是 RHEL/CentOS 8那么你需要找 **`linux`**。
![][4]
这个修改会让你的 root 文件系统以 **“只读 (RO)”** 模式挂载。你可以用下面的命令来验证下。下面的输出也明确地告诉你当前是在 **“紧急模式”**。
```
# mount | grep root
```
![][4]
为了修改 **“sysroot”** 文件系统,你需要用 RW 模式重新挂载它。
```
# mount -o remount,rw /sysroot
```
运行下面的命令修改环境,这就是大家熟知的 “jailed directory” 或 “chroot jail”。
```
# chroot /sysroot
```
![][4]
现在,单用户模式的前期准备已经完成了。当你修复了你的问题要退出单用户模式时,执行下面的步骤。
CentOS/RHEL 7/8 默认使用 SELinux因此创建下面的隐藏文件这个文件会在下一次启动时重新确认所有文件。
```
# touch /.autorelabel
```
最后,用下面的命令重启系统。你也可以输入两次 “exit” 命令来重启你的系统。
```
# reboot -f
```
### 方法 2: 通过用 “init=/bin/bash“ 或 ”init=/bin/sh” 替换内核中的 “rhgb quiet” 语句来以单用户模式启动 CentOS/RHEL 7/8 系统
重启你的系统,在 GRUB2 启动界面,按下 `e` 键来编辑选中的内核。
![][4]
找到语句 **“rhgb quiet”**,用 **“init=/bin/bash”** 或 **“init=/bin/sh”** 替换它,然后按下 **“Ctrl+x”** 或 **“F10”** 来进入单用户模式。
**`init=/bin/bash`** 的截图。
![][4]
**`init=/bin/sh`** 的截图。
![][4]
默认情况下上面的操作会以只读RO模式挂载你的 “/” 分区因此你需要以读写RW模式重新挂载 “/” 文件系统,这样才能修改它。
```
# mount -o remount,rw /
```
![][4]
现在你可以执行你的任务了。当结束时,执行下面的命令来开启重启时的 SELinux 重新确认。
```
# touch /.autorelabel
```
最后,重启系统。
```
# exec /sbin/init 6
```
### 方法 3: 通过用 “rw init=/sysroot/bin/sh” 参数替换内核中的 “ro” 语句以单用户模式启动 CentOS/RHEL 7/8 系统
为了中断自动启动的过程,重启你的系统并在 GRUB2 启动界面按下任意键。
现在会展示你系统上所有可用的内核,选择最新的内核,按下 `e` 键来编辑选中的内核参数。
找到以 **“linux”** 或 **“linux16”** 开头的语句,用 **“rw init=/sysroot/bin/sh”** 替换 **“ro”**。替换完后按下 **“Ctrl+x”** 或 **“F10”** 来进入单用户模式。
运行下面的命令把环境切换为 “chroot jail”。
```
# chroot /sysroot
```
如果需要,做出必要的修改。修改完后,执行下面的命令来开启重启时的 SELinux 重新确认。
```
# touch /.autorelabel
```
最后,重启系统。
```
# reboot -f
```
--------------------------------------------------------------------------------
via: https://www.2daygeek.com/boot-centos-7-8-rhel-7-8-single-user-mode/
作者:[Magesh Maruthamuthu][a]
选题:[lujun9972][b]
译者:[lxbwolf](https://github.com/lxbwolf)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.2daygeek.com/author/magesh/
[b]: https://github.com/lujun9972
[1]: https://www.2daygeek.com/category/red-hat/
[2]: https://www.2daygeek.com/category/centos/
[3]: https://www.2daygeek.com/category/rhel/
[4]: data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7