一、出现 grub> 字样,等待交互式输入指令,说明MBR中Bootloader的stage1、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
二、
最终停止在上图画面,并且也可以正常进入启动项菜单,说明MBR、gurb文件等都没问题,紧接着便是加载kernel和initrd。因此很有可能是initrd文件有问题了。
解决上述问题:需要进入救援模式。
当原根文件系统可以正常挂载。
(1) chroot /mnt/sysimage #切换到原根文件系统
(2) mkinitrd /initramfs-`uname -r`.img `uname -r` #用命令生成initrd文件,后边的版本号必须与原有的内核版本号相同。
(3) exit
(4) reboot
若出现以下画面则说明是内核文件找不到了。
解决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可显示详细启动过程。
默认启动时不显示详细工程,而是centos动态图像时会一直显示“圆球”。转的根本停不下来。
解决方法:进入光盘救援模式。想办法恢复 /sbin/init 这个文件。此文件是一个二进制文件,可以考虑从别的系统上拷贝一份过来,注意版本问题。
总结:引起启动失败的问题:
1、grub
MBR中grub损坏、grub相关文件丢失
2、kernel或者initrd文件加载失败
3、/sbin/init初始化失败
原创文章,作者:Hulk,如若转载,请注明出处:http://www.178linux.com/60798