一、概述
目前在運維日常工作中,經常會遇到服務器異常斷電、忘記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