歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 虛擬機RedHat Linux的緊急救援

虛擬機RedHat Linux的緊急救援

日期:2017/2/28 13:43:35   编辑:Linux教程

由於虛擬機無法啟動,vmware vcenter已經無法監控到虛機vmware tools的心跳。登陸VC通過虛擬機控制台查看發現虛機RedHat Linux卡在如下界面:

從截圖來看:

顯示chmod、chgrp、chown和awk沒有找到(有可能誤刪),由於系統啟動時候需要執行rc.sysinit腳本,該腳本會執行些權限控制命令,因此必須要用到這些文件,由於文件無法找到,導致系統初始化失敗。

經過溝通,了解到客戶安裝了apache和mysql,並且修改了/etc/profile文件配置了應用的環境變量,導致出現如上問題。

解決問題:

給這台虛機加載redhat linux的iso,設置虛擬機bios,CD光驅為第一啟動順序,重新啟動虛擬機,選擇救援模式進行緊急救援。

由於是丟失文件,因此這裡需要開啟網絡功能,方便從其他主機拷貝相關文件。

在這裡輸入原先該虛機的IP和網關

mount系統到sysimage下

點擊OK後,進入修復模式的shell下

然後chroot /mnt/sysimage

進入/bin後,確實沒有發現chmod、chown和awk等這幾個命令,我們可以考慮從一台好的redhat linux系統中拷貝這幾個文件過來,在命令行下執行

#scp -r [email protected]:/usr/bin/* /bin/

結果卻提示命令沒找到,應該是沒有客戶端軟件,導致SCP命令沒有被識別。那麼設置本地yum源,並安裝openssh客戶端,

#yum install openssh-clients

再次執行#scp -r [email protected]:/usr/bin/* /bin/後提示輸入密碼,輸入後開始執行拷貝命令。

拷貝完成後重啟系統,順利初始化並成功進入系統。

•總結

Rescue修復要注意系統初始文件和系統命令文件的關系,恢復系統完整性。

補充另一個測試示例:

修改linux系統的文件grub.conf、fstab 我這裡就不刪除了,只是更改名稱讓系統找不到就可以了

引導程序(MBR的512字節中前446字節為引導程序,緊跟著後面64字節為分區表,最後面2個字節為結束標記)

使用以下命令把bootloader( 啟 動引導程序MBR中的446字 )覆蓋掉

dd if=/dev/zero of=/dev/sda bs=446 count=1

然後進入救援模式

使用fsdisk -l 查看一下分區

在當前的目錄創建一個目錄,用來掛載根

mkdir a

mount /dev/sda2 /a 掛載根目錄到a下

mount /dev/sda1 /a/boot 掛載boot目錄,因為它為單獨分區

掛載成功之後就可以看到所有的系統文件,可以進行修復和修改文件了

恢復被我們修改的文件

接下來是安裝MBR中的446字節的引導程序

裝grub就是裝/boot/grub/stage1,救援模式下輸入 #grub 就可以進入grub的命令模式下

1、root(hd0,0) 這裡是指的第一塊一盤的一個分區,就是要指定/boot所在的分區

2、setup(hd0) 這裡是安裝grub的意思,當出現successed就是安裝成功了

3、quit退到shell模式

4、exit重啟

重啟後就自動進入了 grub> 的模式,在這裡手動引導系統先看一下手動引導系統

root(hd0,0) 指定一下內核文件的位置,還是/boot目錄所在的分區

kernel/vmlinuz-2...ro root=/dev/sda2 具體的內核文件並以只讀的形式掛載上

initrd/initrd....... 具體的內存啟動鏡像

boot 加載系統

如下圖:

以上操作完成之後,進入系統,這時候系統的 grub.conf 尚未恢復,需要進入目錄恢復此系統文件才算是系統修復完成了。

注意:根分區和/boot最好是獨立分區,而把之外的做成是LVM卷,那麼在救援模式下會比較方便。

Copyright © Linux教程網 All Rights Reserved