伺服器和系統版本
- 伺服器版本 Dell R410
- 系統版本 Centos 6.3
出錯原因
執行 mindoc 時,提示依賴需升級
升級之後,大部分的 Linux 基礎命令都無法使用,例如:
此時,一旦退出當前遠端Shell終端,就再也無法登入系統,只能進 Linux 急救模式,即 Rescue 模式進行搶救。
修復系統
若未退出當前遠端 Shell 終端
如果安裝了 busyBox
busybox wget http://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.3/os/x86_64/Packages/glibc-2.12-1.80.el6.x86_64.rpm
busybox rpm -i glibc-2.12-1.80.el6.x86_64.rpm
若已經退出了當前遠端終端
只能進機房操作了,需要進入 Rescue 模式,進行缺失系統檔案的補全。
製作U啟動盤
要求:系統版本要和壞掉的系統版本一致 (這樣才能實現,缺失系統檔案的完整替換。)
- 準備一塊 8G 記憶體的U盤
- 下載系統 Centos 6.3
- 在 Windows 電腦上 使用 Rufus 軟體,將系統燒入準備好的 U盤中
Rescue 模式 挽救
因為伺服器根本進不去,只能強行按下關機鍵,進行關機。
插好U啟動盤,啟動伺服器。
在啟動頁面, 按 F11 進入 BIOS 設定,選擇啟動方式 為 U啟動盤啟動
Hard Driver C => U268
這裡的 U268 是我的 U 盤名字。
一、 接下來,按Enter鍵進去操作選擇頁面
毫無疑問,選擇第三項 Rescue installed sysytem 回車
二、選擇語言和鍵盤(預設的就好)
三、選擇包含急救映象的介質
注意⚠️:這裡有坑!!!
- 如果是用的光碟機➕IOS光碟的形式,那麼選擇第一項也就是 Local CD/DVD
- 如上所述,我們使用的是 U 啟動盤,因此需要選擇 第二項 也就是 Hard Driver
選擇 Hard driver 介質
找到自己的U啟動所在分割槽,我是一個個 的試出來的,一般都是最後一個或者第一個,我這裡選擇最後一個 /dev/sdb1
四、稍等一會兒會出現要不要設定網路,一般來說網路沒問題就不用設定了,我這裡選擇 No
五、接下來,選擇 Rescue 選項,這裡我們選擇 Continue
- Continue:救援模式程式會自動查詢系統中已有的檔案系統,並把他們掛載到
/mnt/sysimage
目錄下,也就是將缺失部分系統檔案的壞掉的原系統掛載到/mnt/sysimage
目錄 - Read-Only:則會以只讀的方式掛載已有的檔案系統
- Skip: 手動掛載
- Advanced:高階選項就不作說明了
六、接下來,會彈出提示頁面
原損壞系統掛載路徑為 /mnt/sysimage
,如果想獲得原損壞系統 root 環境,執行命令:chroot /mnt/sysimage 即可。
上述,提示頁面是系統完整掛載成功的提示, 如果原損壞系統還有別的問題的話,還會導致只能掛載部分系統,所以掛載的損壞系統一直為 readonly 模式,即只讀的情況。
無需在意,後面會解決的,還是選擇 Continue。
七、接下來,進入 Shell
回車
八、重頭戲開始
- 檢視 U盤 是哪個
blkid
可以看到裝置符是 /dev/sdb1
- 建立 U盤 掛載用的目錄
這裡可以自己定義用於掛載 U盤 的空目錄啊,切記不能是 /mnt/sysimage
目錄,因為原損壞系統在這個目錄下
mkdir /mnt/cdrom
- 將 U盤 掛載到
/mnt/cdrom
下
mount /dev/sdb1 /mnt/cdrom
刪除更新 glibc 2.14 時,在原損壞系統 /lib64 目錄下的升級生成檔案
刪除之前先備份
mkdir /mnt/cdrom/backup_data cp /mnt/sysimage/lib64/*2.14* /mnt/cdrom/backup_data/
刪除升級殘留檔案
rm /mnt/sysimage/lib64/*2.14*
重新安裝系統原生 glibc 依賴
一定要用 –root 指定root,目前的根目錄是U盤的
rpm -ivh /mnt/cdrom/Packages/glibc* --nodeps --root /mnt/sysimage --force
- 將報錯中提及的外掛還原
cp /lib64/libselinux.so.1 /mnt/sysimage/lib64/
cp /lib64/libpam.so.0 /mnt/sysimage/lib64/
- 重啟伺服器
reboot
注意⚠️:
1、如果原損壞系統並未成功完整掛載到 /mnt/sysimage
下時,5、6 步驟可能出現不可寫的情況,提示 /mnt/sysimage
下是 readonly 系統
解決方案:
此時,就需要對 /mnt/sysimage
進行重新掛載,並在掛載的同時設定模式為 讀寫模式
mount -o remount,rw /mnt/sysimage # 以讀寫方式重新掛載分割槽
2、 重啟伺服器時,出現錯誤
- 看提示有按CTRL+D繼續,按了CTRL+D會重啟,再次回到這個介面。
- 這可能是因為系統損壞時,我們直接通過按鍵來關閉伺服器導致的問題,需要異常磁碟掃描,輸入 root 密碼 進入 修復模式
- 在修復模式下,輸入命令
fsck –y /dev/mapper/VolGroup-lv_root
/dev/mapper/VolGroup-lv_root
這個路徑就是你上面提示出錯的那個路徑,根據自己的實際情況來,不同人的情況,不同路徑的。
- 輸入後,會在檢查硬碟,這個過程看具體的情況而定,比如你的硬碟如果是T級別的話,那可能會需要一段時間,即使達到7-8小時也是正常的。最後在檢查完事後,reboot 重啟下伺服器。
- 重啟完,就可以看到正常的登陸介面了,輸入使用者名稱,密碼,就可正常的登入了
附:鳥哥的fsck的命令說明
本作品採用《CC 協議》,轉載必須註明作者和本文連結