1. 程式人生 > >系統排錯3:若誤刪grub引導檔案,如何恢復?

系統排錯3:若誤刪grub引導檔案,如何恢復?

系統排錯

若誤刪grub引導檔案,如何恢復?

(1)刪除grub引導檔案但系統並未重啟

1).模擬實驗環境

[[email protected] ~]# cd /boot/grub2
[[email protected] grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc  locale  themes
[[email protected] grub2]# rm -rf grub.cfg

在這裡插入圖片描述
2).解決方案:直接恢復引導檔案即可

##grub2-mkconfig即為grub.cfg檔案的內容

在這裡插入圖片描述

##恢復檔案; > 表示重定向正確輸出
[[email protected] grub2]# grub2-mkconfig > /boot/grub2/grub.cfg
[[email protected] grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc  locale  themes

在這裡插入圖片描述
(2)刪除grub引導檔案並且系統並已經重啟

1).模擬實驗環境

[[email protected] grub2]# pwd
/boot/grub2
[[email protected]
grub2]# ls device.map fonts grub.cfg grubenv i386-pc locale themes ##刪除grub引導檔案 [[email protected] grub2]# rm -rf grub.cfg [[email protected] grub2]# ls device.map fonts grubenv i386-pc locale themes

在這裡插入圖片描述

##檢視/boot分割槽
[[email protected] ~]# df -h

在這裡插入圖片描述

##重啟
[[email protected]
grub2]# reboot

2)系統重啟後出現以下介面
在這裡插入圖片描述
3)設定開機引導

1.設定系統分割槽
  set root=‘hd0,msdos1’ 
2.掛載根裝置
  linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1   (可用Tab鍵補齊)
3.指定初始化映象
  initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img   (可用Tab鍵補齊)
4.boot啟動系統

在這裡插入圖片描述

注意:設定開機引導的命令不唯一,分為以下兩種情況

(1)boot分割槽未被獨立出

boot分割槽未被獨立出來:即boot分割槽在/目錄下
第一行:設定系統分割槽
/dev/vda1   # 第一塊虛擬裝置,a表示第一塊
hd0         #第一塊硬碟,0表示第一塊;0與a對應
msdos1      #msdos1中的1與/dev/vda1中的1相對應
第二行:linux16  /boot/vmlinuz......(絕對路徑)
第三行:Initrd16  /boot/initramfs......(絕對路徑)

(2)boot分割槽被獨立出來

第一行 :設定系統分割槽   (同上)
第二行:linux16  /vmlinuz......
第三行:Initrd16  /initramfs.....

在這裡插入圖片描述
注意:以上程式只是開機引導,但並未生成檔案,所以下次開機還得繼續引導
在這裡插入圖片描述
(4)手動恢復引導檔案

##為了避免下次開機再進行引導,故手動恢復引導檔案
[[email protected] grub2]# grub2-mkconfig > /boot/grub2/grub.cfg
[[email protected] grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc  locale  themes

在這裡插入圖片描述

[[email protected] grub2]# reboot

此時系統便恢復正常~
在這裡插入圖片描述