本文出自 “阳光☆奋进” 博客,请务必保留此出处http://ucweb.blog.51cto.com/4042188/978666
linux 启动故障分析
当Linux启动不了我们应该怎么办
不管是新人还是老手,在学习和项目中都会遇到一些问题,对于新人来讲,一直在学习命令,学习搭建服务器,学习各种维护和新建的方法,可以有没有想过,上述都是建立在机器正常开机,系统正常启动的前提下,那系统都启动不了了,怎么办,这一篇博文,我们就来讨论一下关于linux系统不能正常启动的几种常见的排错方法.
第一种:mbr和grub文件丢失或损坏
这一种是最容易解决也最容易遇到的,我们就先从简单的来吧
我们模拟grub丢失
Rm�Crf /boot/grub/grub.conf,我们已经删除了,那么我们下次重启就启动不了了
下图就是我们重启后的画面,我了个去,起不来了吧
下图是我们在这个界面中可用的命令
首先,我们的告诉计算机,我们的”根”在哪里,以谁的身份访问,就想当于windows世界的c盘在哪里一样
我们输入root (hd0,0),这样,我们告诉了计算机,在硬盘的第一个硬盘的第一个分区,并以root身份来访问
这里指定了我们的身份和位置,有人可能会问,我哪里知道我应该写hd多少啊,我了个去,其实如果你勤快,你可以root (hd0,1)\root (hd0,2)去试
我们输入错root (hd..)后,kernel /boot是没有的,只有你输入对后对有,这也能试出来,不过不推荐
言归正转,现在又分两种情况,一种是手动分的区,那kernel后加的可能就是kernel /boot/vm…
下图中就是手动分的区,这里我们就跟上/boot
还有一种就是lvm,单独分出来的/boot区,笔者就是这样做的
Root (hd0,0)完了之后,我们要告诉计算机内核在哪里
我们用kernel /vm……. Ro root=LABEL=boot来告诉计算机内核在哪里,以什么方式访问,label是什么
这里我们指定系统的内存镜像在哪里,这里包含了各种驱动,要指定的啊,注意下图,initramfs….这里,你们的应该是initrd开头的,如果不是lvm,你们的也应该是initrd /boot/initrd….
如下图中最后一个命令,我们就可以启动了,输入boot后,我们就能看到一排排的英文往上走,直到成功启动,中间在selinux重建期间可能需要重启,起来后我们再从root (hd0,0)开始,直接再次boot
下图就是重建selinux,完成后还会重启的,进入grub,我们再来一次就好了,这一次就没有重建selinux的过程了,直接进系统
还有一种情况,就是我们整个/boot下的东西都让人干掉了,我们来模拟一下吧
现在我们模拟/boot下所有文件被删除
首先,我们把光盘放进去,然后我们启动救援模式,第三个就是了
过程中我们选语言、键盘布局等,到这个界面,我们不需要网络,选NO
我们这里直接继续
按OK,它提示说我们的系统被挂到了/mnt/sysimage,我们可以chroot /mnt/sysimage来进行我们的系统
这里直接就shell,按OK
看,下图就是进来的界面
现在我们用chroot /mnt/sysimage,进入我们的系统环境,然后我们挂一下我们的光盘,然后强制安装一下kernel-2….这个包,这个过程会生成我们的/boot下的文件,下图我们也用ls /boot验证了
大家注意上图,/boot里没有grub文件夹,意味着我们还是启动不了,我们再用grub-install /dev/sda命令来安装一下grub
如果现在重启,就会进行grub那个界面,故障现象就是我们模拟的第一种,我们写输入root (hd9,0),显然,这不是我们想要的,每次启动都输入,那不是要疯了,所以我们手动建立一下,如下图
内容如下图
我们来解释一下
Default=0就是说默认引导我们的第一个系统,如果有多个系统,那这就有大用处了
Timeout=3就是默认超时时间,如果3秒内没有动,那就执行第一个系统
Hiddenmenu是说隐藏我们的菜单
Title 这个只是个系统描述
Root…后面这几行大家参考第一种现象的解释
写完我们保存一下,然后一直输入exit,直接出现下图,我们选 reboot,这个时候机器会重启
看,这就是隐藏菜单的效果,如果这个时候没有动,就默认启动了第一个系统,如果动了就会显示菜单
下图就是动了后的界面
我们回车,就会出现下图,就没有grub>这个小黑屏了,因为我们已经手动写了grub.conf,同样,有个selinux重建的过程
今天先写到这里,有点事,后面我会跟进写下面两种,请关注
1、恢复丢失的/etc/inittab文件
2、/etc/fstab文件被改名或丢失
3、更多