Grub2啟動(dòng)CentOS失敗的常見(jiàn)原因與解決方法
問(wèn)題現(xiàn)象
當(dāng)系統(tǒng)啟動(dòng)時(shí),Grub2可能提示以下錯(cuò)誤之一:
error: file '/boot/grub2/grub.cfg' not found
error: disk 'hd0,msdos1' not found
- 進(jìn)入grub rescue命令行界面
- 內(nèi)核 panic 或 initramfs 加載失敗
原因分析與解決方案
1. 引導(dǎo)配置損壞
執(zhí)行以下命令重新生成GRUB配置文件:
grub2-mkconfig -o /boot/grub2/grub.cfg
若無(wú)法進(jìn)入系統(tǒng),需通過(guò)Live CD或救援模式掛載分區(qū)后操作。
2. 內(nèi)核或initramfs文件丟失
檢查/boot
目錄下的內(nèi)核文件:
ls /boot/vmlinuz-* /boot/initramfs-*.img
若文件缺失,通過(guò)yum reinstall kernel
重裝內(nèi)核并重建initramfs:
dracut -f /boot/initramfs-$(uname -r).img $(uname -r)
3. 分區(qū)UUID變更
使用blkid
確認(rèn)分區(qū)UUID,編輯/etc/fstab
和/boot/grub2/grub.cfg
更新UUID值。
4. 文件系統(tǒng)錯(cuò)誤
在救援模式下執(zhí)行文件系統(tǒng)檢查:
fsck -y /dev/sdX
(替換sdX
為實(shí)際分區(qū)標(biāo)識(shí))
高級(jí)修復(fù)方法
手動(dòng)引導(dǎo)系統(tǒng)
在grub rescue模式下依次輸入:
set root=(hd0,msdos1)
linux /vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/centos-root
initrd /initramfs-3.10.0-1160.el7.x86_64.img
boot
需根據(jù)實(shí)際內(nèi)核版本和分區(qū)路徑調(diào)整參數(shù)。
重裝GRUB引導(dǎo)程序
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
預(yù)防措施
- 定期備份
/boot
目錄和GRUB配置文件 - 避免直接修改
grub.cfg
,應(yīng)通過(guò)/etc/default/grub
配置 - 系統(tǒng)更新后驗(yàn)證引導(dǎo)配置