-
實驗環境
Centos7.4? root用戶執行執行rm -f /boot/* ; reboot
這里可以看到,系統重啟報錯,vmlinuz-3.10.0-693.e17.x86_64 文件找不到,而這個文件是系統內核裝載需要調用的文件;
而這個文件其實是在裝系統之前就存在的,只是裝好系統后,從光盤內復制到/boot目錄下的,所以我們只需要進入救援模式,把這個文件從掛載光盤目錄下,solinux/*? 中將此文件再拷貝一份出來就行。
-
vmlinuz-3.10.0-693.e17.x86_64? 恢復步驟
- 將系統BIOS設置成優先光盤引導啟動,重啟系統,進入救援系統,進入shell界面;
2.切記!此處的根目錄是救援系統的根分區,并非真正系統的根目錄,故障系統掛載在了/mnt/sysimage/下,操作時不要忘了!
(1? df查看光盤掛載目錄.
(2 進入光盤目錄下的isolinx子目錄內,執行 cp vmlinuz /mnt/sysimage/boot/vmlinuz-`uname -r`將vmliuz 復制至/mnt/sysimage/boot/ 下
(3? 進入/mnt/sysimage/boot/下 確認文件已經存在,執行sync? ;reboot系統? (此處執行sync 的意義是怕部分復制文件任然在緩沖buffer 中,沒寫入磁盤,執行sync 讓緩沖中的數據立即寫入磁盤)
這里你會發現,系統依然無法啟動
那是因為缺少另外一個 關于此內核文件的 輔助偽根系統,之所以稱之為偽根系統,應為他虛擬了一個文件系統,存放了根文件系統的驅動模塊,內核只有調用這些驅動文件,才能找到根將系統掛載上去,從而開啟第一個進程。所以這個文件/boot/initramfs-3.10.0-693.el7.x86_64.img 是在裝系統時,根據根文件系統屬性,現生成的,所以無法從別處移植過來,但是卻有專門的工具生成;
-
/boot/initramfs-3.10.0-693.el7.x86_64.img 恢復步驟
1.進入救援系統的步驟跟vmlinuz-3.10.0-693.e17.x86_64 是一樣的;
2.進入到/mnt/sysimage/boot/ 目錄下,執行mkinitrd /boot/initramfs-`uname -r`.img ?`uname -r`
但是要進行根切換,這一點很關鍵
因為mkinitrd 是依賴/usr/share/drocut/drocut-functions 的,如果根目錄不對,找不到對應文件,會導致無法執行mkinitrd
3.執行,這里時間可能會久一點要耐心等待一下。
4.確認文件生成后,按exit 推出救援系統重啟系統。
5.又可以愉快的浪了!
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97728