首页 > 代码库 > linux系统启动故障恢复

linux系统启动故障恢复

Linux系统启动过程:

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

用图示说明:

wKiom1RORxii_R-jAALRWq3VOtY953.jpg

先了解下grub.conf

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

default=0    

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

splashimage=(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  重启

wKioL1ROR3rRbxLMAAD39IhXrtg333.jpg

无法启动

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

wKioL1ROR4eBZpQwAAGwgVQrdpc245.jpg

选择第3个 rescue install system

wKioL1ROR5uySI-SAADwyG3uzuw836.jpg

选择English

wKiom1ROR12jxoB1AACofSdExn0935.jpg

选择us

wKioL1ROR7-T4WU9AACmPaUtwSg138.jpg

选择no 不需要开启网络

wKiom1ROR3bjNr20AAH2UX2N5ZI737.jpg

选择continue

wKiom1ROR3-gx-TMAAEWKSI3gBQ884.jpg

Ok

wKioL1ROR92RhXZdAAByz0yN1rI300.jpg

ok

wKiom1ROR5KTHJoCAACmlXo1agg779.jpg

选择shell start shell

wKioL1ROR_HRSmwPAAGUjMN1T-k626.jpg

具体命令为

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

grub-install /dev/sda   安装grub

  exit   退出  

exit   退出  

wKiom1ROR6bAyWAwAACL8Y5QL60662.jpg

然后选择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  重启

wKioL1ROSAiAWiYyAAC2jp8vSmw199.jpg

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

wKiom1ROR7-BTigRAADxbA7kcTk208.jpg

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

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

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

wKioL1ROSByz3p_UAAEcGul_Lbk214.jpg

然后输入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文件

wKiom1ROR9GD-PAIAAChlxjtPck094.jpg

编辑为如此即可

default=0

timeout=5    菜单超时时间

splashimage=(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

wKiom1ROR-DD1iATAAAwexXMRLQ638.jpg

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

wKiom1ROSHKzA1tjAAGwgVQrdpc110.jpg

选择救援模式

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

wKioL1ROST3yx1QyAAD5TREGHe4866.jpg

chroot /mnt/sysimage  切换到根目录

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

wKiom1ROSPLgkm-YAAGKY7CQc-U291.jpg

然后ls  /boot 有了grub目录

wKioL1ROSVKBWV4aAADYZRVV4Qg022.jpg

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

然后exit

 exit重启

wKiom1ROSQuCTMCuAAGvRUUYJzY436.jpg

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

进入

wKiom1ROSRazwruLAADRA7pcMII469.jpg

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

wKioL1ROSXajiA_-AAEG91asBUU488.jpg

使用livecd光盘修复

 [root@wang ~]# cd /boot/

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

[root@wang boot]# init 6

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

wKioL1ROSYCAMBQtAAM3R3MnEoY524.jpg

选择第二个进入

wKiom1ROSTryuD1ZAAFe8-fmvzU418.jpg

选择命令行模式

wKioL1ROSZ6Ao0TlAACi62qH3L8423.jpg

  su -    获取root

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

 wKiom1ROSZ_AsObxAAC4dubkJpE348.jpg

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

wKioL1ROSm-yZs5_AACW7tcVGcQ332.jpg

没有grub目录

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

wKiom1ROSjbQIfK0AADxAiHlOAQ880.jpg

ls查下,已经有目录了

wKiom1ROSkrBn1i6AADFsNiwcrw970.jpg

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

wKiom1ROSlrQkPXhAABLv5HMOLQ904.jpg

进入grub目录下编辑grub.conf

wKioL1ROSviSAMXLAADRPZv7-vk822.jpg

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

故障(四)

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

   vim  /etc/fstab 

编辑这个文件

wKiom1ROSrCyxhmFAAJhAvPAcDM894.jpg

随便输入东西,模拟错误

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

从本地硬盘启动时

wKioL1ROSw2jwcD1AAFMiPH1noM554.jpg

 

e

 

wKiom1ROSsPxNm3CAAGCxpdw-HA234.jpg

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

wKioL1ROSyLDGiIKAAGYbCoeNWA523.jpg

修改完成 按b引导进入

 

wKioL1ROSyuQs1EeAACWeMB8KdQ978.jpg

发现问题

/etc/fstab 错误

livecd进入 

wKioL1ROSzbhLcoMAAM3R3MnEoY783.jpg

第二个选项进入

进入命令行方法同上

wKioL1ROS5nRB3OCAADXaLAuX5Y645.jpg

 

su -   用管理员权限

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

mkdir  /mnt/root

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

wKioL1ROS7yg_lvnAADP8J0G2VI629.jpg

编辑fstab

 

wKiom1ROS3HghVnNAAJdtk-uw7A705.jpg

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

wKiom1ROS3_QiSjQAAJB7HLP0yE472.jpg

重启成功进入系统

故障(五)

Root口令丢失 

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

wKioL1ROS97jk4ABAAExU_Mg13s452.jpg

e

wKiom1ROS5WioQynAAG2Pe4ZWsE343.jpg

选第2个再按e

wKiom1ROS6SyZ6alAAEXVr6cfpc098.jpg

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

wKioL1ROTAXh0WL-AAEjb2_Vzfk708.jpg

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

wKiom1ROS7qzL5irAACJMr6dqw4225.jpg

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

wKiom1ROS8jgi7WEAACUOuEACUw400.jpg

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

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

问题解决。


本文出自 “你猜我是谁” 博客,请务必保留此出处http://whhhj.blog.51cto.com/9289395/1568613

linux系统启动故障恢复