Linux Rescue
RedHat/CentOS
Reset the root's password
For GRUB Bootloader)
系統重開機 -> 進入開機選單
- Select the kernel
- Press the
e
key to edit the entry - Select second line (the line starting with the word kernel)
- Press the
e
key to edit kernel entry so that you can append single user mode - Append the letter
S
(or wordSingle
) to the end of the (kernel) line - Press ENTER key (或者 Ctrl + x 直接啟動系統,跳過下一個步驟)
- Now press the
b
key to boot the Linux kernel into single user mode - 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 項目,開機過程會有以下導引:
- 選擇語言
- 選擇鍵盤類型
- 是否要啟用網路功能
最後進入 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