简单的启动排错

一、出现 grub> 字样,等待交互式输入指令,说明MBRBootloaderstage1、stage1_5、stage2都正常,但丢失了/boot/grub.conf 文件,所以无法加载启动项菜单,就无法读取默认启动的kernel、initrd等文件路径。

解决办法:无需救援模式,直接在此交互式界面指定相关文件的加载路径。

(1) grub> root  (hd0,0)         #指定/boot的根目录,若/boot为独立分区则以(hd#,#)格式给出分区,若与操作系统的根在同一分区则为 (hd#,#)/

(2) grub> kernel  /vmlinuz-xxx.el6.x86_64  root=/dev/{sda2|/mapper/VolGroup…}   selinux=0       #指定kernel的位置,及真正的根目录所挂载的分区,注意逻辑卷。取消安全标签

(3) grub> initrd  /initramfs-xxx.el6.x86_64.img     #指定ramdisk文件所在位置,挂载临时根文件系统,安装相关驱动。

(4) grub> reboot  

二、

计算机生成了可选文字: fd1ledtDI'edd Pressan夕ke夕 IHdge tDentertheHenU BootingCent0S6(2.6.32一642.el6.x86_64)in日seconds.。.

最终停止在上图画面,并且也可以正常进入启动项菜单,说明MBRgurb文件等都没问题,紧接着便是加载kernelinitrd。因此很有可能是initrd文件有问题了。

计算机生成了可选文字: 6HU6RUB VerSion8.97 (635R10只er/1日4640日RuPper州e州or夕) rDDt(hds.8) kernel initI'd /u"1inuz一2.6.32一642.el6.x8664 root二/dev/"dpper/VoIGroup一lu+ 0一。 r一d二 一6 itrd曰fs一2.6.32一642.el6.X86 Usethe个and杏ke夕5toselect只hichentr夕 Press'b'toboot,'e'toedittheselected bootsequence,'c'foraco曰曰and一1ine,'o' dfter('D'forbefore)theselectedline, selected1ine,orescaPetoqobdcktothe 15highlighted. CDHHdndinthe toopendne" d'tore曰ove Hd1nHenU。 1ine the

解决上述问题:需要进入救援模式。

当原根文件系统可以正常挂载。

(1) chroot  /mnt/sysimage          #切换到原根文件系统

(2) mkinitrd  /initramfs-uname  -r.img   uname  -r     #用命令生成initrd文件,后边的版本号必须与原有的内核版本号相同。

(3) exit

(4) reboot

若出现以下画面则说明是内核文件找不到了。

计算机生成了可选文字: ErrDI'15 nDtfDUnd Pressdn夕 F1le ke夕 toCDntinUe二

解决kernel损坏问题:进入救援模式

(1) chroot  /mnt/sysimage     

(2) mount  /dev/sr0  /mnt/cdrom

(3) rpm  -ivh  /mnt/cdrom/Package/kernel-VERSION-RELEASE  –force    #重新从光盘安装kernel,避免因残留文件存在而无法安装,直接使用–force选项强制安装。

(4) exit

(5) reboot

三、无法进入Bootloader,表现为没有安装操作系统之前的画面时,极有可能是MBR中的grub数据损坏或者是/boot/grub/下的各相关文件丢失,进入救援模式重新装载grub即可,重新装载的过程中也会生成所需相关文件。但 /boot/grub/grub.conf 文件需要手动配置。

救援模式下安装grub

(1)切换根目录为真正的操作系统的根目录

 chroot  /mnt/sysimage

(2) grub-install  –root-directory=/    /dev/sda

(3) exit

(4) reboot

### –root-directory=/代表的是指明boot父目录,由于安装grub程序到磁盘的mbr中去的同时还要复制grub的相关配置文件到boot目录中去,此时只需要给出boot的父目录,因为他会在所给出的目录下边去寻找一个叫boot的目录。(用于自制linux系统)

/dev/DISK代表要往那个磁盘的MBR上安装grub。即引导启动的硬盘设备。

四、以上问题修复时,若进入救援模式后发现未识别到原有根文件系统,很有可能是/etc/fstab文件出了问题,导致原有根文件系统无法自动挂载,此时就要先手动挂载,然后恢复/etc/fstab文件。

1、原根文件系统属于正常分区,并未使用逻辑卷时

(1)光盘进救援模式

(2)  / 

]# blkid

]# mount  /dev/sdaN   /mnt/root    #手动挂载成功后不要随意切换到原有根文件系统,切换后所有命令就不能用了

]# vim  /mnt/root/etc/fstab    #编辑该文件,例如以下两行内容

     /dev/sda1  /boot  defaults  0  0

    /dev/sda2   /  defaults  0  0

]#  reboot

(3)必须重新启动进入救援模式,让系统自动识别挂载原有根文件系统。

然后针对以上问题进行各自所需的修复操作。

2、原根文件系统挂载在逻辑卷上时。

(1)光盘进救援模式

(2)

]# blkid

]# lvs

]# vgchange  -ay      #逻辑卷并不能被正常识别,此时需要使用此命令识别逻辑卷

]# lvs

]# mount  /dev/mapper/lv_root  /mnt/sysimage   #挂载逻辑卷

 

]# vim  /mnt/root/etc/fstab

/dev/sda1  /boot  ext4  defaults   0  0

/dev/vg0/lv_root  /  ext4  defaults   0  0

/usr/xxx  /mount  ext4  defaults  0  0

/var/xxx  /mount  ext4  defaults  0  0

(3)必须重新启动进入救援模式,让系统自动识别挂载原有根文件系统。

然后针对以上问题进行各自所需的修复操作。

五、grub引导成功,启动菜单也没问题,kernel加载成功,出现以下现象说明用户空间的第一个程序init初始化失败。

若启动界面默认显示详细启动过程的最终会显示以下结果。esc可显示详细启动过程。

计算机生成了可选文字: sdZ:日:日:日:[sda]Assumingdriue sdZ:日:日:日:[sda]Assumingdrive sdZ:日:日:日:[sd已]Assumingdriue sh:cannotsettermindlProcess sh:nojobcontro1inthisshell sh一4.1林sh一4.1林sh一4.1林sh一4.1林 cache:姗itethrough cache:姗itethrough CdChe:泌itethrough grouP(一1):InaPProPriateioctlfordevice Sh一4.1林Sh一4.1林Sh一4.1林Sh一4.1林

默认启动时不显示详细工程,而是centos动态图像时会一直显示“圆球”。转的根本停不下来。

计算机生成了可选文字: CntOS、 夕 、胜IJ 产一. \_--' CommunitgENT〔rpris〔Op〔ratingSgst〔m

解决方法:进入光盘救援模式。想办法恢复 /sbin/init 这个文件。此文件是一个二进制文件,可以考虑从别的系统上拷贝一份过来,注意版本问题。

 

总结:引起启动失败的问题:

1grub

MBRgrub损坏、grub相关文件丢失

2kernel或者initrd文件加载失败

3/sbin/init初始化失败

 

原创文章,作者:Hulk,如若转载,请注明出处:http://www.178linux.com/60798

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code