Centos6启动问题排查

开机流程

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

1. POST加电自检
  • ROM:一段只读的程序信息,叫做BIOS,Basic Input and Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等。
  • RAM:CMOS互补金属氧化物半导体他保存各项参数的设定按次序查找引导设备,第一个有引导程序的设备为本次启动设备,通常设置启动硬盘就是在这里设置
2. 读取MBR

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

3. boot loader

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

  • 1阶段:这个阶段为执行grub的主程序,MBR中的前446个字节存放的为grub程序的第一部分。
  • 1.5阶段:这是个过度阶段,因为1阶段要识别boot分区的文件系统,而MBR只有512字节,放不下boot分区文件系统驱动,所以又在MBR之后的扇区中放入驱动,让MBR中的引导程序去读取,这就是1.5阶段。这个阶段文件是直接放在磁盘的MBR之后的扇区之内,大小为32K。
  • 2阶段:加载boot分区文件系统的驱动后,就可以读取boot中的内容了,主程序在boot分区中将grub.conf文件加载,读取配置,然后加载内核
4. 内核初始化进程
  • /sbin/init程序读取/etc/inittab,然后通过/etc/init/rc.conf和/etc/init/rcS.conf文件确定运行级别
  • 读取/etc/rc.d/rc.sysinit初始化系统
  • 读取/etc/rc.d/下的启动脚本,将他们映射为/etc/rc*.d/中的S开头的启动文件和K开头的结束文件
  • 执行S99local收尾文件,这个文件不是启动脚本,而是可以放置启动脚本的一个文件,在这个文件中放的脚本不需要按照启动脚本的格式去写

问题处理

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

GRUB阶段

1阶段

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

  • 开机进入安装界面,选取第三项Rescue救援模式


    Paste_Image.png
  • 网络选择不启用,其他一律默认进入shell
Paste_Image.png
  • 切根
Paste_Image.png
  • 重新生成grub
Paste_Image.png
  • exit;exit;然后选择reboot重启
1.5阶段

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

  • 读条的时候按ESC进入Boot界面,然后选择第三项光盘启动
Paste_Image.png
  • 进入安装界面选择第三项救援模式
Paste_Image.png
  • 后边的步骤同1阶段处理流程,这里就不在写了
2阶段

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

  • /boot/initramfs-2.6.32-696.el6.x86_64.img这个文件是一个被压缩的小型根目录,就是个假根,当内核需要挂载根文件系统时,需要相应的驱动模块,而这些模块是放在根文件系统中的,这样就没法玩了,所以先整一个假的根,他里边有挂载需要的模块之类的文件,把假根加载到内存中,然后加载必要的模块,之后再去挂载真正的根文件系统
  • /boot/vmlinuz-2.6.32-696.el6.x86_64这个就是传说中的内核了,所以肯定要有啊
  • /boot/grub/grub.conf这个配置文件用来指定假根,内核,需要挂载的根文件路径和内核一些参数,所以很重要,来看下这个文件内容:
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  #伪根文件路径

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

  • /boot/initramfs-2.6.32-696.el6.x86_64.img丢失,过了GRUB菜单之后,卡黑屏,处理方法为在救援模式下输入mkinitrd /boot/initramfs-`uname -r`.img `uname -r`重新生成文件(注意这个文件是根据系统生成的,不能从别的地方复制过来就能用的)

  • /boot/vmlinuz-2.6.32-696.el6.x86_64内核丢失,报错信息为Error :File not found,然后按回车又回到GRUB界面了,解决方法为进入救援模式,然后重新安装内核,或者复制一个过去,注意内核版本,别装错了

  • /boot/grub/grub.conf文件没了,这个时候症状为直接进入到grub命令行界面,处理方式为进入救援模式写一份/etc/grub/grub.conf或者下面这个方法:
    1.在GRUB命令行界面添加三行,如下

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中写入配置就行

  • 整个/boot目录都没了,其实少的也就是上面提到那几个必须的文件目录。那就进救援模式将内核重新安装一下,(装RPM包会自带initramfs),然后重新生成grub,最后再把配置文件写上就OK。
初始化阶段排错

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

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

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

  • 1.到GRUB界面下,按a,进入命令行界面在后面追加init=/bin/bash,将第一个启动程序变成bash,这样就跳过了init读取文件然后加载启动脚本的过程
  • 2.进入到shell后,重新挂载根文件系统,因为本身是只读的
Paste_Image.png
  • 3.用chkconfig将出问题的服务atd先设为禁用
Paste_Image.png
  • 4.重启,然后去再找atd服务的问题

初始化阶段和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路径记得要写逻辑卷的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容