1. 程式人生 > 實用技巧 >Linux resuce救援模式下修復系統

Linux resuce救援模式下修復系統

不小心在RHEL5.8伺服器上使用了fsck命令,導致/目錄都不存在了,磁碟也無法掛載,重啟伺服器,無法開機;提示如下:

VFS: Can't find ext3 system on dev dm-4.mount: error mount /dev/root on /sysroot as ext3: Invalid argumentsetuproot: moving /dev failed: No such file or directorysetuproot: error mount /proc: No such file or directorysetuproot: error mount /sys: No such file or directory
Kernel panic - not syncing:Attempted to kill init!

Linux啟動流程是這樣的:bios->grub->kernel->inittab->fstab->rc.sysinit->rc.local->login

我使用的是LVM邏輯卷組管理,出現這個問題應該是lv邏輯卷掛載失敗,導致grub引導kernel時,缺少核心檔案而失敗。使用RHEL5.8安裝盤進入救援模式,發現裡面很多命令不能夠使用,就使用了RHEL6.5的安裝光碟,進入救援模式,步驟如下:


載入光碟,進入救援模式,不需要進行網路配置

選在第三個,Rescue install system

wKiom1aDnSezAKtDAACFgTx0Tqk670.png

這個地方選在NO,不需要網絡卡配置,其他步驟一路回車

wKioL1aDnkuzoCTaAAAZiMmM3Jc035.png

這個地方選在continue,系統預設會找到你的根系統並掛載到/mnt/sysp_w_picpath目錄下

wKioL1aDnu_AgRERAAA4WHk4LOI567.png

啟動shell

wKiom1aDnxiC-cGoAAAZuJL83xQ040.png

OK,現在就進入了救援模式的命令列介面

具體操作如下:

# vgchange -ay 啟用卷組# swapon -a開啟交換分割槽# fsck -y /dev/VolGroup00/LogVol00 修復邏輯卷(具體卷根據實際情況)# mkdir /mnt/lvm# dmesg# mount -t ext3 /dev/VolGroup00/LogVol00 /mnt/lvm 掛載系統分割槽(確保這個是系統分割槽)# mount --bind /proc /mnt/lvm/proc 掛載核心檔案
# mount --bind /sys /mnt/lvm/sys# mount --bind /dev /mnt/lvm/dev# chroot /mnt/lvm 改變系統執行命令目錄

現在就可以正常使用Linux系統原本的命令了,同時可以通過cd /mnt/lvm,進入系統分割槽,檢視有沒有系統檔案缺失或是配置錯誤,進行修復(例如/etc/fstab檔案丟失)


mount --bind說明:

mount 命令可以掛載目錄,如果要把某個目錄 mount 到另外的目錄就使用 --bind


lvm無法 掛載,進入救援模式操作命令詳解:

進入救援模式後,

lvm vgscan 檢視系統中的邏輯卷組

lvm vgchange -ay 啟用邏輯卷

邏輯卷啟用後,就可以使用 mount命令進行正常掛載了,如下圖:



此文件根據以下編寫:

http://www.dslreports.com/forum/r20758405-Ran-fsck-on-a-mounted-LVM-on-Fedora-8-now-what


如果缺失了某些檔案,可以從lost+found裡找回,找回方法可以根據:

http://karuppuswamy.com/wordpress/2010/06/09/how-to-recover-files-from-lostfound-after-fsck-in-linux-how-i-did-it-in-ubuntu/

http://blog.windfluechter.net/comment/3059



Linux系統災難恢復技術和方法:系統 /boot 分割槽損壞系統 GRUB 損壞,系統核心檔案丟失分割槽丟失(有備份的情況下)詳見文件(真的很好的文件):http://os.51cto.com/art/201209/357524.htm



轉載於:https://blog.51cto.com/afterdawn/1730095