最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

MBR表与FAT表

IT圈 admin 24浏览 0评论

2024年10月22日发(作者:昂英杰)

目前我们可以接触到的大部分pc依然采用上世纪遗传下来的 BIOS + MBR 组合。 BIOS,基本输入输出

系统 (Basic Input-Output System),是软件与硬件之间的一个接口,可以把它看作一个翻译在中文与英语

之间,虽然两者完全不同,不过可以让大家了解 BIOS 所处的位置,BIOS 通常被写入一块 ROM 芯片连

接在主板上,当然也有直接写入北桥的,不过相当少见。 BIOS 几乎是完全用汇编语言编写,很大程度上

决定了主板的性能及稳定性,就像是同声翻译的速率和准确性一样。华硕主板 (ASUS) 加入 AI 人工智能

的 P4P800 被称为世界上最聪明的主板,当然是华硕自称的。不过 ASUS 实现这些 AI 功能就用通过

BIOS。BIOS 在软件与硬件之中的角色之重要,相信不需要我再描述,各位都已经很清楚了。

MBR,主引导记录 (Master Boot Record),也就是我们常见的分区方法,不过管理员外的最终用户

很少知道它的存在,MBR 分区的标准决定了 MBR 只支持在2TB以下 (超过 2TB 的只能管理 2TB) 的

硬盘中创建4个分区表项,这时会有人在想我的电脑分区7、8个,是这样的 MBR 只支持4个分区表项。

要获得更多分区,需要次级结构--扩展分区。扩展分区可以再次被分成一个或多个逻辑磁盘,也就是普通

情况下的C盘以外的盘,或说第一个分区以外的部分,有些情况下 Windows 里的C盘可能会是一个逻辑

分区。可能到这里大家会有些疑惑,没听过 MBR 分区格式,只知道 FAT、NTFS 。不用疑惑,它们不是

同一种东西,这样比喻一下,MBR 就像是一本书的结构,目录、页码,这些东西划分出了章节,这就是 MBR

分区方法。在不同的章节又可以用不同的排版或是语言,这就是 FAT、NTFS 之类的格式。明白了吧,

MBR 就是一个框架划分出了分区,在分区上又使用不同的格式 (文件系统: FAT、NTFS 之类) 储存文件。

EFI,可扩展固件接口 (Extensible Firmware Interface),由英特尔 (Intel) 公司提出的一种替代 BIOS

的升级方案。 EFI 的位置很特殊,它不像是 BIOS 那样自己即是固件又是接口,EFI 只是一个接口,位

于操作系统与平台固件之间,感觉像是公司、CEO、CEO秘书之间的关系一样,由CEO (操作系统) 下任

务,CEO秘书 (EFI) 负责把任务分配下发到公司各部门经理 (平台固件),经理们又把任务下发到具体的

小组 (各类硬件) 去完成。

GPT (这个不太好译),全局唯一标识磁盘分区表 (GUID Partition Table),GUID,全局唯一标识符

(Globally Unique Identifier) 。GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的

一部分引入的。当然,你也可以在 BIOS 的PC中使用 GPT 分区,虽然 GPT 来自以 EFI 计划,但并

不依赖于 EFI。GPT 相对于以往 PC 普遍使用的主引导记录 (MBR) 分区方案更加灵活。比如可以超过

MBR 分区表项4个的限制,在 GPT 规范里对分区的数量几乎是没有限制的,大家在网上可以查到的128

个实际上是 Windows 系统 (支持 GPT 的 Windows) 做出的限制。 GPT 对可管理磁盘大小也超过了

MBR 的2TB (1TB = 1024GB) 而达到了 18EB (1EB = 1024TB) 。在 MBR 分区方案中操作系统的引导

是通过放在磁盘最开始 (第一扇区) 里的 MBR (这里的 MBR 是指主引导记录,而不是主引导记录分区方

案,两者是同名的。我的猜测是为了与 GPT 分区方案区分,使用了主引导记录引导方式的名字 MBR 来

命名此种分区方案,我查不到确切的资料正明我的猜测是否正确,只能大家努力区分一下了。) 。把重要

的信息 (如分区信息、目录等) 放在某个扇区里是 MBR 分区方案的方法,而 GPT 把这个信息放到了分

区里,Intel的解释是这样可以更加明确更加安全。 GPT 分区为了保护自己不受 MBR 方案下磁盘管理软

件的危害,在磁盘的最开始位置 (第一个扇区) 建立了一个保护分区 (Protective MBR),这种分区的类型

标识为 0xEE。大小的话我没有在支持 GPT 的 Windows 上试过,现在只能肯定苹果系统 (Mac OS X)

下这个保护分区大小为 200MB,这个分区在 Window NT 磁盘管理器里名字叫做 GPT 保护分区。这个

分区可以让不能识别 GPT 的磁盘管理软件把 GPT 磁盘看成一个未知格式的分区,而不是错误地当成一

个未分区的磁盘。

现在大家都对 BIOS、EFI、MBR 分区方案、GPT 有了一定的了解,现在说说在实际应用中选择的

难题。

BIOS + MBR 不用说了,从DOS年代 (实际上更早) 就在使用它,Windows 也一样。然而到了现在

出现了 EFI + GPT 的方案,EFI 的话 Windows 直到Vista都不支持,所以就扔开它不说。说说 GPT。

Windows 对 GPT 的支持是这样的 (来自微软的解释) :

1. Windows XP x64 版本只能使用 GPT 磁盘进行数据操作。但并不能把自身安装到 GPT 磁盘,也就

是说它并不能从 GPT 磁盘启动。

2. Windows XP 32 位版本只能查看 Protective MBR。EE 分区将不会被装载或公开给应用软件;

3. Windows Server 2003 32bit Server Pack 1 以后的所有 Windows 2003 版本都能使用 GPT 分区磁

盘进行数据操作。但仍然不能从 GPT 启动;

4. Windows Vista 所有版本都能使用 GPT 分区磁盘进行数据操作;

5. Windows 2000、Windows NT 4 或 Windows 95/98 只能查看 Protective MBR;

6. 只有基于 Itanium 的 Windows 系统才能从 GPT 分区上启动 (EFI 最早就是使用在Itanium上

的) 。

这样看来 GPT 对于现在的 Windows 用户来说几乎是没有价值的。不能从上面启动只能存取数据,

这个年头谁会拿着个2TB以上 (上面大家应该已经了解为了不浪费空间,2TB以上磁盘都只能使用 GPT

分区方案管理) 容量的移动存储设备来你的 Windows 上拷数据?

EFI + GPT,现在个人pc里也许只有苹果在使用 EFI,当然Mac OS X也要求被安装到 GPT 分区

中,如果你给它个 MBR,它理都不理你。不过苹果在把CPU换成Intel后,在 EFI 里加入了一个简化版

的 BIOS,于是 Windows 可以在Intel平台的苹果电脑里使用,不过得使用 MBR,因为我们大部分会选

择的 Windows 版本都不支持从 GPT 启动,恐怕不会有人要在苹果电脑上装基于 Itanium 的 Windows

系统吧?估计你也买不着碟!苹果公司提供了一种解决方案 (BootCamp) 使你的 Windows 可以在 GPT

磁盘上启动,BootCamp使用 Protective MBR 对旧系统的解释功能,在 GPT 分区中做出一个 MBR 分

区。使得你的 Windows 可以在 GPT 磁盘上使用,虽然有一些磁盘使用上的限制 (你分再多的 MBR 分

区,Windows 还是只能认出前4个,其中还包含了Protective MBR 和你的Mac OS所在分区,而且这样

分区过程复杂,使用时也存在分区同步问题) 。

现在选择出现了,你的 MacBook 到底安装什么系统?

安装 MacBook 面对的将是通用性问题,虽然现在Mac的软件很多了,微软的Office都有Mac版的,

游戏厂商也越来越多的支持Mac OS,但是,你考虑了咱们的国情了吗?生活就是如此的无奈,你选择Mac

OS就面临着正版软件付费问题,很难找到Mac版的软件下载,更难找到破解的盗版软件使用。而且就算

你找到了,你需要准备面对版权局的官司,咱们国人穷到软件都买不起,更不要说侵权的赔偿金是购买费

用的多少倍。

安装 Windows,通用性问题几乎都解决了,可是一样存在的是版权问题。我们也许可以花3块钱在老

板那买张有很多内容的盗版光盘,甚至可以找到包含所有你需要内容的光盘,但你想过没,老板在收你3

块钱的时候也把你放在了一个很危险的位置。你试想下,有一天你早晨醒来,发现全世界都的版权法律都

完善且很有力量,这时门外疯狂敲门的人大喊“开门!版权局!”,你衣服都还没穿好,看着离你2米远的

笔记本。我感肯定你当时不会去计算那玩意儿里有多少盗版软件,可能会带来多少罚金,你当时计算会是

一个人从空气中消失的可能性的亿分比。

不过,还有一个选译!Linux,一个几乎完全免费的操作系统,目前Linux的核心部分使用GNU通用

公共授权第二版 (GPL v2),使用这个协议就意味用户几乎可以完全免费的下载到软件甚至是源代码,并且

完全合法的使用它们,于是现在世界上的Linux都几乎免费的,用户只需要出几十块 (人民币) 的光盘成本

及邮递费用。软件方面,Linux有着强大的开源支持,全世界的开源程序员们 (或是公司或是组织) 组成了

开源社区,总是有用户需要的软件出现。现在Linux的软件几乎可以提供到任何行业。不过,事件总是没

有完美的,全世界的游戏厂商可以数得出来有几家支持Linux,对于国人来说Linux也有着很致命的问题,

唯护相当的复杂,虽然现在Ubuntu公司带来的Ubuntu Linux可以相当简单的对Linux软件做安装、卸载

工作,但仍然避免不了一些更复杂的唯护工作。Linux的精华是指令,对于国人来说,大部分DOS 都学不

懂,更不要说Linux庞大的指令系统了。

二、

硬盘的0柱面、0磁头、1扇区称为主引导扇区,分区程序写到该扇区的内容称为主引导记录(MBR)。

占用512个字节。

MBR4个部分组成。

·主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。

·出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。

·分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,

共64字节为分区项1、分区项2、分区项3、分区项4。

·结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。

三部分

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/ 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命令保存你的主引导记录。想一想,

微软为何不公开此命令参数呢?因为它是一个危险的命令!

下步:

mbr 系 (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 命令简洁高效, 但必须严防误操作!

2024年10月22日发(作者:昂英杰)

目前我们可以接触到的大部分pc依然采用上世纪遗传下来的 BIOS + MBR 组合。 BIOS,基本输入输出

系统 (Basic Input-Output System),是软件与硬件之间的一个接口,可以把它看作一个翻译在中文与英语

之间,虽然两者完全不同,不过可以让大家了解 BIOS 所处的位置,BIOS 通常被写入一块 ROM 芯片连

接在主板上,当然也有直接写入北桥的,不过相当少见。 BIOS 几乎是完全用汇编语言编写,很大程度上

决定了主板的性能及稳定性,就像是同声翻译的速率和准确性一样。华硕主板 (ASUS) 加入 AI 人工智能

的 P4P800 被称为世界上最聪明的主板,当然是华硕自称的。不过 ASUS 实现这些 AI 功能就用通过

BIOS。BIOS 在软件与硬件之中的角色之重要,相信不需要我再描述,各位都已经很清楚了。

MBR,主引导记录 (Master Boot Record),也就是我们常见的分区方法,不过管理员外的最终用户

很少知道它的存在,MBR 分区的标准决定了 MBR 只支持在2TB以下 (超过 2TB 的只能管理 2TB) 的

硬盘中创建4个分区表项,这时会有人在想我的电脑分区7、8个,是这样的 MBR 只支持4个分区表项。

要获得更多分区,需要次级结构--扩展分区。扩展分区可以再次被分成一个或多个逻辑磁盘,也就是普通

情况下的C盘以外的盘,或说第一个分区以外的部分,有些情况下 Windows 里的C盘可能会是一个逻辑

分区。可能到这里大家会有些疑惑,没听过 MBR 分区格式,只知道 FAT、NTFS 。不用疑惑,它们不是

同一种东西,这样比喻一下,MBR 就像是一本书的结构,目录、页码,这些东西划分出了章节,这就是 MBR

分区方法。在不同的章节又可以用不同的排版或是语言,这就是 FAT、NTFS 之类的格式。明白了吧,

MBR 就是一个框架划分出了分区,在分区上又使用不同的格式 (文件系统: FAT、NTFS 之类) 储存文件。

EFI,可扩展固件接口 (Extensible Firmware Interface),由英特尔 (Intel) 公司提出的一种替代 BIOS

的升级方案。 EFI 的位置很特殊,它不像是 BIOS 那样自己即是固件又是接口,EFI 只是一个接口,位

于操作系统与平台固件之间,感觉像是公司、CEO、CEO秘书之间的关系一样,由CEO (操作系统) 下任

务,CEO秘书 (EFI) 负责把任务分配下发到公司各部门经理 (平台固件),经理们又把任务下发到具体的

小组 (各类硬件) 去完成。

GPT (这个不太好译),全局唯一标识磁盘分区表 (GUID Partition Table),GUID,全局唯一标识符

(Globally Unique Identifier) 。GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的

一部分引入的。当然,你也可以在 BIOS 的PC中使用 GPT 分区,虽然 GPT 来自以 EFI 计划,但并

不依赖于 EFI。GPT 相对于以往 PC 普遍使用的主引导记录 (MBR) 分区方案更加灵活。比如可以超过

MBR 分区表项4个的限制,在 GPT 规范里对分区的数量几乎是没有限制的,大家在网上可以查到的128

个实际上是 Windows 系统 (支持 GPT 的 Windows) 做出的限制。 GPT 对可管理磁盘大小也超过了

MBR 的2TB (1TB = 1024GB) 而达到了 18EB (1EB = 1024TB) 。在 MBR 分区方案中操作系统的引导

是通过放在磁盘最开始 (第一扇区) 里的 MBR (这里的 MBR 是指主引导记录,而不是主引导记录分区方

案,两者是同名的。我的猜测是为了与 GPT 分区方案区分,使用了主引导记录引导方式的名字 MBR 来

命名此种分区方案,我查不到确切的资料正明我的猜测是否正确,只能大家努力区分一下了。) 。把重要

的信息 (如分区信息、目录等) 放在某个扇区里是 MBR 分区方案的方法,而 GPT 把这个信息放到了分

区里,Intel的解释是这样可以更加明确更加安全。 GPT 分区为了保护自己不受 MBR 方案下磁盘管理软

件的危害,在磁盘的最开始位置 (第一个扇区) 建立了一个保护分区 (Protective MBR),这种分区的类型

标识为 0xEE。大小的话我没有在支持 GPT 的 Windows 上试过,现在只能肯定苹果系统 (Mac OS X)

下这个保护分区大小为 200MB,这个分区在 Window NT 磁盘管理器里名字叫做 GPT 保护分区。这个

分区可以让不能识别 GPT 的磁盘管理软件把 GPT 磁盘看成一个未知格式的分区,而不是错误地当成一

个未分区的磁盘。

现在大家都对 BIOS、EFI、MBR 分区方案、GPT 有了一定的了解,现在说说在实际应用中选择的

难题。

BIOS + MBR 不用说了,从DOS年代 (实际上更早) 就在使用它,Windows 也一样。然而到了现在

出现了 EFI + GPT 的方案,EFI 的话 Windows 直到Vista都不支持,所以就扔开它不说。说说 GPT。

Windows 对 GPT 的支持是这样的 (来自微软的解释) :

1. Windows XP x64 版本只能使用 GPT 磁盘进行数据操作。但并不能把自身安装到 GPT 磁盘,也就

是说它并不能从 GPT 磁盘启动。

2. Windows XP 32 位版本只能查看 Protective MBR。EE 分区将不会被装载或公开给应用软件;

3. Windows Server 2003 32bit Server Pack 1 以后的所有 Windows 2003 版本都能使用 GPT 分区磁

盘进行数据操作。但仍然不能从 GPT 启动;

4. Windows Vista 所有版本都能使用 GPT 分区磁盘进行数据操作;

5. Windows 2000、Windows NT 4 或 Windows 95/98 只能查看 Protective MBR;

6. 只有基于 Itanium 的 Windows 系统才能从 GPT 分区上启动 (EFI 最早就是使用在Itanium上

的) 。

这样看来 GPT 对于现在的 Windows 用户来说几乎是没有价值的。不能从上面启动只能存取数据,

这个年头谁会拿着个2TB以上 (上面大家应该已经了解为了不浪费空间,2TB以上磁盘都只能使用 GPT

分区方案管理) 容量的移动存储设备来你的 Windows 上拷数据?

EFI + GPT,现在个人pc里也许只有苹果在使用 EFI,当然Mac OS X也要求被安装到 GPT 分区

中,如果你给它个 MBR,它理都不理你。不过苹果在把CPU换成Intel后,在 EFI 里加入了一个简化版

的 BIOS,于是 Windows 可以在Intel平台的苹果电脑里使用,不过得使用 MBR,因为我们大部分会选

择的 Windows 版本都不支持从 GPT 启动,恐怕不会有人要在苹果电脑上装基于 Itanium 的 Windows

系统吧?估计你也买不着碟!苹果公司提供了一种解决方案 (BootCamp) 使你的 Windows 可以在 GPT

磁盘上启动,BootCamp使用 Protective MBR 对旧系统的解释功能,在 GPT 分区中做出一个 MBR 分

区。使得你的 Windows 可以在 GPT 磁盘上使用,虽然有一些磁盘使用上的限制 (你分再多的 MBR 分

区,Windows 还是只能认出前4个,其中还包含了Protective MBR 和你的Mac OS所在分区,而且这样

分区过程复杂,使用时也存在分区同步问题) 。

现在选择出现了,你的 MacBook 到底安装什么系统?

安装 MacBook 面对的将是通用性问题,虽然现在Mac的软件很多了,微软的Office都有Mac版的,

游戏厂商也越来越多的支持Mac OS,但是,你考虑了咱们的国情了吗?生活就是如此的无奈,你选择Mac

OS就面临着正版软件付费问题,很难找到Mac版的软件下载,更难找到破解的盗版软件使用。而且就算

你找到了,你需要准备面对版权局的官司,咱们国人穷到软件都买不起,更不要说侵权的赔偿金是购买费

用的多少倍。

安装 Windows,通用性问题几乎都解决了,可是一样存在的是版权问题。我们也许可以花3块钱在老

板那买张有很多内容的盗版光盘,甚至可以找到包含所有你需要内容的光盘,但你想过没,老板在收你3

块钱的时候也把你放在了一个很危险的位置。你试想下,有一天你早晨醒来,发现全世界都的版权法律都

完善且很有力量,这时门外疯狂敲门的人大喊“开门!版权局!”,你衣服都还没穿好,看着离你2米远的

笔记本。我感肯定你当时不会去计算那玩意儿里有多少盗版软件,可能会带来多少罚金,你当时计算会是

一个人从空气中消失的可能性的亿分比。

不过,还有一个选译!Linux,一个几乎完全免费的操作系统,目前Linux的核心部分使用GNU通用

公共授权第二版 (GPL v2),使用这个协议就意味用户几乎可以完全免费的下载到软件甚至是源代码,并且

完全合法的使用它们,于是现在世界上的Linux都几乎免费的,用户只需要出几十块 (人民币) 的光盘成本

及邮递费用。软件方面,Linux有着强大的开源支持,全世界的开源程序员们 (或是公司或是组织) 组成了

开源社区,总是有用户需要的软件出现。现在Linux的软件几乎可以提供到任何行业。不过,事件总是没

有完美的,全世界的游戏厂商可以数得出来有几家支持Linux,对于国人来说Linux也有着很致命的问题,

唯护相当的复杂,虽然现在Ubuntu公司带来的Ubuntu Linux可以相当简单的对Linux软件做安装、卸载

工作,但仍然避免不了一些更复杂的唯护工作。Linux的精华是指令,对于国人来说,大部分DOS 都学不

懂,更不要说Linux庞大的指令系统了。

二、

硬盘的0柱面、0磁头、1扇区称为主引导扇区,分区程序写到该扇区的内容称为主引导记录(MBR)。

占用512个字节。

MBR4个部分组成。

·主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。

·出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。

·分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,

共64字节为分区项1、分区项2、分区项3、分区项4。

·结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。

三部分

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/ 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命令保存你的主引导记录。想一想,

微软为何不公开此命令参数呢?因为它是一个危险的命令!

下步:

mbr 系 (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 命令简洁高效, 但必须严防误操作!

发布评论

评论列表 (0)

  1. 暂无评论