修复GRUB恢复系统引导菜单解决方案(ML2.0篇)
周末想玩游戏《无冬之夜》,因电脑上只装有Magic Linux 2.0正式版(简写为ML),于是加装Windows XP以供游戏之用。结果,开机后GRUB系统引导菜单丢失,只能进入XP。哭呀,所有的工作资料都在Magic Linux上,真累了。上网查资料,看帖子,这方面的讨论不少,但最终都不了了之了。怒了,晚上奋战4小时,无数次重启失败后,OK了。现将方案整理如下,以飨网友:修复环境::
1.Magic Linux 2.0正式版/Windows XP。
2.GRUB默认安装于Linux的MBR.
3.一块硬盘,分区如下(可通过ML2.0安装盘安装系统,在选择安装位置处查看):
分区 格式 类型 标志
/dev/hda1 ext3 P 原ML安装位置
/dev/hda2 N/A E L
/dev/hda5 swap L
/dev/hda6 fat32 L
/dev/hda3 fat32 P BL 对应XP中的C盘
思路:
1. 用ML安装盘从光驱启动,加载原ML安装分区。
2. 用chroot命令将根从光盘目录转换到ML安装目录。
3. 重装GRUB
4. 编辑/boot/grub/grub.conf文件内容,设置正确参数,恢复GRUB引导。
步骤如下::
1. 重启电脑,按DEL键进入BIOS设置,更改为从光驱启动。
2. 用ML安装盘引导启动,进入ML安装界面,共有三种选项:A按回车安装系统B输入magic rescue进入紧急救助模式 C 输入magic test进入调试模式。此处进入紧急救助模式:输入magic rescue后回车
3. 数据加载后,进入提示符,依次输入以下命令(#后为解释内容):
第一阶段:加载原ML安装区::
cd /tmpfs #进入/tmpfs目录
mkdir disk #创建disk目录
mount /dev/hda1 /tmpfs/disk
#挂载原ML安装分区至/tmpfs/disk目录
#用/dev/hdaX表示原ML所在安装分区,我的是在hda1上,如果在其它分区将X替换为相应的值,如hda2,hda3,……
#如果是SCSI/SATA硬盘或者部分USB移动硬盘,将hdaX更改为sdaX,即:mount /dev/sdaX /tmpfs/disk,根据分区将X替换为相应的数值
chroot /tmpfs/disk
#用chroot命令将根转换到/tmpfs/disk, 以便重装GRUB至原安装区并进入/boot/grub分区更改grub配置文件
第二阶段:重建GRUB::
grub
#进入grub安装界面,提示符由sh#变为grub>
root (hd0,0)
#确认grub的安装分区。Root和括号间有空格。
#用(hdx,y)来说明:x指硬盘的数量,y指原ML所在的分区数减一。如果只有一块硬盘x为0,两块硬盘,第一块为0,第二块为1,多块硬盘,依此类推。如果原安装区在/dev/hda1则y为1-1=0;如果原安装区在/dev/hda2,则y为2-1=1;依此类推。我的原安装区在/dev/hda1,故此处输入root (hd0,0).
#详细参考资料可学习北南南北兄的文章,“在Linux系统中存储设备的两种表示方法”http://www.linuxsir.org/main/?q=node/127。
setup (hd0)
#重建grub,hdX参照上面说明,我的是hd0
quit
#一段提示后,见到succeeded后,输入quit退出grub,提示符返回sh#
第三阶段:修改/boot/grub/grub.conf, 校对参数::
cd /boot/grub #进入配置文件所在目录
vi grub.conf
#此处会出现提示,说有/boot/grub/grub.conf.swap与grub.conf关联,不用管它,直接按任意键进入grub.conf文件内容修改。
#简单介绍vi操作:A按键盘上的Insert键,进入插入模式 B输入 :w前面是冒号,用于保存退出 C输入:q直接退出不保存。D用箭头键移动,用delete键删除内容。
#根据上面提到的内容,将其中的root(hdx,y)和/dev/hdax等所有错误的数值更改为正确的内容。以我的分区格式为例,原有的错误内容为root(hd0,1)和/dev/hda2,将所有的更换为root(hd0,0)和/dev/hda1.代码分析举例如下:
default=0 #0指默认从window启动,1从ML启动,取决于系统名称菜单的先后位置
timeout=10 #选择等待时间为10秒
splashimage=(hd0,0)/boot/grub/bootsplash.xpm.gz
#指定启动画面位置。原有错误为(hd0,1)更改为(hd0,0),因为我的ML在/dev/hda1分区。
title Windows #显示的菜单标题,可改为你想要的内容
rootnoverify (hd0,2)
#rootnoverify作用等同于root。因我的XP装在/dev/hda3且只有一块硬盘,据上文分析,正确的应为(hd0,2).原错误内容为(hd0,1)
chainloader +1
#用chainloader命令将启动控制权交给window的启动器,调用XP启动程序
title MagicLinux
root (hd0,0)#更改同上
kernel /boot/vmlinuz-2.6.15.3ro root=/dev/hda1 vga=791 splash=silent
#此处的root=/dev/had1原错误的为/dev/had2
initrd /boot/initrd-2.6.15.3.img
后面的内容同理,不再赘述。
修改完毕后,输入:w 保存后退出。
exit #退出chroot
exit #退出linux rescue
reboot #重启电脑,修改BIOS,更改为从硬盘启动。
至此,GRUB修复成功,成功进入系统。
后续问题:
进ML后window分区不能随开机自动加载,但可以用mount命令加载。记得有个解决办法,有空再查一下。 :mrgreen: 写得很详细。。。up 个人更建议使用grub for dos :roll:
grub for dos 这个办法已经老了。现在大家基本不需要 dos 了。
我连 dos 启动盘都没有了。 :roll:
grub for dos 这个办法已经老了。现在大家基本不需要 dos 了。
我连 dos 启动盘都没有了。
grub for dos 基本上都是包含grub for nt的!
我下载过的好多个grub for dos 都包含! 其实最简单的方法就是用wingrub,好像是rh做的一个grub for dos的windows gui。
把这个安装了之后,向mbr写入grub,重启,就能看到原来linux的grub菜单。
启动到linux,再安装一遍grub,菜单就重建好了,windows下的都可以删除了。
我的机子就是这样作的,很方便,不用重新配置grub.conf。 :roll:
grub for dos 这个办法已经老了。现在大家基本不需要 dos 了。
我连 dos 启动盘都没有了。
taotao我们用的不止有dos还有windows 顶!
作个记号先! 非常感谢,我正需要这样的好文章!! 如果重装xp丢失了启动菜单,或者在安装linux的时候,没有把 GRUB装到MBR导致不能引导linux的,可按照如下方法。
下载grldr文件放到C盘根目录下,再编辑boot.ini文件在最后加入一行:
C:grldr="Start Linux"
启动时从菜单中选择"Start Linux"条目就可以进入你的Linux了。我想,写成Redflag也应该可以吧。
除了这种方法,还有一种就是重装,方法是先装windows,然后务份,再装红旗。这样,win在恢复的时候,就不会把引导菜单替代了。
====================
最简单的方法,或者是你新装个Suse也行,呵呵。 如果重装xp丢失了启动菜单,或者在安装linux的时候,没有把 GRUB装到MBR导致不能引导linux的,可按照如下方法。
下载grldr文件放到C盘根目录下,再编辑boot.ini文件在最后加入一行:
C:grldr="Start Linux"
启动时从菜单中选择"Start Linux"条目就可以进入你的Linux了。我想,写成Redflag也应该可以吧。
除了这种方法,还有一种就是重装,方法是先装windows,然后务份,再装红旗。这样,win在恢复的时候,就不会把引导菜单替代了。
====================
最简单的方法,或者是你新装个Suse也行,呵呵。
1.grldr文件是什么文件?从哪下载?MagicLinux和红旗是有区别的。
2.红旗安装盘记得好像有GRUB恢复功能吧?MagicLinux安装盘没有GRUB恢复功能,与其花半个小时重装,不如按上面方法花5分钟改一下数值,不用破坏原有资料数据,省时省力一些。不用多装一些临时性软件,更环保一些,呵呵 好文!
如果win下面的分区都是ntfs也能这样修复吗? 可以 :P 其实最简单的方法就是用wingrub,好像是rh做的一个grub for dos的windows gui。
把这个安装了之后,向mbr写入grub,重启,就能看到原来linux的grub菜单。
启动到linux,再安装一遍grub,菜单就重建好了,windows下的都可以删除了。
我的机子就是这样作的,很方便,不用重新配置grub.conf。
那这位老大的方法是否也一样可行呢?
呵呵 grub-install /dev/hda就可以了,不必用grub
页:
[1]
2