简单的启动排错

一、出现 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

(1)
上一篇 2016-11-26 16:03
下一篇 2016-11-26 21:02

相关推荐

  • 细说CP使用

    cp详细用法和常用选项

    Linux干货 2017-11-26
  • 一次简单的内核编译(二)

      前言:     此次编译是继一次简单的内核编译(一)进行操作编译的,请先查看第一篇再来看此片文章 一、使用busybox代替自己制作的init脚本,实现内核启动;  1、在这里我们使用静态编译busybox,所以需要先安装glibc-static依赖包,如果不安装会报错     2、解…

    Linux干货 2015-06-01
  • 马哥教育网络班22期+第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。     [root@director2 ~]# cp -a /etc/skel /home/tuser1   &n…

    Linux干货 2016-08-29
  • nginx rewrite实战

    nginx rewrite实战 nginx rewrite实战 nginx rewrite实战 nginx rewrite 正则表达式匹配 多目录转成参数 目录对换 目录自动加“/” ,这个功能一般浏览器自动完成 禁止htaccess 禁止多个目录 禁止以/data开头的文件,可以禁止/data/下多级目录下.log.txt等请求 禁止单个文件 给favic…

    Linux干货 2016-11-17
  • 马哥教育网络19期+第五周练习博客

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;   grep "^[[:space:]]\+.*" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; &n…

    Linux干货 2016-06-19
  • 集中练习1-10个Linux运维脚本

    用户管理、文本处理、文件管理相关

    2017-09-20