CentOS7 Grub引導故障恢復(fù)全過程
當CentOS 7的/boot/grub2/grub.cfg文件丟失,重啟后進入grub>模式時,可以按照以下步驟恢復(fù)系統(tǒng)。
第一步:手動引導進入系統(tǒng)
1. 查找系統(tǒng)分區(qū)
grub> ls
你會看到類似輸出:(hd0) (hd0,msdos1) (hd0,msdos2)等
2. 找到/boot分區(qū)
逐個檢查分區(qū),尋找包含內(nèi)核文件的分區(qū):
grub> ls (hd0,1)/ grub> ls (hd0,2)/
當你看到包含以下文件的分區(qū)時,就找到了/boot分區(qū):
- vmlinuz-3.10.0-xxx.el7.x86_64
- initramfs-3.10.0-xxx.el7.x86_64.img
- grub2/目錄
記下這個分區(qū)位置,比如(hd0,1)
3. 設(shè)置根設(shè)備并加載內(nèi)核
# 設(shè)置根設(shè)備為/boot分區(qū) grub> set root=(hd0,1) # 加載Linux內(nèi)核 grub> linux /vmlinuz-3.10.0-1160.el7.x86_64 ro root=/dev/mapper/centos-root # 加載initramfs grub> initrd /initramfs-3.10.0-1160.el7.x86_64.img # 啟動系統(tǒng) grub> boot
重要提示:
- 如果根分區(qū)不是LVM,可能是:root=/dev/sda2
- 如果不確定根分區(qū),可以嘗試:root=/dev/sda2 或 root=/dev/sda3
- 內(nèi)核版本號用Tab鍵自動補全
第二步:永久修復(fù)GRUB配置
成功進入系統(tǒng)后,執(zhí)行以下命令:
1. 重新掛載根分區(qū)為讀寫
# mount -o remount,rw /
2. 重新生成GRUB配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-xxxx Found initrd image: /boot/initramfs-0-rescue-xxxx.img done
3. 可選:重新安裝GRUB到磁盤(如果必要)
# grub2-install /dev/sda
4. 驗證修復(fù)
# ls -la /boot/grub2/grub.cfg -rw-r--r--. 1 root root 6538 Dec 1 10:30 /boot/grub2/grub.cfg # cat /boot/grub2/grub.cfg | grep menuentry
備選方案:使用救援模式
如果手動引導失敗,可以使用CentOS 7安裝盤進入救援模式:
1. 啟動救援模式
- 用CentOS 7安裝U盤或光盤啟動
- 選擇"Troubleshooting" → “Rescue a CentOS system”
- 選擇"1"繼續(xù)
2. 掛載并修復(fù)系統(tǒng)
# 檢查磁盤分區(qū) # fdisk -l # 掛載根分區(qū) # mkdir /mnt/sysimage # mount /dev/mapper/centos-root /mnt/sysimage # 掛載boot分區(qū)(如果是單獨分區(qū)) # mount /dev/sda1 /mnt/sysimage/boot # 掛載必要的文件系統(tǒng) # mount --bind /dev /mnt/sysimage/dev # mount --bind /proc /mnt/sysimage/proc # mount --bind /sys /mnt/sysimage/sys # 切換到原系統(tǒng)環(huán)境 # chroot /mnt/sysimage
3. 在chroot環(huán)境中修復(fù)
# 重新生成GRUB配置 # grub2-mkconfig -o /boot/grub2/grub.cfg # 重新安裝GRUB # grub2-install /dev/sda # 退出chroot并重啟 # exit # reboot
預(yù)防措施
修復(fù)完成后,建議:
# 備份GRUB配置 # cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup # 定期檢查系統(tǒng)完整性 # rpm -Va | grep grub2
總結(jié)
關(guān)鍵步驟:
- 手動引導:在grub>提示符下設(shè)置root、加載內(nèi)核和initrd
- 永久修復(fù):進入系統(tǒng)后執(zhí)行g(shù)rub2-mkconfig -o /boot/grub2/grub.cfg
- 備選方案:使用安裝盤的救援模式進行修復(fù)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Apache NameVirtualHost *:80 has no VirtualHosts問題解決辦法
這篇文章主要介紹了Apache NameVirtualHost *:80 has no VirtualHosts問題解決辦法,一個很簡單的配置性錯誤,需要的朋友可以參考下2014-08-08
linux跨服務(wù)器復(fù)制文件方式(scp含腳本批量復(fù)制)
這篇文章主要介紹了linux跨服務(wù)器復(fù)制文件方式(scp含腳本批量復(fù)制),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
Ubuntu虛擬機沒有網(wǎng)絡(luò)的原因和解決方案
文章介紹了Ubuntu虛擬機在VMware或VirtualBox中無法訪問互聯(lián)網(wǎng)的問題,詳細解釋了問題原因,并提供了完整的解決方案,包括啟動網(wǎng)卡、獲取IP地址和重啟網(wǎng)絡(luò)服務(wù)等步驟,需要的朋友可以參考下2026-03-03
Linux下如何檢查網(wǎng)卡bonding狀態(tài)和切換主備網(wǎng)卡
這篇文章主要介紹了Linux下如何檢查網(wǎng)卡bonding狀態(tài)和切換主備網(wǎng)卡問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11

