在管理Linux服務器時,忘記root密碼是一件棘手的事情,但幸運的是,CentOS提供了救援模式來幫助我們重置root密碼。本文將詳細介紹如何通過GRUB引導菜單進入緊急模式(或稱為救援模式),進而恢復root用戶的密碼。請注意,操作前請確保您有物理或遠程訪問服務器的權限,并且了解此操作對系統的影響。
準備工作
- 確保系統可重啟:在進行任何操作之前,請確保可以安全地重啟服務器,不會影響到關鍵業務運行。
- 備份數據:雖然本操作主要是修改密碼,但在處理系統級操作時,良好的習慣是先做好數據備份。
步驟詳解
以Red Hat Enterprise Linux 9 為例
1. 重啟系統
首先,重啟您的服務器。在啟動過程中,您會看到GRUB引導加載器的界面。
2. 進入編輯模式
在GRUB界面,使用鍵盤的上、下箭頭選擇默認的內核啟動項(通常是第一個選項),然后按鍵盤上的 e
鍵進入編輯模式。
3. 修改啟動參數
找到以 linux16
或 linuxefi
(取決于您的CentOS版本和配置)開頭的行,或者是quiet結尾的地方。在該行的末尾添加 rd.break
參數,這會讓系統在初始化階段暫停,允許我們進行進一步的操作。修改完畢后,按 Ctrl
+X
鍵繼續啟動過程,此時系統將進入緊急模式。
4. 重新掛載根文件系統
系統暫停后,您會進入一個簡化的shell環境。首先需要重新掛載根文件系統為讀寫模式,執行以下命令:
mount -o remount,rw /sysroot
5.切換到系統的真實根目錄環境
chroot /sysroot
6. 重置root密碼
接下來,使用 passwd
命令來重置root用戶的密碼,或者使用明文方式修改密碼均可
passwd root
echo "your password" | passwd --stdin root # 明文方式
7. 更新SELinux上下文
對于啟用了SELinux的系統,為了防止文件權限問題,需要創建一個.autorelabel
文件,以便下次啟動時自動重新標記文件系統的SELinux上下文:
touch /.autorelabel
7. 退出并重啟
完成上述步驟后,依次執行以下命令退出緊急模式并重啟系統(最好使用sync
命令同步一下,確保所有未緩沖的文件系統數據都被寫入磁盤,推薦但是非必須):
sync
exit
exit
然后輸入兩次exit退出重啟,并觀察是否觸發selinux-autorelabel