当前位置 : 主页 > 操作系统 > centos >

Linux的启动过程与常见故障排除

来源:互联网 收集:自由互联 发布时间:2022-06-20
linux的基础启动流程 1. 加载BIOS的硬件信息,并获取第一个启动设备的代号。 2. 读取第一个启动设备的MBR的引导加载程序(即lilo、grub、spfdisk等)的启动信息。 3. 加载操作系统的核心信


 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的启动过程与常见故障排除_linux

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

Linux的启动过程与常见故障排除_操作系统_02

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

Linux的启动过程与常见故障排除_用户登录_03

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

Linux的启动过程与常见故障排除_操作系统_04

然后按b键,进入系统

Linux的启动过程与常见故障排除_linux_05

已经进入系统

Linux的启动过程与常见故障排除_用户登录_06

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

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

Linux的启动过程与常见故障排除_linux_07

故障2:grub.conf

grub 菜单丢失

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

Linux的启动过程与常见故障排除_操作系统_08

此时看到已经断开连接

Linux的启动过程与常见故障排除_linux_09

重启

Linux的启动过程与常见故障排除_用户登录_10

已经启动不了了

解决方案:

help可以查看帮助

Linux的启动过程与常见故障排除_用户登录_11

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

Linux的启动过程与常见故障排除_操作系统_12

指定内核和根分区

Linux的启动过程与常见故障排除_linux_13

指定驱动

Linux的启动过程与常见故障排除_linux_14

做完之后,boot引导启动

Linux的启动过程与常见故障排除_linux_15

可以看到已经进去了

Linux的启动过程与常见故障排除_linux_16

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

Linux的启动过程与常见故障排除_操作系统_17

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

Linux的启动过程与常见故障排除_操作系统_18

引导顺序不要写反了

Linux的启动过程与常见故障排除_操作系统_19

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

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

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

Linux的启动过程与常见故障排除_操作系统_20

Linux的启动过程与常见故障排除_用户登录_21

插入光盘,重启

Linux的启动过程与常见故障排除_用户登录_22

选中求援模式

Linux的启动过程与常见故障排除_用户登录_23

选中shell

Linux的启动过程与常见故障排除_用户登录_24

分区表和引导菜单都有

Linux的启动过程与常见故障排除_操作系统_25

Linux的启动过程与常见故障排除_操作系统_26

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

Linux的启动过程与常见故障排除_用户登录_27

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

一定要先讲mbr备份

Linux的启动过程与常见故障排除_用户登录_28

我的已经拷贝到物理机上

擦除mbr,重启

Linux的启动过程与常见故障排除_操作系统_29

启动不了;

Linux的启动过程与常见故障排除_linux_30

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

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

Linux的启动过程与常见故障排除_操作系统_31

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

Linux的启动过程与常见故障排除_用户登录_32

将mbr重新写入

Linux的启动过程与常见故障排除_用户登录_33

已经可以查看分区表了

Linux的启动过程与常见故障排除_用户登录_34

重启

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

删除

Linux的启动过程与常见故障排除_用户登录_35

重启测试

Linux的启动过程与常见故障排除_操作系统_12

Linux的启动过程与常见故障排除_linux_13

Linux的启动过程与常见故障排除_linux_14

Linux的启动过程与常见故障排除_linux_15

进入系统,没有grub文件

Linux的启动过程与常见故障排除_操作系统_40

在根目录下执行

Linux的启动过程与常见故障排除_linux_41

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

Linux的启动过程与常见故障排除_用户登录_42

重启测试OK

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

Linux的启动过程与常见故障排除_用户登录_43

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

Linux的启动过程与常见故障排除_用户登录_44

发现看不到有用的信息,

Linux的启动过程与常见故障排除_操作系统_45


再重启进入引导菜单,

Linux的启动过程与常见故障排除_linux_46

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

Linux的启动过程与常见故障排除_操作系统_47

此时发现,UUID 值写错了

Linux的启动过程与常见故障排除_用户登录_48

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

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

Linux的启动过程与常见故障排除_用户登录_49

f10保存启动

看到sda2 没有挂载,挂载sda2

Linux的启动过程与常见故障排除_操作系统_50

查看UUID复制写入/etc/fstab

Linux的启动过程与常见故障排除_用户登录_51

保存退出

Linux的启动过程与常见故障排除_linux_52


重启正常!


总结:

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


网友评论