一.
开机只能进入grub命令行
如果是先安装了Linux,再安装了windows,则是windows将MBR分区覆盖,导致grub丢失,说明windows还在,可以利用如下命令进入windows,rootnoverify (hd0,0) chainloader +1 makeactive boot,只不过开机时还会进入grub界面,此时尝试修复grub,于是执行
1. root (hd0,1) //选择boot分区
2. kernel /vm(后面内容用tab自动补齐,显示内核版本,如果出现错误,说明第一步分区选择有误) ro root=LABEL=/
(将root=LABEL=/修改为root=/dev/mapper/VolGroup-lv_root,这个地址可以在/etc/fstab中查看到,所以要借助rescue模式,这样可以正常启动至linux,发现grub和内核并没有丢失,只不过下一次重启电脑还是无法获取引导。于是开机时,没有直接进入RedHat,而是按下e选项,进行编辑,发现第一行选择boot分区有误,将(hd0,2)改为(hd0,1),然后b选项启动,以后每一次都恢复正常(不知道如何修改的朋友可以参考下文进入单用户模式的方法))
3. initrd /initram(后面用tab补齐)
4. boot
重启过后还是出现kernel panic 错误,只好利用linux rescue模式
进入linux rescue模式后,按如下操作
1. chroot /mnt/sysimage //将原本的系统挂载到/mnt/sysimage目录下,只有这样才能操作文件系统
2. grub-install /dev/sda
2.1 提示read only file system,执行mount -o remount rw -t ext3 /,再次执行
2.2 提示no suitable drive was found in the generated device map,查看/boot/grub/device.map文件,发现没有指示grub的位置,添加(hd0) /dev/sda,发现还是不行,有可能是因为内核没有安装
进入boot目录下,发现只有grub,没有内核,表明内核丢失,只好先安装内核,由于之前/home目录下面有redhat.iso镜像,于是进 入/home/redhat.iso/Packages,执行rpm -ivh --force kernel-(用tab补齐,表示内核版本).rpm,结果出现grubby fatal error:unable to find a suitable template,于是删除/boot/grub/grub.conf和/etc/grub.conf文件,再次安装内核,成功
2.3 再次执行grub-install /dev/sda,再次出错/dev/sda not found a block device
于是
mkdir /media/sda
mount /dev/sda /media/sda
grub-install --root-directory=/media/sda /dev/sda
二.
知识点补充:
1.
/boot/grub/device.map文件,用于记录grub所安装的位置,(hd0) /dev/sda,hd0表示第一块硬盘,/dev/sda表示整个硬盘,用/dev/sda1表示硬盘的第一个分区,(hd0,0)和/dev/sda1对应.
2.
sda表示sata接口的硬盘,而hda表示ide接口的硬盘
3.grub.conf文件介绍
default=0 //表示该系统为第一启动项
timeout=5 //启动延时时间为5s
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-279.el6.i686 ro(内核权限为只读) root=LABEL=/(LABEL=/,用于指定/分区的卷标,如果不这样指定,也可以写成root=/dev/sda2,即/dev/sda2为根目录所在) rhgb(redhat graphics boot,用图片来代替启动过程中显示的文本信息) quiet(启动过程中显示某些重要信息,像硬件自检的信息等不会显示)
initrd /boot/initramfs-2.6.32-279.el6.i686.img //initrd全名为boot loader initialized ram disk,在内核初始化时加载,用于连接根文件系统
4.
/etc/grub.conf 和/boot/grub/menu.lst都是/boot/grub/grub.conf的连接文件
5.进入单用户模式
开机时按e键,修改Kernel开机设置参数,选择kernel那一列,按e修改,在末尾空一格,加上single,然后按enter保存,按b进入单用户模式。单用户模式可用于解决图形界面出现问题时,无法正常进入系统的情况
为了解决这个问题,查阅了不少文章,这是其中两篇,剩下的就不一一列出了