1. 程式人生 > >grub2故障舉例及修復

grub2故障舉例及修復

舉例 文件系統 config -o water 重新 系統文件 讀寫 pro

一、CentOS7/RHEL7啟動先從加點自檢開始,然後會將控制權交給BIOS,BIOS工作完成後會將控制權交給GRUB。GRUB在整個啟動流程中起到很大的作用,而GRUB中最重要的就是/boot/grub2/grub.cfg配置文件。啟動過程中通過臨時修改GRUB可以做很多事,包括修改root密碼這種危險操作,所以需要對grub.cfg做一些必要操作。
1、設置grub密碼
通過grub2-mkpassword-pbkdf2生成加密密碼,並編輯配置文件00_header(註意在RHEL6時我們可以直接修改/boot/grub/grub.conf,如今在RHEL7官方建議修改grub的模板文件,然後將模板文件編譯進入grub.cfg)
技術分享圖片
技術分享圖片
通過模板文件編輯配置
技術分享圖片
查看/boot/grub2/grub.cfg,可以看到已經自動將我們對00_header做的配置編譯到該文件
技術分享圖片
重啟後,在開機時想要編輯grub需要輸入用戶和密碼
技術分享圖片
2、通過grub修改終端界面的窗體大小。開機後編輯grub配置,在下圖位置添加vga=ask,然後按ctrl+x啟動
技術分享圖片
800X600這個大小看著比較舒服,輸入對應十六進制,回車即可
技術分享圖片
如果想要永久生效,編輯/etc/default/grub文件即可。註意,如果直接指定大小,需要明確表明340是十六進制,寫法是0x340
技術分享圖片
通過通過grub2-mkconfig使配置編譯到grub.cfg
技術分享圖片
3、應急模式。在下圖位置,填寫s。
技術分享圖片
註意:應急模式需要root密碼。通過netstat查看當前開放的端口、服務,可以看到為空。
技術分享圖片
4、修該root密碼。如圖,輸入
技術分享圖片
重新掛載文件系統,改為讀寫模式,就可以修改了。修改完畢後,需要touch /.autorelabel,否則selinux會影響我們進行的操作。
技術分享圖片
5、grub程序故障。
模擬故障
技術分享圖片
解決辦法:進入救援模式,重新安裝grub程序。
首先,進入救援模式
技術分享圖片
技術分享圖片
技術分享圖片
註意:輸入df查看當前的文件系統掛載信息。可以看出,我們的boot分區位於/dev/sda1上;通過fdisk -l /dev/sda也可以看到操作系統就安裝在該文件系統。所以,我們需要將grub程序安裝在/dev/sda1上,完成修復。
進入急救模式,安裝grub程序前,需要先切換根環境到/mnt/sysimage。否則是無法安裝的,如下。
技術分享圖片
6、模擬grub配置文件丟失;內核文件和虛擬文件系統文件丟失。
技術分享圖片
重啟後,系統直接提示進入救援模式。
技術分享圖片
修改BIOS讓光盤引導操作系統
技術分享圖片
同樣進入到/mnt/sysimage根環境中進行操作。掛載系統盤,安裝kernel,然後安裝grub程序,最後生成grub.cfg配置文件。(三者缺一不可,原因參照其引導過程)
技術分享圖片
解決後,我們修改BIOS,將引導順序改回到磁盤優先。(工作中,為防止有人理由修改BIOS的手段***操作系統,需要設置BIOS密碼)
7、MBR扇區故障。
MBR扇區故障,如果沒有備份將會是一件很麻煩的事。工作中也應當將MBR扇區進行備份。
備份MBR扇區(備份MBR需要將備份到沒有安裝操作系統的硬盤上)
技術分享圖片
模擬故障
技術分享圖片
同樣進入救援模式,創建一個目錄,將存有MBR備份的分區掛載到該目錄,然後即可還原
技術分享圖片

grub2故障舉例及修復