萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 電腦入門

Linux 開機密碼忘記?單用戶模式重置 Root 密碼完整教學 (LILO/GRUB/GRUB2)

遺忘 Linux root 密碼是常見維運情境。核心解法是進入單用戶模式 以 root 身分直接修改密碼,無需舊密碼。本文涵蓋 LILO、GRUB Legacy、GRUB2 三大開機載入器的完整操作步驟,並補充 SELinux 重新標記等關鍵細節。

核心原理

在核心啟動參數加入 single 或 rd.break (GRUB2),使系統啟動至最小化的單用戶維護環境,掛載根檔案系統為讀寫模式,即可執行 passwd 重置密碼。

場景一:GRUB2 (CentOS 7/8, RHEL 7/8, Ubuntu 16.04+, Debian 9+)

  1. 開機時在 GRUB 選單按 e 編輯啟動項。
  2. 找以 linux 或 linuxefi 開頭的行,移至行尾加入 rd.break (或 single init=/bin/bash)。
  3. 按 Ctrl+x 啟動。系統進入 switch_root:/# 提示符。
  4. 掛載 sysroot 為讀寫:mount -o remount,rw /sysroot
  5. 切換根環境:chroot /sysroot
  6. 修改密碼:passwd root (輸入兩次新密碼)。
  7. 關鍵步驟: 建立 SELinux 重標記旗標:touch /.autorelabel
  8. 退出 chroot:exit,再 exit 重啟系統。首次開機會執行 SELinux 重標記,稍等片刻即可登入。

場景二:GRUB Legacy (CentOS 5/6, RHEL 5/6, 舊版 Debian/Ubuntu)

  1. 開機 GRUB 選單按 e 選中 kernel 行,再按 e 編輯。
  2. 在 kernel 行尾加入 single (或 1、init=/bin/bash)。
  3. 按 Enter 返回,再按 b 啟動。
  4. 進入單用戶模式 (提示符 sh-# 或 bash#)。
  5. 若根分區為唯讀,執行 mount -o remount,rw /。
  6. 執行 passwd root 修改密碼。
  7. 重啟:reboot。

場景三:LILO (極舊系統,如 Slackware 早期版本)

  1. 開機出現 LILO: 提示時,輸入 linux single 並按 Enter。
  2. 進入單用戶模式後執行 passwd root。
  3. 重啟系統。

通用補充:使用 LiveCD/USB 救援 (適用所有載入器)

  1. 啟動 Live 系統 (如 SystemRescueCd, Ubuntu Live)。
  2. 掛載目標根分區:mount /dev/sdaX /mnt (確認分區號)。
  3. 切換根環境:chroot /mnt。
  4. 修改密碼:passwd root。
  5. 退出、卸載、重啟。

常見坑點與對策

問題原因解決
密碼修改成功但無法登入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

安全建議

  • 設定 GRUB 密碼 (grub2-setpassword / grub-mkpasswd-pbkdf2) 防止惡意進入單用戶模式。
  • 啟用全盤加密 (LUKS) 保護離線資料。
  • 建立 sudo 權限普通帳號日常操作,減少 root 直接登入風險。

掌握上述方法,遺忘 root 密碼不再是噩夢,幾分鐘即可恢復系統存取權。建議在測試環境預先演練,臨危不亂。

copyright © 萬盛學電腦網 all rights reserved