Linux系統CentOS進入單使用者模式和救援模式詳解
一、概述
目前在運維日常工作中,經常會遇到伺服器異常斷電、忘記root密碼、系統引導檔案損壞無法進入系統等等作業系統層面的問題,給運維帶來諸多不便,現將上述現象的解決方法和大家分享一下,本次主要以CentOS為例;
二、CentOS 6 進入單使用者模式
1、重啟伺服器,系統載入至如圖介面時,按“E”鍵,進入grub引導選單的核心介面
2、在核心介面選擇使用上下箭頭移動並選擇核心;
3、核心選定之後再次按下“E”鍵進行編輯;
4、在最後一行後面加上數字1(是單使用者模式的執行級別)或者single然後回車(補充:好像加數字1比較有效);
核心啟動時的選
選項 | 含義 |
init=/sbin/init | 告訴核心用/sbin/init作為它的init程式 |
init=/bin/bash | 只啟動bash,在緊急恢復時有用 |
root=/dev/foo | 告訴核心用/dev/foo作為根裝置 |
single | 引導進入單使用者模式 |
5、然後根據提示按下b鍵(boot)進行重新引導;
6、重啟後,可以進入系統,現在就是單使用者模式。我們檢視一下系統剛剛是從哪個執行級別進來的;
7、現在我們可以進行相關操作,如:修改 root以及其他賬戶密碼;使用fsck進行系統修復、配置IP地址後,可以備份資料等等
三、CentOS 6 進入救援模式
1、首先開機後,選擇進入快速引導模式下,一般伺服器都會選擇F12,選擇CD-ROM為第一引導分割槽。
2、重啟後進入安裝選單,選中Rescue install system(救援模式) 後回車;
3、選擇語言,保持預設English
4、選擇鍵盤型別,保持預設us
5、是否啟動網路,需要根據你實際情況進行選擇,如果需要通過聯網拷貝資料,選擇YES,在這裡我們選擇NO;
6、進入到Rescue介面,選擇Continue
7、系統掛載在/mnt/sysimage下 如果要到root環境下,執行 chroot /mnt/sysimage 命令
8、三種選項:shell 進入命令列模式;fakd是診斷模式;reboot重啟電腦;我們這裡選擇shell
9、進入shell命令列,提示符為bash-4.1#
ls /mnt/sysimage/ 顯示掛載的目錄為根目錄的檔案
執行chroot /mnt/sysimage/將/mnt/sysimage/目錄下的檔案移動到根目錄;
命令後提示符為sh-4.1#
ls顯示為根目錄的檔案;
進入該模式下,可以選擇進行相關操作,如修改root密碼,使用fsck命令進行修復磁碟和檔案等。
10、在sh-4.1#模式下需要先exit退出,回到bash-4.1#才可以reboot重啟系統;
----------------------------------------------------------------------------------------------
特別介紹:
fsck 命令用於檢查檔案系統並嘗試修復出現的錯誤。
命令的基本格式如下:
?1 |
[root@localhost ~] # fsck [選項] 分割槽裝置檔案
|
選項 | 功能 |
---|---|
-a | 自動修復檔案系統,沒有任何提示資訊。 |
-r | 採取互動的修復模式,在修改檔案前會進行詢問,讓使用者得以確認並決定處理方式。 |
-A(大寫) | 按照 /etc/fstab 配置檔案的內容,檢查檔案內羅列的全部檔案系統。 |
-t 檔案系統型別 | 指定要檢查的檔案系統型別。 |
-C(大寫) | 顯示檢查分割槽的進度條。 |
-f | 強制檢測,一般 fsck 命令如果沒有發現分割槽有問題,則是不會檢測的。如果強制檢測,那麼不管是否發現問題,都會檢測。 |
-y | 自動修復,和 -a 作用一致,不過有些檔案系統只支援 -y。 |
此命令通常只有身為 root 使用者且檔案系統出現問題時才會使用,否則,在正常狀況下使用 fsck 命令,很可能損壞系統。另外,如果你懷疑已經格式化成功的硬碟有問題,也可以使用此命令來進行檢查。
使用 fsck 檢查並修復檔案系統是存在風險的,特別是當硬碟錯誤非常嚴重的時候,因此,當一個受損檔案系統中包含了非常有價值的資料時,務必首先進行備份!
需要注意:在使用 fsck 命令修改某檔案系統時,這個檔案系統對應的磁碟分割槽一定要處於解除安裝狀態,磁碟分割槽在掛載狀態下進行修復是非常不安全的,資料可能會遭到破壞,也有可能會損壞磁碟。
舉例說明:如果想要修復某個分割槽,則只需執行如下命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[root@docker-01 ~] # df -hP //檢視一下硬碟分割槽情況,我的目前沒有損壞,只是舉例說明
檔案系統 容量 已用 可用 已用% 掛載點
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 281M 3.6G 8% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 20G 2.9G 18G 15% /
/dev/mapper/centos-data 78G 33M 78G 1% /data
/dev/xvda1 197M 166M 32M 85% /boot
tmpfs 782M 0 782M 0% /run/user/0
overlay 20G 2.9G 18G 15% /var/lib/docker/overlay2/e147ff81360b119d6f724e68fb781e6c2aa93c983f3e264b94ba84e71528e37d/merged
[root@docker-01 ~] # fsck -r /dev/mapper/centos-root //採用互動的修復模式,本次我修復的是根分割槽
fsck ,來自 util-linux 2.23.2
If you wish to check the consistency of an XFS filesystem or
repair a damaged filesystem, see xfs_repair(8).
/dev/mapper/centos-root : status 0, rss 1460, real 0.008662, user 0.000980, sys 0.000980
|
fsck 命令在執行時,如果發現存在沒有檔案系統依賴的檔案或目錄,就會提示使用者是否把它們找回來,因為這些沒有檔案系統依賴的檔案或目錄對使用者來說是看不到的,換句話說,使用者根本無法使用,這通常是由檔案系統內部結構損壞導致的。如果使用者同意找回(輸入 y),fsck 命令就會把這些孤立的檔案或目錄放到 lost+found 目錄中,並用這些檔案自己對應的 inode 號來命名,以便使用者查詢自己丟失的檔案。
因此,當用戶在利用 fsck 命令修復磁碟分割槽以後,如果發現分割槽中有檔案丟失,就可以到對應的 lost+found 目錄中去查詢,但由於無法通過檔名稱分辨各個檔案,這裡可以利用 file 命令檢視檔案系統型別,進而判斷出哪個是我們需要的檔案。
Linux開關機&重啟命令:
重啟:reboot、init6 、shutdown -r now
關機:PowerOff、init0 、halt
Linux執行級別:
0 --- 關機;
1 --- 單使用者模式
2 --- 命令列多使用者模式,不帶nfs網路
3 --- 命令列多使用者模式
4 --- 保留
5 --- 圖形介面
6 --- 重啟
--------------------------------------------------------------------------------------------
四、CentOS 7 進入單使用者模式
1、伺服器按開機按鈕,在進入條出現選擇核心系統時,按“e”鍵,之後使用上下按鍵進行選擇,在按“e”鍵進入編輯模式
2、進入編輯介面後,快速定位到ro 處(ro=readonly),把ro修改成“rw init=/sysroot/bin/sh”,完成後按 Ctrl+X 啟動執行。
3、進入到單使用者模式下 ,輸入 chroot /sysroot/ 改變根分割槽,使用passwd root修改root密碼;
注:可使用 touch /.autorelabel (為了使selinux生效)
五、CentOS 7進入到救援模式,進入救援模式需要系統安裝光碟(注:U盤不可以)
1、伺服器開機啟動,進行BIOS介面後,選擇快度鎧甲啟動項,一般機器均為F12;選擇CD-ROM為第一引導分割槽。
2、進入光碟安裝介面,選擇第三項, 選擇“Troubleshooting”回車 ,選擇“Rescue a CentOS Linux system”回車。
3、進入救援模式下,選擇“continue”:輸入1 回車;
4、回車得到一個shell命令列,顯示提示符後,根據提示輸入chroot /mnt/sysimage 切換到原來的系統。
5、進入到單使用者模式下,進行相關操作即可,與CentOS6類同。如修改root密碼:
轉載:https://www.cnblogs.com/easonscx/p/12703078.html