Centos7 開機時遇到initramfs-xxx.img not found錯誤導致虛擬機器器無法開啟問題處理

2023-04-20 15:00:30

1、背景

一臺執行在Esxi上面的VM重啟後報initramfs-xxx.img not found錯誤。

按任意鍵後出現以下錯誤。

之前在運維Centos7的時候解決過Kernel panic - not syncing : VFS: Unable to mount root fs on unknown-block(0.0)錯誤,以為按照之前的解決方案,重啟伺服器,按Esc進入選擇核心的介面,選擇中間的核心啟動伺服器就能解決問題(預設是選擇最上面的核心),沒想到還是同樣報initramfs-xxx.img not found錯誤。

然後嘗試選擇第三個核心,錯誤依舊。然後在核心選擇頁面按e嘗試進入Centos7安全模式,定位到ro 然後修改ro為rw,並新增sysroot=/bin/sh命令,按Ctrl+x命令進入安全模式,發現錯誤還是依舊。

2、解決方案

在解決initramfs-xxx.img not found錯誤前,需要先了解下initramfs作用。

2.1 initramfs模組作用

在Linux系統啟動過程中,initramfs(Initial RAM File System)是一種臨時的根檔案系統,用於在系統初始化期間掛載根檔案系統之前進行各種初始化操作。initramfs可以包含必需的驅動程式、二進位制檔案和指令碼等,以便在系統引導期間使用。

在Linux系統引導時,initramfs模組會被載入到記憶體中,其中包含了必要的檔案和驅動程式,用於在啟動階段執行各種任務,例如檢查檔案系統、載入模組、識別和掛載根檔案系統等。此外,initramfs模組還可以用於進行故障排除和修復系統錯誤,例如恢復損壞的檔案系統等。

總的來說,initramfs模組在Linux系統的引導過程中起著非常重要的作用,它提供了一個輕量級的臨時檔案系統,使得在系統初始化階段執行各種任務更加靈活、高效和可靠。

2.2 資料備份(可選)

在嘗試解決此錯誤前,為了保險起見,可以先備份當前VM資料(相當於建立了一個和報錯VM相同資料的VM)。

1)、資料盤新建目錄用於備份報錯VM

 2)、將報錯VM的vmx、vmdk檔案拷貝到新建目錄下

 3)、右鍵點選test115目錄下的monitor115.vmx進行虛擬機器器註冊,然後等待拷貝任務完成,即可備份出一個一模一樣的VM。

注意 1:資料備份不是必選的,monitro115這臺VM是測試機器,沒有要求修復完成時間,因此留出時間進行資料備份,以防誤操導致機器徹底啟動不來。

注意 2:等待拷貝任務需要等待很長時間(monitor115這個VM是200G的SATA盤,拷貝用了將近4個小時),如果伺服器急需修復,請選擇其他方式進行VM的備份。

 2.3 解決報錯

1)、修改VM設定,使得下次虛擬機器器啟動時,強制進入BIOS設定介面

 2)、使用CD光碟驅動啟動VM

開啟VM電源,進行BIOS介面,切到開機項(Boot),將光碟驅動(CD-ROM Drive)調整到硬碟驅動(Hard Drive)上面即可,然後F10儲存,退出BIOS設定。

 3)、選擇「Troubleshooting」疑難雜症

4)、進入救援模式

如果以上操作正確,便可進入救援模式。

輸入1即可進入救援模式。

5)、 救援環境嘗試掛載linux根檔案系統到/mnt/sysimage

根據上圖提示,執行chroot /mnt/sysimage命令,切換至根目錄模式,確認initramfs-*.img檔案是否存在。

bash-4.2#chroot /mnt/sysimage
bash-4.2#cd /boot
bash-4.2#ls 

 6)、執行mount命令,將光碟機重新掛載至/mnt目錄,然後切換至系統軟體包所在目錄,列出kernel相關軟體包。

bash-4.2#mount /dev/cdrom /mnt/

 7)、執行rpm命令強制安裝kernel軟體包
rpm -ivh kernel-3.10.0-693.e17.x86_64.rpm  --force --nodeps

 

8)、kernel軟體包重灌完成後,檢視/boot目錄下是否有新的initramfs檔案生成。

9)、重啟主機,作業系統恢復正常。
bash-4.2#exit
bash-4.2#init 6

注意:不要忘了再把bios啟動順序再調整回去,優先載入硬碟。

參考:http://www.360doc.com/content/22/1020/09/79641151_1052432906.shtml

參考:https://www.cnblogs.com/Julien1021/p/16341423.html

參考:https://blog.csdn.net/weixin_43279032/article/details/120322514