Skip to main content

Linux Rescue

RedHat/CentOS

Reset the root's password

For GRUB Bootloader)

系統重開機 -> 進入開機選單

  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:
mount -t proc proc /proc
mount -o remount,rw /
passwd
sync
reboot

For LILO Bootloader)

Boot: linux single

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。

切換根目錄指令

chroot /mnt/sysimage

 

 

Emergency Mode (緊急開機模式)

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

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

在 RedHat 8 環境,字串換成 systemd.unit=emergency.target

Q & A

根目錄唯讀,使用了 remount 也沒用

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

修復 filesystem

fsck -y /dev/your-root-disk