centos无法正常启动,直接进入grub shell画面

现象
开机直接进入grub shell画面,无法启动操作系统

在这里插入图片描述

原因分析:开机加电后,根据bios里的设定,在第一块盘上的MBR里寻找到开机管理程序boot loader也就是grub,接下来应该读取grub的配置文件,根据设置选择核心文件和核心的驱动文件initramfs,然后交给核心,挂载文件系统,启动程序等流程。但是这个时候,无法读取grub的menu.lst文件,可能是menu.lst文件损坏或者grub的主程序损坏,因为grub分为两个stage,stage1是主程序,stage2是配置文件和环境文件。

解决方法
尝试手动指定核心文件和虚拟文件系统文件启动来替代menu.lst进行启动

kernel (hd0,0)/vmlinuz-2.6.32-279.el6.x86_64 root=/dev/mapper/vg_dg1-lv_root
initrd (hd0,0)/initramfs-2.6.32-279.el6.x86_64.img
boot

注意:如果没有写挂载根目录的设备,在启动的时候,会出现如下报错
在这里插入图片描述

发现能正常启动,启动后检查/boot/grub/menu.lst文件,和手动输入的相同
尝试重新安装grub的主程序,在grub shell下操作
安装grub 主程序

grub> root (hd0,0)
root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
grub> find /grub/stage1
find /grub/stage1
 (hd0,0)
grub> setup (hd0)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd0)"...  27 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd0) (hd0)1+27 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.
grub>quit

重启操作系统,正常进入

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值