Linux系统启动过程:

接通电源→硬件自检(post)→cmos启动过程顺序→MBR引导

用图示说明:

linux系统启动故障恢复_操作系统

先了解下grub.conf

[root@wang grub]# vim /boot/grub/grub.conf

default=0    

timeout=5  没有选择启动的操作系统超时时间

splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz  引导菜单背景图片 

Hiddenmenu  隐藏菜单

title CentOS (2.6.32-431.el6.i686)  开机时候提供的菜单的标签

        root (hd0,0)  第一个硬盘的第一个分区,即引导分区

        kernel /vmlinuz-2.6.32-431.el6.i686 ro  加载的内核 只读方式root=UUID=f89c0676-2f69-4ebc-961b-9bd951910958 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 初始化包含启动的镜像

故障(一)

MBR故障 

[root@wang ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1 模拟MBR故障

[root@wang ~]init 6  重启

linux系统启动故障恢复_操作系统_02

无法启动

需要插入安装光盘从光盘启动修复

linux系统启动故障恢复_linux_03

选择第3个 rescue install system

linux系统启动故障恢复_linux_04

选择English

linux系统启动故障恢复_操作系统_05

选择us

linux系统启动故障恢复_linux_06

选择no 不需要开启网络

linux系统启动故障恢复_操作系统_07

选择continue

linux系统启动故障恢复_操作系统_08

Ok

linux系统启动故障恢复_操作系统_09

ok

linux系统启动故障恢复_操作系统_10

选择shell start shell

linux系统启动故障恢复_操作系统_11

具体命令为

chroot  /mnt/sysp_w_picpath/ 切换到系统挂载的目录

grub-install /dev/sda   安装grub

  exit   退出  

exit   退出  

linux系统启动故障恢复_操作系统_12

然后选择reboot

故障(二)

  grub.conf错误 模拟grub错误

[root@wang ~]# ll /etc/grub.conf  /boot/grub/grub.conf 

-rw-------. 1 root root 737 Jul  9 02:41 /boot/grub/grub.conf

lrwxrwxrwx. 1 root root  22 Jul  9 02:41 /etc/grub.conf -> ../boot/grub/grub.conf

2目录的文件对应于一个文件(一个是链接文件)

[root@wang ~]# mv /boot/grub/grub.conf  /tmp 移动到其他的目录,如同删除

[root@wang ~]# init 6  重启

linux系统启动故障恢复_操作系统_13

出现这个说明第一阶段(mbr)完好,第二阶段出现问题

linux系统启动故障恢复_操作系统_14

先输入root (    按table键有提示说明

再输入 roothd0,  按table键有提示说明

分辨哪个分区可能是引导分区

linux系统启动故障恢复_linux_15

然后输入kernel 位置 在/后面输入vmtable键看是否能补齐能补齐说明前面选择的路径是对的

然后再 ro(只读模式)quiet(静默模式) root=/dev/sda2 (指定根目录)

Initrd /initable键补齐   (指定驱动位置)

  boot 试下能否启动

可以进入系统。但是如果再重启的话还是出现上面的情况,这时需要重建grub菜单

[root@wang ~]# cd /boot/grub/   

[root@wang grub]# vim grub.conf  进入grub目录,编辑grub.conf文件

linux系统启动故障恢复_linux_16

编辑为如此即可

default=0

timeout=5    菜单超时时间

splashp_w_picpath=(hd0,0)/boot/grub/splash.xpm.gz    背景界面

 title centos  标题

 root (hd0,0)   根目录

kernel /vmlinuz-2.6.32-431.el6.i686 ro quiet rhgb root=/dev/sda2  内核文件位置

initrd /initramfs-2.6.32-431.el6.i686.img  驱动文件位置

然后init 6 重启就可以成功进入

故障(三)

grub目录丢失  模拟grub目录丢失

                                          

 [root@wang ~]# cd /boot/

[root@wang boot]# mv grub /tmp  grub移动模拟丢失目录

[root@wang boot]# init 6

linux系统启动故障恢复_操作系统_17

出现这样的情况,放上系统盘进入救援模式选择从光盘启动,可以调bios光盘为第一启动项,也可以开机按f12选择(部分机器可能没有)

linux系统启动故障恢复_linux_18

选择救援模式

进入救援模式shell方式和上面一样!

linux系统启动故障恢复_linux_19

chroot /mnt/sysp_w_picpath  切换到根目录

grub-install --root-directory=/ /dev/sda   安装grub相关的目录

linux系统启动故障恢复_linux_20

然后ls  /boot 有了grub目录

linux系统启动故障恢复_操作系统_21

 grub目录下也有文件,但是少了个grub.conf

然后exit

 exit重启

linux系统启动故障恢复_linux_22

选择第四项选择从本地硬盘启动

进入

linux系统启动故障恢复_操作系统_23

然后和故障(二)的情况一样,解决方法一样 即

linux系统启动故障恢复_操作系统_24

使用livecd光盘修复

 [root@wang ~]# cd /boot/

[root@wang boot]# mv grub /tmp  grub移动模拟丢失目录

[root@wang boot]# init 6

使用livecd启动  可用usb启动,usb需要设置pe启动

linux系统启动故障恢复_操作系统_25

选择第二个进入

linux系统启动故障恢复_linux_26

选择命令行模式

linux系统启动故障恢复_操作系统_27

  su -    获取root

  fdisk -l   查看所有硬盘信息,以确定boot分区的设备目录

 linux系统启动故障恢复_linux_28

Boot分区为 /dev/sda1

mkdir  /mnt/boot

mount  /dev/sda1  /mnt/boot

  ls-l /mnt/boot   查看下挂载是否正确

Root 分区为 /dev/sda2 

 mkdir /mnt/root

mount /dev/sda2  /mnt/root

linux系统启动故障恢复_linux_29

没有grub目录

grub-install --root-directory=/mnt  /dev/sda  安装grub针对/dev/sda

linux系统启动故障恢复_操作系统_30

ls查下,已经有目录了

linux系统启动故障恢复_操作系统_31

没有grub.conf需要自己手工编辑

linux系统启动故障恢复_操作系统_32

进入grub目录下编辑grub.conf

linux系统启动故障恢复_操作系统_33

编辑为如此即可(同上)然后保存退出重启电脑即可

故障(四)

/etc/fstab 文件错误导致无法开机

   vim  /etc/fstab 

编辑这个文件

linux系统启动故障恢复_操作系统_34

随便输入东西,模拟错误

然后输入init 6 重启,系统无法启动,用livecd光盘启动修复

从本地硬盘启动时

linux系统启动故障恢复_linux_35

 

e

 

linux系统启动故障恢复_linux_36

rhgb删除,查看系统进程加载情况,以确定系统问题

linux系统启动故障恢复_操作系统_37

修改完成 按b引导进入

 

linux系统启动故障恢复_操作系统_38

发现问题

/etc/fstab 错误

livecd进入 

linux系统启动故障恢复_操作系统_39

第二个选项进入

进入命令行方法同上

linux系统启动故障恢复_linux_40

 

su -   用管理员权限

fdisk -l   显示硬盘信息判断哪个是根分区

mkdir  /mnt/root

mount  /dev/sda2 /mnt/root   挂载根分区

linux系统启动故障恢复_linux_41

编辑fstab

 

linux系统启动故障恢复_linux_42

查看文件,错误内容删除保存即可

linux系统启动故障恢复_操作系统_43

重启成功进入系统

故障(五)

Root口令丢失 

开机在5秒内按任意键进入grub菜单

linux系统启动故障恢复_操作系统_44

e

linux系统启动故障恢复_操作系统_45

选第2个再按e

linux系统启动故障恢复_操作系统_46

在后面输入或者single 进入单用户模式

linux系统启动故障恢复_linux_47

回车,再按b进行引导启动

linux系统启动故障恢复_操作系统_48

可以看出来进入了单用户模式

linux系统启动故障恢复_操作系统_49

可以使用passwd root  重新设置密码

也可以使用 passwd -d root  删除root账号

问题解决。