VWmare軟件版本:VMware? Workstation 16 Pro
Centos系統版本:CentOS-7.5-x86 64-Minimal-1804
文章目錄
- 問題描述
- 如何解決?
問題描述
長時間沒有使用Linux系統,root用戶密碼忘記了,登陸不上系統,如下圖所示。
如何解決?
步驟如下
1.按如下步驟重啟Linux,見到圖二,通過鍵盤上下方向鍵選擇第一個。
2.按e
,出現如下圖所示的界面。
3.將光標往下滑,定位到LANG=zh_CN.UTF-8,后面追加"空格+ init=/bin/sh
", 如下圖所示。
init=/bin/sh
注意:使用鍵盤方向鍵控制光標上下移動
為什么要加這個參數?
init=/bin/sh
是一個在引導加載器(如GRUB)的配置中使用的內核啟動參數。這個參數用于指定系統的初始化進程(init process)。
正常情況下,Linux系統啟動時會運行一個稱為init
的程序(PID為1),它是所有其他用戶空間進程的祖先。默認情況下,init
可能是systemd
、upstart
或sysvinit
等,取決于發行版。
當你設置 init=/bin/sh
啟動參數時,你實際上是告訴系統不要啟動默認的初始化系統,而是直接進入一個shell(通常是bash或者dash,位于/bin/sh
)。這種做法通常用于系統恢復或故障排查,因為它允許你在沒有正常啟動服務和守護進程的情況下,以root權限直接訪問一個命令行界面。使用這個shell,你可以執行修復操作,比如修復文件系統、編輯配置文件或重啟特定服務等。
使用這個參數需要謹慎,因為它繞過了系統的正常啟動流程,可能會導致圖形界面無法啟動、系統服務未運行等問題。僅在清楚其后果并需要進行系統級修復時使用。
4.鍵盤 ctrl+x
進行引導啟動,進入如下界面,如下圖所示。
5.輸入以下命令,重新掛載根目錄。
mount -o remount,rw /
為什么要重新掛載根目錄?
因為默認掛載的根目錄屬性為不可寫的,所以需重新掛載根目錄為可讀寫狀態
6.選擇要修改密碼的用戶名,passwd root
,然后輸入兩次一致的密碼,依次回車。
注:所輸入密碼是不顯示的,一定要確認輸入正確
7.輸入命令 touch /.autorelabel
,以更新系統信息,如下圖所示。
8.輸入 exec /sbin/init
命令重啟系統即可,如下圖所示。
緊接著,系統會自動修改密碼,完成后,系統會自動重啟
。
9.進入登錄界面,輸入修改后的密碼登錄即可。
至此,用戶密碼重置成功!!!