linux故障排除_grub丢失损坏

要想知道linux启动故障出在哪里,了解linux的启动过程还是很有必要的。下面我们就来了解一下linux的启动过程吧!

  1.开机加电后后,由POST程序来完成硬件的检测,包括声卡、网卡、显卡、内存、硬盘等;检测硬件是否故障。

2.如果第一步没有问题,假如选择硬盘引导,将会首先去检测MBR区域(主引导记录),MBR共有512字节,分为三部分:第一部分为BootLoader,在linux中,grub引导分为两部分,第一部分就在BootLoader中,grub引导的第二部分在/boot目录下,主要特征是有一个GRUB引导菜单。系统通过BootLoader来找到/boot中的GRUB菜单,通过菜单里的选项选择要启动的系统,进而选择了要加载的内核;内核加载完后系统要启动init初始化进程,init进程读取inittab表,根据inittab表中描述的默认启动级别,进入到相应的目录,例如默认级别为3,则会进入/etc/rc3.d目录,将开头为S的文件对应的服务按照顺序启动起来。无论进入哪个级别,都会执行/etc/rc.d/rc.sysinit脚本来初始化网络、主机名、分区等,rc.sysinit是由init执行的第一个脚本。然后系统读取开机脚本/etc/rc.d/rc.local,读取用户定义的脚本指令等内容。最后系统启动mingetty进程,启动tty终端等待用户的登录。

 

 

位置一:MBR

情况:MBR被覆盖

模拟实验:

   产生446字节文件将MBR覆盖掉

  linux故障排除_MBR覆盖_02

重启系统 :init6

linux故障排除_linux启动故障_03

重启后系统无法启动,提示重新安装

linux故障排除_linux启动故障_04

这时候可以使用急救模式:在boot: linux rescue,前提条件是要有引导光盘

linux故障排除_MBR覆盖_05

选择语言,选择键盘

linux故障排除_fstab损坏_06

linux故障排除_fstab损坏_07

 

linux故障排除_linux启动故障_08

该系统已被重新挂载在/mnt/sysp_w_picpath下,需切换到该目录下

linux故障排除_grub丢失损坏_09

由于446字节的bootloader 被覆盖,需要重建bootloader

linux故障排除_grub丢失损坏_10

两次退出后系统重启

linux故障排除_fstab损坏_11

 

 

位置二、GRUB菜单丢失

/boot/grub/grub.conf

   default=0
   timeout=5
   splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
   hiddenmenu
   title Red Hat Enterprise Linux Server (2.6.18-164.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.18-164.el5.img

 

若grub.conf文件丢失,开机后界面如下:

linux故障排除_linux启动故障_12

定义引导分区:

linux故障排除_fstab损坏_13

指明内核:

linux故障排除_linux启动故障_14

指明驱动

linux故障排除_fstab损坏_15

输入:boot命令重新启动,可以进入系统

linux故障排除_linux启动故障_16

但是现在系统还是缺少grub菜单,要手工重建grub菜单。vim /boot/grub/grub.conf

linux故障排除_grub丢失损坏_17

如果单词不会写的话,可以在底行模式下键入两次"!",查看当前/boot下的所有文件

linux故障排除_grub丢失损坏_18

linux故障排除_grub丢失损坏_19

保存退出后,下次重启时系统将正常启动。

 

 

 

位置三 、/etc/rc.d/rc.sysinit

分区表故障

 

在init进程执行/etc/rc.d/rc.sysinit脚本是调用/etc/fstab分区表,如果分区表损坏,将无法启动。

下面模拟该故障。

编辑/etc/fstab

linux故障排除_fstab损坏_20

重启系统后报错

linux故障排除_MBR覆盖_21

linux故障排除_fstab损坏_22

这时候也是可以编辑/etc/fstab文件的,但是不能保存

linux故障排除_linux启动故障_23

linux故障排除_linux启动故障_24

这时可通过mount命令重新挂载根分区

linux故障排除_grub丢失损坏_25

 

 

 

 

 

 

再次编辑/etc/fstab文件,这时就可以编辑并且保存了。

linux故障排除_fstab损坏_26

再次启动,系统将正常启动