引导过程与服务控制——GRUB 引导故障(三)

GRUB 是大多数 Linux 操作系统默认使用的引导程序,可以通过启动菜单的方式选择进入不同的操作系统(如果有)。当配置文件/boot/grub2/grub.cfg 丢失,或者关键配置出现错误,或者 MBR 中的引导程序遭到破坏时,Linux 主机启动后可能只出现“grub>”的提示符,无法完成进一步的系统启动过程,如图所示:

引导过程与服务控制——GRUB 引导故障(三)_第1张图片

通过 CentOS 救援模式的 Shell 环境重新安装 grub 引导程序。切换到待修复的 Linux 操作系统根环境,执行“grub2-install /dev/sda”命令可以重新将 grub引导程序安装到第一块硬盘(sda)的 MRB 扇区,具体操作如下:

sh-4.2# chroot /mnt/sysimage                       //引导急救模式,加载系统镜像
bash-4.2# grub2-install /dev/sda                   //重新建立加载sda分区
bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg   //重新构建grub菜单配置文件
bash-4.2# exit
sh-4.2# reboot

上述方法同样适用于在 Linux 主机中重装 Windows 操作系统(不覆盖 Linux 操作系统)后导致 Linux 操作系统无法启动的情况。因为对于使用双操作系统的主机,后安装的 Windows操作系统将使用自己的引导数据覆盖 MBR 扇区中的记录,导致开机后不再出现 GRUB 菜单从

而无法进入 Linux 操作系统。如果后安装 Linux 操作系统,GRUB 程序将自动识别硬盘中的Windows 操作系统并将其加载到 GRUB 菜单配置中。

注意:执行“dd if=/dev/zero of=/dev/sda bs=446 count=1”命令可以模拟出对 MBR扇区中 GRUB 引导程序的破坏(注意先做好备份),但并不会破坏分区表(实际上分区表保存在 MBR 扇区中的第 447~510 字节中,MBR 总共 512 字节,前 446 字节是主引导记录,从第

447 字节开始后的 64 字节,每 16 字节为一组,是硬盘分区表)。

你可能感兴趣的:(Linux,系统管理)