硬盘分区结构的几个问题,大虾帮忙!!

aaa2520 2003-08-30 09:19:12
硬盘分区结构的几个问题,大虾帮忙!!

看里几篇相关的资料还是有很多地方不明白,资料上扩展分区逻辑分区的结构讲的不多,要么就是我愚笨。我就是想了解一下扩展分区,逻辑分区的相关知识!资料上多数是讲主分区的结构的!

1)要是一个硬盘上有逻辑分区是不是要在(mbr)主分区表的第二个主分区的格式设定为扩展分区?然后这个分区的起始和终止就是逻辑分区的位置,大小是逻辑分区的总和?他指向的起始位置的扇区保存这个逻辑分区的,起始、终止、大小,以及下一个扇区的起始和大小信息?(这部分的逻辑结构是什么样的??数据格式是什么样的?有没有文件分配表??) 下一个逻辑分区是不是也有这和他相同的结构?

2)假如我有块硬盘,一共看到c、d、e、f盘,c盘是主分区他的信息可以知道,但是d、e、f的信息怎么看啊??d、e、f是怎么分出来的,起始终止位置,大小 文件分配表等信息保存在哪里、结构是什么样的??


其实本质就是逻辑分区的相关信息保存在哪里?? 结构是什么样的?? 和主分区有什么不同的地方,二者是怎么联系到一起的????????


3)还有 window 2k 的启动在加栽硬盘的相关信息和win98有什么不同??有没有详细的相关资料,ntfs格式是怎么管理硬盘数据的??

谢谢大家帮忙 !
再一次表示感谢!!
...全文
250 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ilovecoding 2003-09-07
  • 打赏
  • 举报
回复
mark
leechildren 2003-09-07
  • 打赏
  • 举报
回复
一个是fat表, 另一个是 fat备份表!
所以有时说两个fat表。
aaa2520 2003-09-07
  • 打赏
  • 举报
回复
hehe,感谢大家 真的收益非浅啊!
呵呵 还想问问,关于fat的 又的资料上说又两个fat 那另一个fat一般都在什么地方啊?
紫郢剑侠 2003-09-05
  • 打赏
  • 举报
回复
挺祥细的,不错.
1917584 2003-09-05
  • 打赏
  • 举报
回复
硬盘主引导扇区 = 硬盘主引导记录(MBR)+ 硬盘分区表(DPT)
--------------------------------------------------------------
物理位置:0面0道1扇区(clindyer 0, side 0, sector 1)
大小: 512字节
其中:MBR 446字节(0000--01BD),DPT 64字节(01BE--01FD),结束标志2字节(55 AA)
功能:MBR通过检查DPT分区信息引导系统跳转至DBR;
读取: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE——>PHYSICAL DISK-—HARD DISK,
然后, 在OBJECT菜单中选择DISK PARTITION TABLE即可读取, 并使用TOOLS菜单中的WRITE OBJECT TO 选项存入指定文件备份;
写入: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE——>FLOOPY DISK, 选择备份的DPT
文件, 然后使用TOOLS菜单中的WRITE OBJECT TO——>PHYSICAL SECTOR 选项写入001
(clindyer 0, side 0, sector 1);
详解:
000H--08AH MBR启动程序(寻找开机分区)
08BH--0D9H MBR启动字符串
0DAH--1BCH 保留("0")
1BEH--1FDH 硬盘分区表
1FEH--1FFH 结束标志(55AA)

活动分区主引导扇区(DBR)
--------------------------
物理位置:1面0道1扇区(clindyer 0, side 1, sector 1)
大小: FAT16 1扇区 512字节
FAT32 3扇区 1536字节
功能:包含机器CMOS等信息(0000--0059), 核对该信息并引导指定的系统文件, 如NTLDR等;
读取: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE——>LOGICAL DISK-—DISK C,
然后, 在OBJECT菜单中选择BOOT RECORD即可读取, 并使用TOOLS菜单中的
WRITE OBJECT TO 选项存入指定文件备份;
写入: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE——>FLOOPY DISK, 选择备份的DBR
文件, 然后使用TOOLS菜单中的WRITE OBJECT TO——>PHYSICAL SECTOR 选项写入011
(clindyer 0, side 1, sector 1);

详解:
000H--002H 3 BYTE的跳转指令(去启动程序, 跳到03EH)
003H--03DH BIOS参数区
03EH--19DH DOS启动程序
19EH--1E5H 开机字符串
1E6H--1FDH 文件名(IO.SYS, MSDOS.SYS)
1FEH--1FFH 结束标记(55AA)

硬盘分区表(DPT)
---------------------
偏移地址 字节数 含义分析
01BE 1 分区类型:00表示非活动分区:80表示活动分区;其他为无效分区。
01BF~01C1 3 *分区的起始地址(面/扇区/磁道),通常第一分区的起始地址开始
于1面0道1扇区,因此这三个字节应为010100
01C2 1 #分区的操作系统的类型。
01C3~01C5 3 *该分区的结束地址(面/扇/道)
01C6~01C9 4 该分区起始逻辑扇区
01CA~01CD 4 该分区占用的总扇区数
注释: * 注意分区的起始地址(面/扇区/磁道)和结束地址(面/扇/道)中字节分配:
00000000 01000001 00010101
~~~~~~~~ ==^^^^^^ ========
~ 面(磁头) 8 位
^ 扇区 6 位
= 磁道 10 位
# 分区的操作系统类型(文件格式标志码)
4---DOS FAT16<32M
5---EXTEND
6---DOS FAT16>32M
7---NTFS(OS/2)
83---LINUX>64M

DPT 总共64字节(01BE--01FD), 如上所示每个分区占16个字节, 所以可以表示四个分区, 这也
就是为什么一个磁盘的主分区和扩展分区之和总共只能有四个的原因.

逻辑驱动器
-----------
扩展分区的信息位于以上所示的硬盘分区表(DPT)中, 而逻辑驱动器的信息则位于扩展分区的
起始扇区, 即该分区的起始地址(面/扇区/磁道)所对应的扇区, 该扇区中的信息与硬盘主引导
扇区的区别是不包含MBR, 而16字节的分区信息则表示的是逻辑驱动器的起始和结束地址等.

所以, 在磁盘仅含有一个主分区, 一个扩展分区(包含多个逻辑驱动器)的情况下, 即使由于病毒
或其他原因导致硬盘主引导扇区的数据丢失(包括DPT), 也可以通过逻辑驱动器的数据来恢复整个硬盘.
例如: 以下是一个硬盘的分区情况.
道 面 扇 道 面 扇 起始扇(逻辑) 结束扇 总共扇区
MBR 0 0 1 - - - - - -
C 0 1 1 276 239 63 63 4,188,239 4,188,177
扩 277 0 1 554 239 63 4,188,240 8,391,599 4,203,360
D 277 1 1 554 239 63 4,188,303 8,391,599 4,203,297

如果主分区表损坏, 则可以通过手工查找扩展分区表中所包含的逻辑驱动器数据, 在本例中就是D盘所对应的数据, 然后将其起始扇(逻辑)减去63就是所对应的扩展分区的起始扇(逻辑), 将其起始地址(面/扇区/磁道)改为0面就是扩展分区的起始地址. 然后通过扩展分区就可以得到主分区C的信息, 然后就可以使用FDISK/MBR命令和手工填写分区表恢复整个硬盘.
实际使用这种方法比较麻烦, 如果知道每个分区的大小, 则可以通过使用PQ MAGIC 5 将磁盘重新分区为原来大小(注意: 千万不能应用, 我们只是通过它来获得数据), 并查看INFO来获得以上
数据, 记录以后取消该分区操作, 然后使用NORTON DISK2000手工修改DPT表, 恢复整个硬盘.
该例所对应的分区表数据:
80 01
01 00 06 EF 7F 14 3F 00 00 00 11 E8 3F 00 00 00
41 15 05 EF BF 2A 50 E8 3F 00 60 23 40 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
扩展分区表数据:
00 01
41 15 07 EF BF 2A 8F E8 3F 00 21 23 40 00
1917584 2003-09-05
  • 打赏
  • 举报
回复
说说分区表
分区表是位于硬盘最初的扇区,而最初的扇区包括主引导记录、错误信息提示、分区表和有效标志字等几部分。
主引导记录的主要作用是检查分区表,寻找启动分区,显示出错信息,现后再将启动控制权转给DOS启动区。
如果丢失主引导记录,我们可以通过fdisk /mbr来重建它,这个命令只是重建主引导记录,对其它数据并没
有产生影响。当删除了主引导扇区的内容时,从硬盘启动机器会在“Verifying DMI Pool Data….”那里定
住了,没有提示其它出错的信息,一些引导型病就是修改了这段程序使机器中毒的。
错误提示是主引导程序在执行过程当中出现异常时所显示的出错信息,它包括了以下几个提示,
“Invalid paration table”,“Error loading operating system”,“Missing operating system”,
如果出现上述的错误提示,那就可能跟主引导程序或分区表有关。
有效标志字是55aa,如果没有有效标志字,会使分区表无效,使用分区表查看软件会看不到分区,系统会
出现“Invalid paration table”。

今天我们重点来分析一下分区表:
下面是我的昆腾6.4G硬盘的分区表,其中第一行显示的是主分区,第二行是扩展分区,而全为零的后两行
本来都可以用来记录分区的,现在没有用得到:
80 01 01 00 0b fe 3f 63 3f 00 00 00 25 83 18 00
00 00 01 64 05 fe ff 0e 64 83 18 00 eb 6c a7 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
现在我们来分析一下主分区,至于扩展分区可以照推,分析时从左至右字逐字节过行分析。
第一字节80代表的是启动扇区,这个字节的取值还可以是00,表示的是非启动分区,如果有超个一个以上的
分区表都置为80,则在启动时会出现“Invalid parition table”的错误信息。
第二至四字节01 01 00代表起始扇区的起始磁头、扇区、柱面,第二字节的01表示的是起始的磁头数,01本
来是十六进制的,化为十进制是1,所以计算出来的起始磁头是1,第三字节和第四字节混合起来表示扇区和
柱面,我们先要将它们化为二进制,分别为00000001和00000000,在计算扇区时只取第三字节后六位即000001,
将六位二进制转为十进制数为1,所以起始扇区用十进制表示就是1扇区了,而柱面的起始位置则用第三字节的
前两位跟第四字节的八位组成共十位的二进制数来表示,即0000000000,计算出来用十进制表的的起始柱面是0。
第五字节0b表示的是分区的类型,有好多种,0b表示的是FAT32,而05表示的是扩展分区,如果修改了分区类型
而系统又不能识别时,就会将该分区隐藏。第六至八字节代表了分区结束的位置,其计算规则跟起始位置的计算
规则是一样的,计算后的结果用十进制表示就是结束于254磁头,63扇区和99柱面的位置。第九至十二字节代表
了本分区前共有几多扇区,它是倒过来计算的,即0000003f,用的是十六进制表示,换算为十进制是63扇区。
25 83 18 00代表了本分区的总扇区数,也是倒过来后再换算为十进制的,即00188325,用的是十六进制表示,
换算为十进制是1606437个扇区。至于对扩展分区,我们也可以通过以上的方法把各种参数导出来。
分区表的同容是有相互联系的,譬如我们可以通过分区的位置而导出分区前有几多个扇区,本分区又
有几多个扇区,至于计算上的问题,最主要是弄清楚硬盘的物理地址如何影射为逻辑地址,从而了解硬
盘通过何种顺序来存储资料。

看到了上面,弄清楚的参数的来源后,我们就要就要试试操作分区表,我们决定进行分区有参数的修改,
包括以下几个方面,看看电脑会给我们些什么警告:
1、 抹掉55aa有效标志字。
55aa是分区表的有效标志,如果把55aa抹掉了,分区表就表成了没有效了,如果有分区软件查看硬盘,
会看到没有像没有分过区一样,从C盘启动会出现“Invalid paration table”的错误信息。
2、 交叉分区。
交叉分区是指后一个分区项跟前一个分区项有一部分区域是重叠的,这种分区方法可以使硬盘容量虚增,
而且分区后可以正常格式化。
3、 间隔分区。
所谓间隔分区是前一个分区项跟后一个分区项在位置上不连续,事实上这种分区方式是可以的,而且也很
有作用,对于一部分致命的坏扇区,已经确认是不能修复的话,可以使用这种分区方式,而不需用到分了
区后再屏蔽。
4、 连续分区,但修改容量参数。
我们可以看到分区表当中的后八位是跟分区的容量大小有关的,如果我们改变这八位,后果会点样呢,
实践证明了在format下,并没有认到更大的容量,但在fdisk下,显示就会乱七八糟,但分区还是可以正常
使用的。
W32API 2003-09-03
  • 打赏
  • 举报
回复
可以接收部分内容,楼主还是自己去看看相关资料
qtext 2003-09-02
  • 打赏
  • 举报
回复
不能说扩展分区或主分区有没有文件分配表,严格的说应该是逻辑驱动器有没有文件分配表,最好将分区与驱动器的概念分开,两者并不是完全等同,分区中主要包含了驱动器,另外还有63个隐含扇区,所有驱动器都有文件分配表,分区是指磁盘分成的几个部分,此时还没有OS的任何成份,根本谈不上什么文件分配表,文件分配表是与OS联系在一起的,也即只有驱动器才有文件分配表。
aaa2520 2003-09-02
  • 打赏
  • 举报
回复
没有文件分配表怎么管理文件啊?
W32API 2003-09-01
  • 打赏
  • 举报
回复
扩展分区没有。
逻辑分区肯定有
aaa2520 2003-09-01
  • 打赏
  • 举报
回复
那每个逻辑分区有没有自己的文件分配表???
W32API 2003-09-01
  • 打赏
  • 举报
回复
MBR 记录主分区表,扩展分区采用链表形式实现
qtext 2003-08-31
  • 打赏
  • 举报
回复
分区表不是只有一个,除mbr中有第一个分区表外,如果还有d,e,f,则相应还有第2、3、4
个分区表,逻辑驱动器的信息正是记录在这第2、3、4张分区表中,一般每张分区表中的
第一个分区项,记录了本分区逻辑驱动器的信息,第二分区项记录了下一张分区表的位置,
这样通过遍历这条链就可访问所有逻辑驱动器。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧