Fdisk是我们在硬盘分区时最常用的命令,Fdisk命令中还有一个未公开参数/MBR,如果在DOS提示符下使用Fdisk /?不会发现此参数,但是这个参数却有很重要的作用。
MBR是主引导记录(Master Boot Record)的缩写。
Fdisk /MBR是如何工作的呢:
先来看看主引导扇区,硬盘的零柱面零磁道的第一个扇区,被称为主引导扇区(512字节),主引导扇区由主引导记录(MBR)、硬盘分区表 (DPT ,Disk Partition Table)和结束标志三部分组成,各部分的大小和偏移量可在网上查找。主引导记录中包含了硬盘的一系列参数和一段引导程序,引导程序主要是用来在系统硬件自检完后引导具有激活标志的分区上的操作系统。它执行到最后的是一条JMP指令跳到操作系统的引导程序去,所以这里往往是一些引导型病毒和一些多系统引导程序的切入点。
此部分还包括启动出错时的提示信息Invalid partition table、 Error loading operating system、Missing operating system和一些保留信息。硬盘分区表的64个字节记录了分区的大小、类型,哪个是活动分区等等(具体结构请参考相关资料)。主引导扇区最后的两个标志 “55 AA”是主引导扇区的结束标志,有些病毒就会修改这两个标志,结果系统引导时将报告找不到有效的分区表。
例子:
1.我的一个同学曾经用过一个叫超级保镖的软件,有开机密码的功能,可是密码被他忘记了(做茧自缚),他从软盘启动,并且把软件删除了,可是在开机的时候还是要求他输入密码。根据他说的,提示输入密码的时机是硬件自检完成以后,Windows刚启动的时候,我推测是主引导扇区被修改了,建议他用 Windows 98的启动盘重新启动后使用此命令,结果把开机密码去掉了。
2.同事的电脑被引导区病毒感染,金山毒霸检测到以后,他用金山毒霸做的启动盘启动杀毒,可是重新启动以后还是检测到有此病毒,我不知道他做的软盘本身是否“干净”,我拿买品牌机时附送的Windows 98启动盘,让他重新启动后,用Fdisk /MBR,再次重新启动计算机,发现病毒已经被清除。
3.为了体验Windows 2000,本人把公司的另一个小硬盘跳线变成Slave后连到我的电脑的IDE1上,把Windows 2000安装到小硬盘里,可以进行Windows 98和Windows 2000双启动,后来硬盘被拿走,再次启动系统时,发现启动不起来了,我拿Windows 98的启动盘启动后,使用Fdisk /MBR命令,还是不行,呵呵,拿出我的最后一招,SYS C:,再次启动,成功!
4.随着Linux的流行,很多朋友都想在一个电脑上实现双启动(甚至多启动),安装Linux,可能会把Lilo安装在主引导扇区,如果想卸载 Linux,而且用Linux的分区命令把Linux的分区删除;以后如果想恢复到原来的系统,用此命令把lilo清除即可,一般不会丢失原来系统上的数据。
最后必须提醒大家的是,Fdisk一般不会影响硬盘的分区结构和数据,但有些病毒正是利用Fdisk /MBR的原理,修改计算机正常的引导和文件结构,如果你再强行使用Fdisk /MBR可能使系统变得更糟,甚至也可能把硬盘中所有的数据清除。所以最好不要随便使用此命令,只在受病毒或一些磁盘管理工具的影响使系统无法正常启动时才使用此命令,如果你想试验一下呢,你应该先备份好你的所有数据,并且用Debug命令保存你的主引导记录。