目前绝大部分电脑默认安装的均为windows操作系统,在我们或是工作或者学习需要的时候,需要再机器上再安装一个或者linux系统,这时后安装的linux一般都会重写主硬盘的MBR,这时我们系统启动引导权就交给了linux,这时如果我们不小心删除了linux分区,那么造成的严重后果就是系统无法进入,会卡在启动引导界面上,一般是GNU GRUB的stage 1.5的时候,这个时候大家要么是重新安装linux,要么是使用live cd或者windows引导盘来重建MBR,来恢复默认的系统启动。

      那么有没有方法可以在我们删除linux分区后,系统依然可以正常启动呢?答案是肯定的,在这里我就简要的介绍一下一用GRUB4Dos来完成多系统的独立引导。

      在介绍这个工具的使用之前,我觉得先说一下一台IBM PC兼容机的大概引导流程,首先我们按下了Power ON按钮,BIOS上电->硬件自检->Load MBR->Read DPT(硬盘分区表,查找活动分区,即可引导分区)->boot loader->chain loading-> volume boot record->Start OS.

      为什么删除linux分区之后,windows会不能启动了呢?原因在于安装linux之后,其重写了MBR,当删除linux系统再次开机的时候,GNU GRUB的引导分为3个阶段,Stage 1:由于MBR的大小限制(446bytes+2bytes+64bytes),它做的工作就是装载stage1.5,stage 1.5(在分区表到第一个分区之间的30KB):它包括了识别文件系统的代码,装载成功之后,直接加载stage 2,到目前为止,大家可能想我删除了linux分区,在前两个步骤没有影响啊,是的,问题就出在stage 2,stage2安装在哪?对,你猜的是正确的,它就安装在linux的分区之内,它包括一些必要的模块和配置文件(比如:这块硬盘安装了几个系统,我默认需要启动哪个)。所以,你的系统不能启动了。

       那么为什么Grub4DOS就可以在删除linux下依旧可以正确的引导系统呢?Grub4DOS其实是一个GNU GRUB的增强版,它不像GRUB那样依赖3个引导阶段,它提供了一种更好的解决方案。Grub4DOS将GNU GRUB的功能集中到了一个名为grldr的文件中,而启动引导程序就放在了一个名为grldr.mbr的文件中,这个文件被安装在硬盘的MBR上,当系统启动时,它会搜索所有分区的根目录,加载第一个找到的grldr文件来完成系统引导操作,这样grldr就不需要被固定在某个分区(相当于GNU GRBU中的stage 2可以不固定了),这样就大大的增加了引导的灵活性,以及引导系统的健壮性。

      如何在windows操作系统将Grub4DOS安装到MBR中呢?这里我们需要使用一个小工具BOOTICE(工具的用法,不多描述),其中集成了修改硬盘MBR的功能,可以很方便点一下按钮就将grldr.mbr安装到MBR中,然后,我们将grldr拷贝到任意一个盘的根目录下,编写好menu.lst文件,例如我们的硬盘有两个系统,引导代码如下:

title Window 7
rootnoverify (hd0,0)
chainloader +1
boot
title CentOS
rootnoverify (hd0,5)
chainloader +1
boot

这样即使你删除了linux分区,只要grldr文件还在,你就可以引导一个你电脑中还可以用的操作系统了!!!

       

版权声明:本文为boychn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/boychn/archive/2012/07/15/2592757.html