Centos6 修复grub损坏故障
1、查看系统中的/boot/grub/grub.conf
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/vg_test-lv_root # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-431.el6.i686) root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.i686 ro root=/dev/mapper/vg_test-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_test/lv_swap SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rd_LVM_LV=vg_test/lv_root rhgb quiet initrd /initramfs-2.6.32-431.el6.i686.img 2、模拟故障 删除boot目录下的grub相关文件:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
重启之后报错:
3、修复故障
开机进入救援模式:
操作之前将根切换至之前的系统:
创建光盘挂载目录,并挂载光盘,安装kerner包,会生成/boot目录以及内核及initramfs :
修复grub,首先要查看一下自己的磁盘分区情况,以确认grub安装在那个磁盘上:
从上图可以看到/boot 安装在/dev/sda1分区。
为第一块磁盘安装grub引导:

确认grub目录已经生成,后面会用到:

此时仍然在救援模式,编辑/boot/grub/grub.conf文件
sh-4.1#vi /boot/grub/grub.conf default=0 timeout=5 hiddenmenu title linux root (hd0,0) kernel /vmlinuz-2.6.32.-431.el6.x86_64 ro root=/dev/mapper/vg_test-lv_root initrd /initramfs-2.6.32-431.el6.x86_64.img :x 保存并退出。然后重启,可以正常进入系统。
进入系统之后查看/boot/grub/grub.conf文件:

参数解释:
- chroot /mnt/sysimage 进入系统真实系统下
- df -h 观察发现 / 挂载到逻辑卷上 /dev/mapper/vg_test-lv_root
- grub-install /dev/sda 在根(/)挂载磁盘生成grub目录。绝大多数情况下,根和/boot在一个磁盘
- default=0 默认进入第一个引导系统
- timeout=5 5秒后自动进入启动界面
- hiddenmenu 隐藏菜单
- title linux 标签
- root (hd0,0) boot目录在(hd0,0)分区上
- kernel /vmlinuz-2.6.32.-431.el6.x86_64 ro root=/dev/mapper/vg_test-lv_root 【若硬盘和分区很多,推荐使用UUID】
- 或 kernel /vmlinuz-2.6.32-696.e16.x86_64 ro root=UUID=XXXXX \\指明内核文件,ro为只读挂载,root指定根分区(可以是分区或者逻辑卷,或者指定根分区的UUID),rhgb为启动过程图形化显示的参数,quiet为显示内核启动过程的参数
- initrd /initramfs-2.6.32-696.e16.x86_64.img 指明ramfs文件

boot回车启动。可以正常进入系统。 注:
- grub> root (hd0,0) #是说根分区在第一块硬盘的第一个分区上。(hd0,1)是说根分区在第一块硬盘的第二个分区上
- grub> kernel /boot/vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_test-lv_root #指明内核路径和根分区
- grub> initrd /boot/initramfs-2.6.32-431.el6.x86_64.img #指明initramfs 路径启动系统加载驱动
- grub> boot #启动上面指定的系统,如果是reboot就等于重启整个系统了,刚才的设置就失效了


更多精彩