# Linux Rescue

#### RedHat/CentOS

- [How to recover a root password in Red Hat-based Linux systems](https://www.redhat.com/sysadmin/recover-root-passwd)

##### Single-User Mode

Situation: Reset the root's password

For GRUB Bootloader)

系統重開機 -&gt; 進入開機選單

1. Select the *kernel*
2. Press the `e` key to edit the entry
3. Select second line (the line starting with the word *kernel*)
4. Press the `e` key to edit kernel entry so that you can append single user mode
5. Append the letter `S` (or word `Single`) to the end of the (kernel) line
6. Press ENTER key (或者 Ctrl + x 直接啟動系統，跳過下一個步驟)
7. Now press the `b` key to boot the Linux kernel into single user mode
8. At prompt type `passwd` command to reset password:

```shell
mount -t proc proc /proc
mount -o remount,rw /
passwd
sync
reboot
```

For LILO Bootloader)

Boot: `linux single`

```shell
passwd
sync
reboot
```

> TIP: 在 RedHat 8 的環境，single-user mode 就是 rescue mode，輸入的字串改成 `systemd.unit=rescue.target` 。
> 
> 除了 single-user mode，還有另一個 `rd.break` 也可以試試。

##### 以安裝光碟開機的救援  


以安裝光碟開機，在開機選單裡選擇 Rescue 項目，開機過程會有以下導引:

1. 選擇語言
2. 選擇鍵盤類型
3. 是否要啟用網路功能

最後進入 shell 模式，系統的根目錄會被掛載為 /mnt/sysimage。

切換根目錄指令

```shell
chroot /mnt/sysimage
```

##### Emergency Mode (緊急開機模式)

> NOTE: Emergency 不支援網路功能，如果系統修復會需要網路，不適合使用這模式。

除了 single-user mode，還有另一種開機模式 emergency mode，也適合用來修復無法開機的系統，不過，要進入 emergency mode 必須先輸入 root 密碼，所以不適合用來做重置密碼的用途。

在 RedHat 6 環境，使用方法與 single-user mode 一樣，只是將字串替換成 `emergency`。

在 RedHat 8 環境，字串換成 `systemd.unit=emergency.target` 。

#### Ubuntu/Debian

- [Boot Into Rescue Mode Or Emergency Mode In Ubuntu - OSTechNix](https://ostechnix.com/how-to-boot-into-rescue-mode-or-emergency-mode-in-ubuntu-18-04/)

#### Reset Root's Password

- [How to Reset Forgotten Root Password in RHEL 8](https://www.tecmint.com/reset-forgotten-root-password-in-rhel-8/)
- [How to Reset Forgotten Root Password in Ubuntu (tecmint.com)](https://www.tecmint.com/reset-forgotten-root-password-in-ubuntu/)

[![rhel_root_password_recovery.png](https://osslab.tw/uploads/images/gallery/2026-01/scaled-1680-/rhel-root-password-recovery.png)](https://osslab.tw/uploads/images/gallery/2026-01/rhel-root-password-recovery.png)

#### Chroot

- [How to Use Chroot in Linux and Fix Your Broken System - Make Tech Easier](https://www.maketecheasier.com/use-chroot-linux/)

##### Fix a Broken Bootloader Using Chroot

```bash
# Make a bootable USB by downloading a Linux ISO and booting from the USB.
# Mount your system partition to work with chroot.
sudo mount -t ext4 /dev/sda /mnt

sudo mount --bind /dev /mnt/dev &&
sudo mount --bind /dev/pts /mnt/dev/pts &&
sudo mount --bind /proc /mnt/proc &&
sudo mount --bind /sys /mnt/sys

# Let’s chroot into the “/mnt” directory and enter the broken system.
sudo chroot /mnt

# Install, check, and update the GRUB bootloader in your system.
grub-install /dev/sda
grub-install --recheck /dev/sda
update-grub

# Exit the shell using the exit command mentioned earlier. 
# Unbind the previously bound directories and unmount the filesystem.
sudo umount /mnt/sys &&
sudo umount /mnt/proc &&
sudo umount /mnt/dev/pts &&
sudo umount /mnt/dev &&
sudo umount /mnt

# Reboot your PC and unplug the live USB.
```

#### Q &amp; A  


##### 根目錄唯讀，使用了 remount 也沒用

試過了 single-user，emergency，安裝光碟救援的所有模式，始終無法將根目錄掛載成可讀寫，使用的指令是 `mount -o remount,rw /` 。原因可能是根目錄的 filesystem 有區塊損壞，必須先完成修復，才能進行重新掛載。

修復 filesystem

```
fsck -y /dev/your-root-disk
```