LINUX学生会

Centos6启动问题排查

2017-07-08  本文已影响257人  fengkaipeng

开机流程

要排查问题,首先要了解启动流程。我们先看一下centos6的开机流程:

1. POST加电自检
2. 读取MBR

硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,BIOS找到并读取MBR到内存中

3. boot loader

MBR中存放的一段小程序统称为boot loader,他有很多种,用来引导centos6用的是grub,这里也只说这种(注意:/boot/grub/stage*只是GRUB几部分内容的复制,真正起作用的还是直接放在磁盘扇区中的内容)grub一般分为3阶段:

4. 内核初始化进程

问题处理

这里只从GRUB阶段开始,前面的阶段就不看了。

GRUB阶段

1阶段

1阶段出问题症状:不会进入GRUB菜单,如果没有挂光盘,就直接黑屏,挂上光盘后,会直接进入安装菜单(因为GRUB主程序被破坏,检测以为系统没有安装)
我们可以用dd if=/dev/zero of=/dev/sda bs=1 count=446去破坏MBR中的GRUB,模拟出1阶段错误
恢复步骤:

Paste_Image.png Paste_Image.png Paste_Image.png
1.5阶段

1.5阶段出问题症状:有GRUB菜单,进来后卡黑屏
模拟环境:用dd if=/dev/zero of=/dev/sda bs=1 count=3000 skip=512 seek=512来将MBR之后的扇区内容删除一些
处理步骤:

Paste_Image.png Paste_Image.png
2阶段

2阶段有很多问题,我们先了解下boot目录下的必需文件作用,再去看问题。

default=0               #设置默认启动项,每个title是一个启动项,从0开始从上到下
timeout=5   #设置超时时间,这个时间内按ESC可以到GRUB菜单,超过这个时间就自动选择默认,设置为0表示直接进入菜单,不回车一直停在菜单里
splashimage=(hd0,0)/grub/splash.xpm.gz  #选择GRUB菜单背景
passwd 密码  #由于直接进入单用户模式就可以修改密码,而进入单用户就是按a然后进入到这里加1就行的,所以需要加密
hiddenmenu  #隐藏菜单,不写就不隐藏了
title CentOS 6 (2.6.32-696.el6.x86_64) #一个启动项,开头写title,后边可以自由发挥
    root (hd0,0) #给下面的参数设置根
    kernel /vmlinuz-2.6.32-696.el6.x86_64 rw root=UUID=6440d4c0-02ab-47ec-a9b4-1b0aaff0a757 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet  #内核文件 root=根文件系统
    initrd /initramfs-2.6.32-696.el6.x86_64.img  #伪根文件路径

文件丢失对应的错误:
这里的问题都要进入救援模式

root (hd0,0)  #hd0,0表示hda1,其他分区和盘的话按照顺序往下排就行
kernel    /vmlinuz-2.6.32-696.el6.x86_64    #可以补全
initrd /initramfs-2.6.32-696.el6.x86_64.img   #可以补全

2.输入boot启动,然后进入/boot/grub/grub.conf中写入配置就行

初始化阶段排错

这个阶段有些服务可能会出问题,表现症状为卡在服务那里不动了或者报错failed,我们处理的思路为先进去,再去找这个服务的问题。
我们模拟下at服务的错误,在/etc/init.d/atd启动脚本中,前面加上一个sleep 100000,让他睡很长时间

#!/bin/sh
sleep 10000
# atd Starts/stop the "at" daemon

这样启动时,就卡在了这里,这时候怎么办呢?
解决步骤如下:

Paste_Image.png Paste_Image.png

初始化阶段和GRUB阶段都有问题

当/boot/目录和/etc/fstab文件都没了的时候,就比较麻烦了,因为救援模式是读取/etc/fstab文件中的内容去找根文件系统的,所以删掉/etc/fstab之后,进救援模式就会挂载不到根(之前是自动挂到/mnt/sysimage中的)
处理思路:先进入救援模式,然后blkid等命令查看分区,尝试挂载,找到根文件系统,在根文件系统中写一份/etc/fstab文件,然后再重启,之后的步骤就和之前说的恢复/boot目录一样了
步骤如下:
1.进入救援模式,不过会提示没有挂载根

Paste_Image.png

2.blkid命令查看分区

Paste_Image.png

3.然后创建一个目录,将每个分区都挂一下,看一下内容,找到根文件系统,然后创建/etc/fstab

Paste_Image.png

内容如下:


Paste_Image.png

4.重启之后,进入救援模式就看到根挂载上了
5.之后的过程和之前的恢复/boot就一样了

在逻辑卷的系统上删除/etc/fstab和/boot

当系统是放在逻辑卷中时,删除/etc/fstab和/boot又不一样了,启动是直接进入了GRUB命令行界面了,但是什么东西都没有,补全不能用,所以还是得进救援模式:

Paste_Image.png

同样提示找不到根文件系统:

Paste_Image.png

用blkid看不到根文件系统,只能看到/boot:

Paste_Image.png

用lvdispaly查看,找到了root了,但是是不能使用的:

Paste_Image.png
这是因为PV卷组没有启用,用pvchange -ay命令启动,然后再次查看,看到可以使用了 Paste_Image.png

将根分区挂载到/lv0,查看内容,确认是跟分区

Paste_Image.png

然后之后的步骤和前面的又一样了,不过要注意配置文件中的root路径记得要写逻辑卷的。

上一篇 下一篇

猜你喜欢

热点阅读