linux的基础启动流程


    1. 加载BIOS的硬件信息,并获取第一个启动设备的代号。

    2. 读取第一个启动设备的MBR的引导加载程序(即lilo、grub、spfdisk等)的启动信息。

    3. 加载操作系统的核心信息,核心开始解压,并尝试驱动所有的硬件设备。

    4. 核心执行init程序并获得运行信息。

    5. init执行/etc/rc.d/rc.sysinit文件。

    6. 启动核心的外挂模块(/etc/modprobe.conf)。

    7. init执行运行的各个批处理文件(Script)

    8. init执行/etc/rc.d/rc.local文件。

    9. 执行/bin/login程序,等待用户登录。

    10. 登录之后开始以shell控制主机。


流程:

         1.post

         2.cmos ---》硬盘引导----》MBR

         3.grub 第一阶段

         4.grub 第二阶段  /etc/grub.conf (/boot/grub/grub.conf)

         5.加载内核以及驱动镜像

         6.开启第一个进程 init  /etc/inittab

         7.执行初始化文件  /etc/rc.d/rc.sysinit

         8. 进入/etc/rc.d/rcn.d 目录    执行 Kxx  Sxx

         9./etc/rc.d/rc.local

         10.mingetty  产生终端




/boot/grub引导菜单介绍

default=0                                  ***默认启动的系统,0 表示第一个title 的系统
timeout=5                                  ***菜单停留的时间
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz     ***启动时的背景
hiddenmenu                                 ***菜单是隐藏的
title CentOS (2.6.32-431.el6.i686)          ***每个系统的标示
        root (hd0,0)                         ***hd0 表示第一个盘,0表示第一个分区
        kernel /vmlinuz-2.6.32-431.el6.i686   ***加载根分区的内核,,此时的根是/boot
        ro                                   ***以只读方式来进行引导
        root=UUID=4a3e9e54-2ed5-4796-9702-774aac0e74a4   ***加载完内核后真正的根分区
         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                                ***静默模式,启动时信息不再凌乱
        initrd /initramfs-2.6.32-431.el6.i686.img   ***额外的驱动,放置的镜像


故障1:root 口令丢失

  解决原理:进入1级别,单用户级别,因为这个级别是不用输入root密码的,在这里面可以设置新的root密码,然后重启进入其他级别,输入即可

详细操作:

Linux的启动过程与常见故障排除_第1张图片

重启客户机,在boot引导时5秒内按下回车键,进入引导菜单

Linux的启动过程与常见故障排除_第2张图片

此时按下e键 ,进入编辑模式,

Linux的启动过程与常见故障排除_第3张图片

选择第二项,按e键,在最后添加“1”然后回车

Linux的启动过程与常见故障排除_第4张图片

然后按b键,进入系统

Linux的启动过程与常见故障排除_第5张图片

已经进入系统

Linux的启动过程与常见故障排除_第6张图片

可以修改root密码,重启即可,或者把密码删除

passwd  -d  root        密码删除远程是登陆不上的

Linux的启动过程与常见故障排除_第7张图片

故障2:grub.conf

grub 菜单丢失

为了模拟实验先把grub菜单删除

Linux的启动过程与常见故障排除_第8张图片

此时看到已经断开连接

wKioL1WvNbSRkq8uAACejQccQ7E796.jpg

重启

Linux的启动过程与常见故障排除_第9张图片

已经启动不了了

解决方案:

help可以查看帮助

Linux的启动过程与常见故障排除_第10张图片

先指定引导程序的硬盘和分区,(如果不清楚,可以用tab键帮助)

wKiom1WvNdWyCtyKAABTEF9lDi4931.jpg

指定内核和根分区

wKiom1WvNn3QdOyoAABslODDssg434.jpg

指定驱动

wKiom1WvNw2AMeQ_AABlT_raTAk481.jpg

做完之后,boot引导启动

wKioL1WvOQ_hV2ZAAAA6moa-mKQ700.jpg

可以看到已经进去了

Linux的启动过程与常见故障排除_第11张图片

但是为了下一次能够正常启动,不再指定grub菜单,所以要写出grub.conf

wKioL1WvOeize9AnAABGanQ6Crk770.jpg

不知道可以用!!的形式列出需要的文件

wKiom1WvOOfQ5Ag_AABbi36seww225.jpg

引导顺序不要写反了

Linux的启动过程与常见故障排除_第12张图片

保存重启,已经可以正常启动了

故障三:故障3:stage1 丢失 446字节的引导程序坏掉

故障模拟,向sda 写入446 字节,然后重启

wKioL1WvSQbyO9OhAACR8VF0uJk167.jpg

Linux的启动过程与常见故障排除_第13张图片

插入光盘,重启

Linux的启动过程与常见故障排除_第14张图片

选中求援模式

Linux的启动过程与常见故障排除_第15张图片

选中shell

Linux的启动过程与常见故障排除_第16张图片

分区表和引导菜单都有

Linux的启动过程与常见故障排除_第17张图片

Linux的启动过程与常见故障排除_第18张图片

重新写入引导,exit退出,重启即可

Linux的启动过程与常见故障排除_第19张图片

故障4:MBR(446字节和分区表没有了)丢失

一定要先讲mbr备份

wKiom1WvT52SLsoIAACKqB-XhIY713.jpg

我的已经拷贝到物理机上

擦除mbr,重启

wKiom1WvUPahluKHAACWazESbUU698.jpg

启动不了;

Linux的启动过程与常见故障排除_第20张图片

插入live cd盘  CentOS-6.5-i386-LiveDVD

进入cd盘后,打开终端,切换root用户

Linux的启动过程与常见故障排除_第21张图片

关闭防火墙,讲保存的mbr文件导入

Linux的启动过程与常见故障排除_第22张图片

将mbr重新写入

wKioL1WvV9zjTnhpAACPbUioCTk914.jpg

已经可以查看分区表了

Linux的启动过程与常见故障排除_第23张图片

重启

故障5:stage2 丢失 (grub目录)

删除

wKiom1WvV2Lw9dCTAAA5o7vwPr4294.jpg

重启测试

wKiom1WvNdWyCtyKAABTEF9lDi4931.jpg

wKiom1WvNn3QdOyoAABslODDssg434.jpg

wKiom1WvNw2AMeQ_AABlT_raTAk481.jpg

wKioL1WvOQ_hV2ZAAAA6moa-mKQ700.jpg

进入系统,没有grub文件

Linux的启动过程与常见故障排除_第24张图片

在根目录下执行

Linux的启动过程与常见故障排除_第25张图片

进入grub目录,发现没有grub.conf 重新编辑grub.conf文件

Linux的启动过程与常见故障排除_第26张图片

重启测试OK

故障6: /etc/fstab  (编错或误删除)

Linux的启动过程与常见故障排除_第27张图片

重启,启动失败,输入密码

Linux的启动过程与常见故障排除_第28张图片

发现看不到有用的信息,

Linux的启动过程与常见故障排除_第29张图片


再重启进入引导菜单,

Linux的启动过程与常见故障排除_第30张图片

删除图形引导,和静默模式,再重启

Linux的启动过程与常见故障排除_第31张图片

此时发现,UUID 值写错了

Linux的启动过程与常见故障排除_第32张图片

解决方案:采用live cd 启动,然后将错误改回来

重启时,发现从硬盘引导了,先关机,选择虚拟机,电源,从BIOS 启动

Linux的启动过程与常见故障排除_第33张图片

f10保存启动

看到sda2 没有挂载,挂载sda2

Linux的启动过程与常见故障排除_第34张图片

查看UUID复制写入/etc/fstab

Linux的启动过程与常见故障排除_第35张图片

保存退出

Linux的启动过程与常见故障排除_第36张图片


重启正常!


总结:

    当系统出错进不去时,先关闭,静默模式和图形引导,查看详细信息,如果可以进入shell,在shell中写入引导盘,内核文件,根分区和驱动镜像,进入系统再修改错误,如果进入不到shell,可以到求援模式,如还不行,就挂载live盘进去查错并修改。