遺忘 Linux root 密碼是常見維運情境。核心解法是進入單用戶模式 以 root 身分直接修改密碼,無需舊密碼。本文涵蓋 LILO、GRUB Legacy、GRUB2 三大開機載入器的完整操作步驟,並補充 SELinux 重新標記等關鍵細節。
在核心啟動參數加入 single 或 rd.break (GRUB2),使系統啟動至最小化的單用戶維護環境,掛載根檔案系統為讀寫模式,即可執行 passwd 重置密碼。
linux 或 linuxefi 開頭的行,移至行尾加入 rd.break (或 single init=/bin/bash)。switch_root:/# 提示符。mount -o remount,rw /sysrootchroot /sysrootpasswd root (輸入兩次新密碼)。touch /.autorelabelexit,再 exit 重啟系統。首次開機會執行 SELinux 重標記,稍等片刻即可登入。 single (或 1、init=/bin/bash)。sh-# 或 bash#)。mount -o remount,rw /。passwd root 修改密碼。reboot。LILO: 提示時,輸入 linux single 並按 Enter。passwd root。mount /dev/sdaX /mnt (確認分區號)。chroot /mnt。passwd root。| 問題 | 原因 | 解決 |
|---|---|---|
| 密碼修改成功但無法登入 | SELinux 標記錯誤 (GRUB2 系統) | 務必執行 touch /.autorelabel 並耐心等待首次開機重標記完成 |
| 進入單用戶仍需 root 密碼 | /etc/sulogin 設定或 /etc/passwd 錯誤 | 改用 init=/bin/bash 核心參數直接進 bash,或用 LiveCD chroot |
| 掛載提示 "already mounted" 或 "busy" | 分區已被掛載/佔用 | 用 mount | grep /mnt 確認,先 umount -l 強制卸載 |
| 忘記一般用戶密碼 | 同理操作 | chroot 後執行 passwd username |
grub2-setpassword / grub-mkpasswd-pbkdf2) 防止惡意進入單用戶模式。掌握上述方法,遺忘 root 密碼不再是噩夢,幾分鐘即可恢復系統存取權。建議在測試環境預先演練,臨危不亂。