恢复Linux操作系统的GRUB引导程序
本文使用的示例版本为MagicLinux 1.2 final.重装Windows等等误操作常常导致安装到MBR的GRUB引导程序无法再引导系统,也就最终导致了无法进入Linux系统.关于这个问题的解决办法在网上有多种,但经笔者测试都行不通,最终结合网上多篇文章,在ML1.2的grub被WinXP覆盖后成功的恢复了,写下偶的实验经历,共勉. 笔者的ML1.2安装在/dev/hda11,对应grub下的位置为(hd0,10),注意使用/dev/hdax的方式表示的分区号都是从1开始的,到了grub下时需要减去1来表示.grub安装在MBR,在安装WinXP后导致无法进入linux.本文虽然使用ML1.2做例子,但是对版本较新的grub具有通用性.MagicLinux 1.2 final使用的grub版本为0.95. 先使用一张修复盘进入grub,或者利用其他linux恢复盘等等进入linux系统,然后进入grub控制台.总之就是想尽办法进入一个控制台就是了.然后准备引导进入硬盘上的Linux系统.如下: grub> root (hd0,10) grub> kernel /boot/vmlinuz-2.6.9 init 5 ro root=/dev/hda11 grub> initrd /boot/initrd-2.6.9.img grub> boot 如上是利用修复盘进入grub后的修复方法,至于自己可以进入其他的控制台修复方法暂时略.如上的过程就可以进入硬盘上的linux系统短信大全了.然后开始修复过程. # grub grub> root (hd0,10) grub> setup (hd0) grub> quit # grub-install hd0 如山的步骤将会把grub安装到MBR,任何一个步骤都不可以缺少.如果缺少grub-install步骤则会安装grub到MBR,但是不会显示系统菜单. 另外,对于MagicLinux1.2final会在一步提示找不到grub.这是grub-install是一个shell脚本,使用绝对路径寻找grub程序.默认的寻找grub路径为/usr/sbin/grub,可是对ML1.2则是在/sbin/grub.只要执行如下语句,复制一下即可: # cp /sbin/grub /usr/sbin/grub 这样就可以正确的恢复grub到MBR了. 本文没有直接写出使用光盘上的控制台生日短信修复grub的原因是很多光盘发行版带有的/dev/hdax的数目很小,我手里的一个最大到/dev/hda8,这样根本无法访问/dev/hda11,只好放弃.另外即便是光盘发行版也是需要使用grub引导的,在它引导的时候按下"C"键即可进入grub控制台,输入命令来进入硬盘上的Linux. 拥有帝国一切,皆有可能。欢迎访问phome.net ,推荐还是备份一下做好的MBR,在linux下使用如下命令: # dd if=/dev/hda of=/root/linux.bin bs=512 count=1 这里注意使用if=/dev/hda是备份MBR中的数据,如果grub安装在具体的某个分区,则要自己选择了.备份之后的linux.bin文件可以复制到Windows下,备份一份,另一份复制到C盘根目录下.然后修改boot.ini文件,添加如下一行: C:\linux.bin="Linux" 这样就可以利用Windows的NT loader来引导linux系统了.以后恢复和修理linux会更加方便. 拥有帝国一切,皆有可能。欢迎访问phome.net |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |