CentOS的多种启动故障排错方法

一. CentOS启动过程

加电—>cmos[ 选项:bios引导 硬盘引导 光盘引导 U盘引导 网络引导(pxe)]

如果为硬盘引导:

1. 硬盘引导
2. 主引导MBR
3. grub管理菜单
4. 加载内核
5. 运行init进程
6. 读取/etc/inittab
7. 执行/etc/rc.d/rc/sysinit脚本(选择进入那种级别,如果为3级别,即代网络服务的字符模式)
8. 执行/etc/rc.d/rc(/etc/rc3.d/*)
9. 执行/etc/rc.d/rc.local
10. 最后启动mingetty进程(即登陆界面)
11. 引导结束。

其中grub分为几部分:

1. stage1 在MBR中即bootloader
2. stage1_5 即stage1.5 识别/boot/这个分区的文件系统
3. Stage2 在文件系统中 /boot/grub/stage2
其中stage1 和 stage2这两个阶段任何一个失效系统都无法启动。
4. grub.conf 是grub引导时很重要的配置文件,如果丢失,就意味着内核无法加载,变不能完成系统引导。
5. 如果grub目录丢失,就没有了grub管理菜单,系统也就不能正常引导。

二. 可能的故障

  • stage1失效;
  • stage2失效;
  • grub.conf 文件丢失或损坏
  • /boot/grub 被删除
  • 口令丢失

三. 故障排除方法及步骤

stage1 失效

模拟故障

进入/boot/grub,把里面的stage1(bootloader)覆盖并重启系统

#cd /boot/grub
#dd if=/dev/zero of=/dev/sda bs=446 count=1
#init 6

排除故障

1. 进入急救模式。
选择第三项急救模式-选择英文-选择美式键盘-选择本地光盘-这里不用选择网络-继续-ok-ok-shell start shell
2. 此时输入chroot /mnt/sysimage 改变根
3. 在输入grub-install /dev/sda 重建mbr的stage1(bootloader)
4. 重建之后再输入两次exit 退回到此界面选择reboot即可。

stage2 失效

模拟故障

进入/boot/grub目录下,可以找到stage2并删除,删除后重启系统,出现错误Error 15。

#cd /boot/grub
#rm -rf stage2
#init  6

排除故障

使用系统的LiveDVD光盘启动然后,重新生成stage2文件。

1. 现在自动进入光盘启动。启动后,按ctrl+alt+F21键进入字符模式。
2. 输入root 进入管理员模式
3. 执行 mount /dev/sda1 /root 把硬盘挂载到/boot目录下
4. 生成stage2文件

    #root
    #mount /dev/sda1 /root    
    #grub install  root directory=/  /dev/sda
    #ll /boot/grub

查看发现有了stage2,重启并选择本地引导即可

grub.conf 丢失或损坏

模拟故障

删除grub.conf文件,重启后报错。

#cd /boot/grub
#rm grub.conf
#init 6

排除故障

1. 选择从硬盘启动引导(不使用光盘)。
2. 输入root (hd0,0) 设置引导分区,输入内核和initrd后重启。

    root (hd0,0)
    kernel /boot/vmlinuz-2.6.18-274.12.1.el5 ro root=/dev/hda1 console=tty0 ide0=noprobe
    initrd /boot/initrd-2.6.18-274.12.1.el5.img
    init 6

3. 重建grub.conf文件。

    #vim /boot/grub/grub.conf
    default=0
    timeout=5
    hiddenmenu
    title CentOS (2.6.18-274.12.1.el5)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-274.12.1.el5 ro root=/dev/hda1 console=tty0 ide0=noprobe
        initrd /boot/initrd-2.6.18-274.12.1.el5.img
    #init 6

重启后,故障解决。

/boot/grub 丢失

模拟故障

#rm -rf /boot/grub

排除故障

1. 先用LiveDVD引导启动,方法同stage2引导一样。
2. 重建grub。
3. 进入grub后编辑文件grub.conf(同第3个情况是一样),重启即可。

口令丢失

1. 系统启动读秒时5面内按回车进入grub模式
2. 按e进入,选择kernel行按e进入,在后面追写1或single进入单人引导模式,退出并按b继续引导。
3. 启动后重新设置管理员密码

    #passwd -d root  #删除管理员密码
    #passwd root  #重新设定密码即可

参考:http://liqirui.blog.51cto.com/4662702/1344551