1.正常的grub.conf文件内容
[root@localhost grub]# cat grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=6
splashimage=(hd0,0)/grub/linux2.xpm.gz
#hiddenmenu
title liwei's Linux
root (hd0,0)
kernel /vmlinuz-2.6.32-358.el6.i686 ro root=UUID=eafb2027-525e-4a4d-8df7-f7123a9fe637 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
rhgb quiet
initrd /initramfs-2.6.32-358.el6.i686.img
一些配置:
[root@localhost grub]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 18G 6.0G 11G 36% /
tmpfs tmpfs 504M 72K 504M 1% /dev/shm
/dev/sda1 ext4 291M 32M 245M 12% /boot
这里我事先把root所在的设备的卷标号设置了一下,以后要用到
[root@localhost grub]# e2label /dev/sda2 /
[root@localhost grub]# blkid /dev/sda2
/dev/sda2: LABEL="/" UUID="eafb2027-525e-4a4d-8df7-f7123a9fe637" TYPE="ext4"
2.模拟grub.conf 文件丢失(事先备份一下)
[root@localhost grub]# ll | grep grub.conf
-rw------- 1 root root 749 Jul 25 06:32 grub.conf
lrwxrwxrwx. 1 root root 11 Mar 14 06:55 menu.lst -> ./grub.conf
[root@localhost grub]# cp grub.conf /root/
[root@localhost grub]# rm grub.conf
rm: remove regular file `grub.conf'? y
[root@localhost grub]# ll | grep grub.conf
lrwxrwxrwx. 1 root root 11 Mar 14 06:55 menu.lst ->
./grub.conf #这里是闪烁的,说明文件已经没了
3.关机重启后开始进行文件恢复
文件恢复时,下面的操作都是临时写入内存的,不会保存到grub.conf文件中,而且此时开机后不会进入系统,只有grub>界面
(1)首先要知道包括内核等引导文件所在分区的位置,可以通过输入root ()然后按下TAB键,它会告诉你大概在哪(我的大概是在hd0,hd1和,hd2)中,然后输入root(hd0,)再按TAB键会显示hd0下可用的项(0x82是swap分区,可以不试了,不过一般都在hd0,0中),回车键确认出现途中所示即可;

(2)第一步完成后,输入kernel /vmlinuz-按下TAB键,如果出现内核信息就说明第一步对了,如果什么也没出现就重启接着第一步的内容试,直到出现为止。完整的输入是kernel /vmlinuz-2.6.32-358.el6.i686 ro root=LABEL=/ rhgb quiet
这里:
ro --- 只读
rhgb --- redhat graphics boot 就是会看到图片来代替启动过程中显示的文本信息,这些信息在启动后dmesg也可以看到。
quiet --- 表示在启动过程中只有重要信息显示,类似硬件自检的消息不显示
而且root后要跟上根分区文件所在位置,我用的是卷标,网上也有人试了/dev/sda2不过我试了不行,所以只好用卷标LABEL了,当然也可以用UUID号,出现图示内容即可;

(3)完成上述两步后输入initrd /init按下TAB键出现图示内容即可

(4)最后都无误后输入boot让系统重启,然后即可进入系统了,如果出现图示内容,说明出错误了,需要重新做;


(5)进入系统后在/boot/grub目录中可以新建一个grub.conf文件(注意文件格式),也可以拿别人的grub.conf文件来改一下放到这个目录都行;
这样问题就解决了
阅读(1277) | 评论(0) | 转发(0) |