萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

CentOS 7 重置 Root 密碼單人模式完整步驟(GRUB2 版)

CentOS 7 採用 GRUB2 與 systemd,重置 root 密碼流程與 CentOS 6 截然不同。本文提供經實測可行的單人模式重置流程:編輯 GRUB 選單、掛載 sysroot、chroot 進入系統、修改密碼、SELinux 重標記、重啟驗證。

一、操作步驟

  1. 開機進入 GRUB 選單,選擇啟動項目,按 e 進入編輯模式
  2. 找到以 linux16 / linuxefi 開頭的那一行,將 ro 改為 rw init=/sysroot/bin/sh

    GRUB 選單編輯前

    進入編輯模式

    修改 ro 為 rw init=/sysroot/bin/sh

  3. 按 Ctrl+x 啟動單人模式

    單人模式啟動畫面

  4. 掛載系統根目錄並切換根環境
    # chroot /sysroot
  5. 重置 root 密碼
    # passwd root
    # 輸入兩次新密碼
  6. SELinux 重標記(關鍵步驟)
    # touch /.autorelabel

    否則重啟後 SELinux 會阻擋登入,導致系統掛起。

  7. 退出 chroot 並重啟
    # exit
    # reboot

二、關鍵點解析

步驟原因
rw 取代 ro以讀寫模式掛載根檔案系統,否則無法修改 /etc/shadow
init=/sysroot/bin/sh直接進入 Shell,略過 systemd 初始化流程
chroot /sysroot切換根目錄至實際系統,使 passwd 修改生效
touch /.autorelabel強制下次開機執行 SELinux 完整重標記

三、常見失敗原因

  • 忘記 rw 導致檔案系統唯讀,passwd 報錯
  • 漏做 /.autorelabel 導致重啟卡在 SELinux 重標記或無法登入
  • GRUB 選單編輯時語法錯誤(漏空格、多字符)
  • UEFI 系統的啟動項以 linuxefi 開頭,修改位置相同

四、驗證

重啟完成後,以新密碼登入 root 帳號,執行 whoami 確認身份。

五、適用範圍

CentOS 7、RHEL 7、Oracle Linux 7、Scientific Linux 7 等 systemd + GRUB2 系統。CentOS 6 請參考傳統 init=/bin/bash 流程。

copyright © 萬盛學電腦網 all rights reserved