CentOS 7 採用 GRUB2 與 systemd,重置 root 密碼流程與 CentOS 6 截然不同。本文提供經實測可行的單人模式重置流程:編輯 GRUB 選單、掛載 sysroot、chroot 進入系統、修改密碼、SELinux 重標記、重啟驗證。
linux16 / linuxefi 開頭的那一行,將 ro 改為 rw init=/sysroot/bin/sh




# chroot /sysroot
# passwd root
# 輸入兩次新密碼
# touch /.autorelabel
否則重啟後 SELinux 會阻擋登入,導致系統掛起。
# exit
# reboot
| 步驟 | 原因 |
|---|---|
rw 取代 ro | 以讀寫模式掛載根檔案系統,否則無法修改 /etc/shadow |
init=/sysroot/bin/sh | 直接進入 Shell,略過 systemd 初始化流程 |
chroot /sysroot | 切換根目錄至實際系統,使 passwd 修改生效 |
touch /.autorelabel | 強制下次開機執行 SELinux 完整重標記 |
rw 導致檔案系統唯讀,passwd 報錯/.autorelabel 導致重啟卡在 SELinux 重標記或無法登入linuxefi 開頭,修改位置相同重啟完成後,以新密碼登入 root 帳號,執行 whoami 確認身份。
CentOS 7、RHEL 7、Oracle Linux 7、Scientific Linux 7 等 systemd + GRUB2 系統。CentOS 6 請參考傳統 init=/bin/bash 流程。