問題現象
生產環境上,用戶的虛機,在啟動的時候,一直卡在進度條,按f2的時候,報文件缺失的現象,
init: Failed to spawn rcS post-stop process: unable to execute: No such file or directory
故障原因
通過網絡相關的帖子,可能是/bin/sh文件缺失,導致系統啟動卡條,通過在計算節點,執行yum install libguestfs-tools命令,來安裝guestfish套件,執行virt-ls –a disk /bin/命令來確認/bin目錄下,確實沒有sh,bash兩個文件,其中sh是bash的軟連接
問題處理方法
1、通過nova show 虛機uuid查看虛機位於哪個計算節點
2、登錄到該計算節點,通過virsh list命令查看虛機的狀態,如果虛機處於運行狀態,那么執行virsh destroy instance-xxx命令,對虛機進行關機
3、執行virsh domrename instance-xxx cw_test對虛機進行更名,更名操作是因為在對虛機執行修復過程中,執行virsh start命令對虛機開機,會被nova這一層強制的關機,更名以后,虛機不被nova控制,可以自由的操作
4、把虛機鏡像對應的iso鏡像拷貝到計算節點,用於救援模式使用
5、執行virsh edit cw_test命令,修改虛機的xml文件,主要修改如下兩點:
啟動方式改為cdrom方式
把虛機xml文件中,原有的cdrom內容去掉,換成iso鏡像的內容
<disk type='file' device='cdrom'> <driver name='qemu' type='raw' cache='none'/> <source file='/root/CentOS-7-X86_64-DVD-1611.iso'/> <target dev='hdd' bus='ide'/> </disk>
6、執行virsh start命令啟動虛機,選擇進行rescue mode模式
在救援模式下,不用選擇網絡模式,選擇一般模式即可,成功進入救援模式后,虛機原有的操作系統內容,會被掛載到/mnt/sysimage目錄下,所以如果想要往虛機的原有系統目錄下增加文件,一定要注意路徑,增加/mnt/sysimage。
7、執行cp /bin/bash / /mnt/sysimage/bin/ 把/bin/bash拷貝到虛機的操作系統/bin目錄下
8、進入到/mnt/sysimage/bin目錄下,執行ln -s bash sh命令,為bash建立軟連接
(ln [參數][源文件或目錄][目標文件或目錄], -s 軟鏈接(符號鏈接))
9、virsh destroy cw_test對虛機進行關機,並還原虛機的xml文件內容及dom名字,重啟虛機,虛機正常啟動,問題修復