1. 程式人生 > 實用技巧 >Linux系統CentOS進入單使用者模式和救援模式詳解

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 [選項] 分割槽裝置檔案
表 1 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