Win2k”秘密武器”之磁盘编辑(一)
2006-03-31 12:01:20 来源:WEB开发网1.扩展分区的结构和逻辑卷背景知识
一个物理硬盘可以有多个分区,比较简单而且也是比较常用的方案是:首先将部分空间划分为主分区,剩余的空间作为扩展分区。早期硬盘的容量都很小,那时候也有干脆将整个硬盘当做一个主分区的方案。不论哪种情况,都必须明确一点:0柱面0磁头(磁盘面),也就是0磁头所在的哪一磁盘面的全部0磁道(不论该磁道划分为多少个扇区),是不属于任何分区的,也就是说,这里是系统保留的一个区域,并且这部分区域是隐藏的,在这个保留的区域中,仅有一个主引导记录。一般主分区就接着隐藏区域建立。接着主分区随后再建立的,就属于扩展分区了。
严格的说,不论哪种类型的分区,都不能直接被操作系统使用,需要在分区中再建立至少一个或多个“逻辑卷”----这当然是洋人称呼方法,我们一般都称其为“逻辑驱动器”。划分好逻辑驱动器之后,才能格式化,不论主分区或扩展分区都应照此办理!唯有如此。才能安装操作系统或被系统所使用。
再说分区表,无论是主分区或是扩展分区以及逻辑驱动器,都是使用分区表来划分和表示的。因而有属于自己的分区表,所有的分区表都采用“向后连接”的表示方式,即:当前分区或逻辑驱动器的分区表中除了储存有当前分区信息之外,还必须储存有相邻的下一个分区(或逻辑驱动器)的分区表。也就是说,任意分区或逻辑驱动器都必须“知道”与它相邻的下一个分区的确切位置。如果该分区本身就是最后一个分区,则只储存表示自己分区的信息。例如,附在本文最后的是将一个扩展分区划分为3个逻辑驱动器的分区表结构示意图:从图中可以看出来,每个逻辑驱动器中给分区表预留的位置都是四个,但在扩展分区中实际只使用前面两个,第一个是当前分区的,第二个是下个分区的。第二个逻辑驱动器也是这样。到最后一个,只使用了最前面的一个分区表。
每个逻辑驱动器都设有自己的引导扇区,在DOS时代,这个扇区干脆就称为DOS引导扇区。注意,这个扇区并不是物理硬盘所保留的主引导扇区的重复,而是受操作系统控制的。在这个引导扇区的结束处,也以0X55AA作为引导成功的标志。
2.如何显示所有分区的基本情况
a.在windows2000中,不使用支持工具工具也可以显示所有分区的情况,可以从控制面版中打开“计算机管理”,里面有个“磁盘管理”,鼠标点击就可以显示所有磁盘的分区情况。
我在自己的机器上打开的情况如上图所示。但这种方式打开时显示的信息很少,并且不能进行编辑修改。
b. 用DiskProbe工具显示并编辑扩展分区信息。具体如何打开DiskProbe工具,前两部分已经很详细地介绍过操作的过程。这里只说说会遇到的新问题:在打开DiskProbe之后,想显示扩展分区,必须选择逻辑卷(驱动器)。可以点击菜单中的"驱动器->逻辑卷(驱动器)",会显示一个选择对话框,让你进行逻辑驱动器的选择;
在对话框的滚动条左边,列出了可供选择的逻辑驱动器,选定的方法是以鼠标双击其中的一个,最后点击OK按钮;
随之要选择读取的起始扇区和扇区数,在Sectors 菜单,点击 Read出现的对话框是让你选择要起始扇区和扇区数;
一般都使用显示出来的默认值,不作变动而直接点击Read按钮。
下一步显示的画面如图4;
连同引导扇区的信息以字节形式显示。这显得不直观,尤其对经验少的人来说,很可能根本看不懂。需要改变显示模式,可以在View菜单中点击Partition table,所显示的画面大家在前面已经见过,这里就不再重复插图了。如果想修改扩展分区信息,可以直接在编辑框中输入合适的数字就可以了。
3.排除引导扇区的故障
每一个逻辑卷都有属于自己的引导扇区,而引导扇区是某些病毒容易入侵的地方,甚至包括NTFS分区也难以幸免。尽管关于病毒传染的机理大家已经了解。但还是有一点需要说明:鉴于多数病毒都使用BIOS的INT13中断来对磁盘的绝对扇区进行操作。在windows2000中,使用了保护模式取代原来的BIOS例行程序对磁盘进行读写操作。这在一定程度上减少了部分病毒的入侵机会,但这需要以运行windows2000为先决条件。对于计算机运行其它操作系统的时候,仍存在感染病毒的可能。
例如,在病毒入侵扩展分区的引导扇区之后,计算机不能正常引导,可能出现停止运行的提示:STOP 0x0000007B INACCESSIBLE_BOOT_DEVICE.当然,也可能是黑屏,什么提示也没有。所以,即使从防病毒着想,学习如何排除引导扇区故障还是很有用处的。
如果排除引导扇区故障,首先要读取引导扇区。这当然要求windows2000必须处于尚可以运行的状态。
A.按照上面介绍的步骤打开DiskProbe。直至读取出引导扇区内容。然后按下面步骤:
B. 在View 菜单中,鼠标点击NTFS BootSector 或 FAT BootSector.至于你到底选择哪一个,要看你使用的是什么分区方式,遗憾的是该工具不支持FAT32(但可以显示,就是不能编辑和改写),所以对采用FAT32方式分区的计算机,请采用别的磁盘编辑工具来修理引导扇区。
C. 引导扇区中的许多信息都于计算机的特定环境有关,所以其它计算机的引导扇区信息肯定不会与你的计算机中的完全相符,但不论如何,以下四部分都应当是一样的:
1. 最开始的三字节是0X86系列的CPU使用的跳转指令。
2. 紧接的11个字节是OEM ID字符串。
3. 在扇区将结束处保存有用于提示错误信息的字符串。
4. 扇区结束是0X55AA.
由于实际采用的分区方式既有FAT16,也有FAT32,还有NTFS,不同的分区方式,上面三部分也不同,但相同的分区方式上述三部分应当相同。
下面是FAT16和NTFS两种分区方式的引导扇区信息。
00000000: EB 3C 90 4D 53 44 4F 53 - 35 2E 30 00 02 40 01 00 .<.MSDOS5.0..@..
…省略部分,
000001A0: B0 4E 54 4C 44 52 20 20 - 20 20 20 20 0D 0A 4E 54 .NTLDR ..NT
000001B0: 4C 44 52 20 69 73 20 6D - 69 73 73 69 6E 67 FF 0D LDR is missing..
000001C0: 0A 44 69 73 6B 20 65 72 - 72 6F 72 FF 0D 0A 50 72 .Disk error...Pr
000001D0: 65 73 73 20 61 6E 79 20 - 6B 65 79 20 74 6F 20 72 ess any key to r
000001E0: 65 73 74 61 72 74 0D 0A - 00 00 00 00 00 00 00 00 estart..........
000001F0: 00 00 00 00 00 00 00 00 - 00 00 00 AC BF CC 55 AA ..............U.
使用 FAT16分区方式 的引导扇区Boot Sector
00000000: EB 52 90 4E 54 46 53 20 - 20 20 20 00 02 08 00 00 .R.NTFS .....
…省略部分
00000180: EB F2 C3 0D 0A 41 20 64 - 69 73 6B 20 72 65 61 64 .....A disk read
00000190: 20 65 72 72 6F 72 20 6F - 63 63 75 72 72 65 64 00 error occurred.
000001A0: 0D 0A 4E 54 4C 44 52 20 - 69 73 20 6D 69 73 73 69 ..NTLDR is missi
000001B0: 6E 67 00 0D 0A 4E 54 4C - 44 52 20 69 73 20 63 6F ng...NTLDR is co
000001C0: 6D 70 72 65 73 73 65 64 - 00 0D 0A 50 72 65 73 73 mpressed...Press
000001D0: 20 43 74 72 6C 2B 41 6C - 74 2B 44 65 6C 20 74 6F Ctrl+Alt+Del to
000001E0: 20 72 65 73 74 61 72 74 - 0D 0A 00 00 00 00 00 00 restart........
000001F0: 00 00 00 00 00 00 00 00 - 83 A0 B3 C9 00 00 55 AA ..............U.
使用NTFS分区方式的引导扇区 Boot Sector
D.发现以上4部分中有不正常,可以直接用DiskProbe编辑修改为正常值。重新启动。
总之,从我使用的体会看,编辑分区表,应当使用对话框的显示方式,比较直观,也不易出错。尽量不要使用字节显示方式。至于修复逻辑卷的引导扇区,有共同规律可循的只有上述四部分,其它部分会因机器不同而不同,除非你有备份,否则手工修复起来困难很大。
包括本次在内的三部分内容,讲的都是在假定windows2000尚可运行的情况下进行的修复。如果计算机根本不能引导,该如何着手进行修复呢?这将是下次我们讨论的话题。请各位稍安勿燥,且听下回分解。
扩展分区与逻辑卷(驱动器)的分区表结构示意表。
扩 展 分 区 | 第 一 个 逻 辑 驱 动 器 (卷) | 第一个逻辑驱动器(卷)分区表 |
第二个逻辑驱动器(卷)分区表 | ||
未使用 | ||
未使用 | ||
0x55AA结束标志符号 | ||
引导扇区 | ||
真正开始使用的空间 | ||
第 二 个 逻 辑 驱 动 器 (卷) | 第二个逻辑驱动器(卷)分区表 | |
第三个逻辑驱动器(卷)分区表 | ||
未使用 | ||
未使用 | ||
0x55AA结束标志符号 | ||
引导扇区 | ||
真正开始使用的空间 | ||
第 三 个 逻 辑 驱 动 器 (卷) | 第三个逻辑驱动器(卷)分区表 | |
未使用 | ||
未使用 | ||
未使用 | ||
0x55AA结束标志符号 | ||
引导扇区 | ||
真正开始使用的空间 |
更多精彩
赞助商链接