详解FDISK /MBR 命令及其应用

mbr 系 fdisk.com(exe) 一项未公布的开关, 隐含于 ms dos 3.30, 延至 ms dos 8.0(windows
me)。实践中, 有籍以修复主引导信息, 重点在主引导程序。
fdisk /mbr 命令流程的分支有二:
读取主引导扇区检验标志(字) aa55h, 操作单一, 仅向主引导扇区位移 0-1bdh 写入当前系统固有的主引导程序, 安全可靠。
难能可贵的是它不触动主引导信息其余模块(分区表、检验标志), 以及随后的 dos 引导信息、文件分配表、根目录, 省事许多。
检出检验标志非 aa55h, 写主引导程序、初始化分区表及登录检验标志, 在 ms dos 7.0 - 8.0 环境中,
常规以系统支持的最大容量分配给基本 dos 分区的方式登录分区表。
分区表初始化(可能幸存的分区表被清除)的后果不难想象; 目前硬盘大都设置有其它分区, 即使在高版本 dos 环境中运作,
常规建立的分区表每难能符合实际需求, 后续工作量也相当可观。
不过, 它也不触动位于其后的 dos 引导信息、文件分配表及根目录,高版本 fdisk /mbr 命令适用于修复仅设基本 dos
分区的硬盘分区表及检验标志受损, 或主引导信息全毁。
可见, 在运行 fdisk /mbr 命令之前, 需查明检验标志是否 aa55h, 酌情处理, 切忌盲动。
经由 dos 软盘引导, 认硬盘, 检验标志必健在。
另外, 在 fdsik 主菜单中选 4. display partition information, 列出分区信息,
进一步证实检验标志正常; 若现 no partitition defined,检验标志每变异, 而分区表或许尚健在。
此外, debug 等工具软件也能查阅(及修复)检验标志。
实践展示, fdisk /mbr 命令适用于:
1. 主引导程序受损
此乃常见故障, 硬盘不能自举, 微机死锁, 或显示 boot failure-insert system diskette, ……之类;
经由软盘引导, fdisk 命令能列出分区信息。
取硬盘同版本 dos 软盘或应急盘引导, 运行 a>fdisk /mbr 命令,仅向主引导扇区写入当前系统固有的主引导程序,
硬盘即恢复自举能力, 如果 dos 引导信息及系统文件等均正常。
2. 清除嵌入式主引导型病毒
此类病毒常见, 它们仅以先导模块嵌入主引导程序, 不触动分区表及检验标志。
首选以检出此类病毒的软件清除。
遇杀毒软件不效, 简洁高效的对策是以硬盘同版本 dos 软盘引导, 运行 a>fdisk /mbr 命令,
向硬盘单一地写入当前系统固有的主引导程序, 病毒“先导”模块被覆盖, 分藏它处的残部随之丧失作用。
顺及, 以常规 fdisk 命令进行分区, 难能清除此类病毒, 原因是当它读得检验标志完好, 自动逾越主引导程序写操作, 仅登录分区表, 病貌依旧!
硬盘格式化后不能自举。行之有效的措施是运行 a>fdisk /mbr命令。
早年曾出于无奈而动用物理格式化程序, 稍后方悟悉硬盘经初始化, 碍事的检验标志不复存在。
3. 仅设基本 dos 分区硬盘的主引导信息全损
前述表现之外, 执行 a>c:, 显示 invalid drive specification,乃分区表遭毁; fdisk
命令不能列出分区信息。
实践中曾遇两例原仅设基本 dos 分区的硬盘(无扩展dos分区), 主引导扇区面目皆非, 经分别运行原用的 ms dos 7.0 及 7.1
fdisk /mbr命令, 常规重写全套完全适用的主引导信息, 由于其 dos 引导信息、文件分配表、根目录及用户数据完好, c
盘均迅即康复。(常规 fdisk 命令初始化 dos 引导扇区等, 有需后续处理)
4. 清除 lilo 信息
在以系统自带的 linux load 过程中, 每修改主引导信息, 籍以引导 linux。
需要时, 删除 linux 分区后, 可用 fdisk /mbr 命令恢复系统固有的主引导程序。
5. 清除主引导程序“空闲”字节中的外加信息
既往所见各版本 dos 登录的主引导程序基本相同, 其末段均为大于200 字节的“空闲”(00h); ms dos 7.1 / 8.0
使用新版主引息程序, “空闲”字节数大减。
上述“空闲”字节有被利用登录开机密码、软件鉴别信息之类。若有需要, 也可用 fdisk /mbr 命令复原, 即予清除。
友情提示:fdisk /mbr 命令简洁高效, 但必须严防误操作!
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个字节记录了分区的大小、类型,哪个是活动分区等等(具体结构请参考相关资料)。主引导扇区最后的两个标志“55AA”是主引导扇区的结束标志,有些病毒就会修改这两个标志,结果系统引导时将报告找不到有效的分区表。主引导扇区的数据可以用一些工具或者自己写一段汇编来查看。
使用Fdisk /MBR时,会把前446个字节(如果你在Linux下用dd if=/boot/boot.NNNN of=/dev/hda bs=446 count=1命令恢复过MBR就知道为什么这个数字是446了)清零后重新“安装”引导程序,但并不会破坏硬盘分区表。安装一些安全保护软件或者新的操作系统往往引导程序会被更改,一部分引导扇区病毒也可能占领这块地盘,达到获得系统的控制权的目的。在上述情况下,如果由于操作不慎或其它原因,系统无法正常启动时可以使用没被病毒感染的启动盘启动系统,然后使用Fdisk /MBR,各位注意,使用时一定要对症下药,下面讲述一下我经历的几个例子:
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命令保存你的主引导记录。想一想,微软为何不公开此命令参数呢?因为它是一个危险的命令!
 

你可能感兴趣的:(电脑常识)