无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4575|回复: 24
打印 上一主题 下一主题

[请教]硬盘的一些特殊扇区[已解决]

[复制链接]
跳转到指定楼层
1#
发表于 2008-7-4 11:06:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想对启动分区有一个较深的了解,在此就拿硬盘来请教下,以1主分区,1扩展分区,2逻辑分区为例

主分区内的装有XP系统,逻辑1分区装有linux系统,逻辑2分区为其交换分区

硬盘的存储顺序是扇区-->磁道-->柱面

用WINHEX得知:
每个分区间距为一个磁道
问题1:这种分区间距作用是什么?

特殊扇区:1、在0柱面0磁道1扇区为bootsector(除此外整个磁道为空,有点分区间距的味道)  
               2、主分区第一扇区为XP引导扇区
               3、逻辑1分区第一扇区为Linux引导扇区
               4、逻辑2分区第一扇区中只存在分区表                        
问题2:系统分区的引导扇区是不是就只占1个扇区,那么除这个扇区外的整个磁道用来干什么?
问题3:从XP来看,它是用NT LOADER引导的,从ntldr开始,但ntldr并不是一个扇区能装得下的,与问题2关联
问题4:每个分区的数据存储是从0磁道1扇区之后还是从1磁道1扇区开始,如果从后者开始,那不是有整个磁道用于引导信息或其它非数据信息的存储?
以上四个问题的关联性太大,我想了很久才这样表达出来,希望解答者能看懂(- -)!
问题5:有的引导文件为什么有2KB的限制呢

[ 本帖最后由 yjfok961 于 2008-7-4 06:41 PM 编辑 ]
2#
发表于 2008-7-4 11:20:08 | 只看该作者
我可能可以理解一两个问题:

并不是每个分区前都有间距的,这个间距就是隐藏扇区,正常为一个磁道63扇区,
0磁道一般也是63个扇区,一般的MBR占一个扇区,恢复类的程序,也有占几个扇区的,另外的一般都为空着

扩展分区中也有隐藏扇区,第一扇存放逻辑分区链,剩下的也是空的。

如果末尾还有主分区,那么将没有隐藏扇区,它与0磁道**用

交换分区在LINUX中,一般都不用分太大,另外分区引导扇还有很多字节表示意思的,比如跳转标志,BPB,执行代码,值等。
回复

使用道具 举报

3#
发表于 2008-7-4 12:05:25 | 只看该作者
有几个要点:
1、分区是以整数条磁道来划分的。
2、扩展分区不必有引导功能。
3、主分区表——扩展分区表——逻辑盘可以看成一棵树

那么分析起来就比较简单了
1、0磁道不属于任何分区,它占一整条磁道是应该的。所以有间隙。
2、主分区应该没被当成类似MBR的扩展,通常来说是没有下一级分区的,另外它里面需要有分区引导程序和BPB,对于整棵树来说它相当于叶子,分区引导扇区属于该分区的一部分。所以可以没有“间隙“。
3、逻辑盘(我一般不喜欢叫它为逻辑分区,感觉酱紫不利于理解)也是叶子,它同样有BPB,同样是逻辑盘的一部分。所以可以没有“间隙“。
4、中间的扩展分区不需要有引导功能和BPB,它属于树枝和树干,它的分区表项一个指向上一级分区,剩下的指向下一级分区,总起来说只相当于节点的功能,它不应属于它的任何下属分区,也占一整条磁道。所以有间隙。

其实作为树根、树枝、树干的MBR和扩展分区来说,保留一定的空间是完全有必要的,随着硬盘容量的不断扩大,分区表总有一天会无法用来表示那么大的容量。事实上GPT格式的分区就已经抛弃了原有的分区表架构,采用了整个扇区来表达。VISTA的>2T的分区据说采用的是混合分区表的架构(俺猜测就是使用两条或更多的分区表项来表示一个分区,但具体格式安还没了解到,估摸着扩展的那一部分应该是以00开头)。

提醒:做一键还原应该在MBR后面跳开一定数量的扇区,留有一定的向后兼容性。否则新的架构一出台就会全废了:)这一点蛙兄的那个程序做得比较好。只占MBR无疑是最安全的。

还有:
2K大小问题,原因很简单,因为光盘每个扇区的大小是2K*^_^*
引导扇区不一定是只占一个扇区,比如NTFS分区的引导扇区就占了16个扇区。

[ 本帖最后由 netwinxp 于 2008-7-4 12:27 PM 编辑 ]
回复

使用道具 举报

4#
发表于 2008-7-4 12:51:43 | 只看该作者
不错的资料。收下了 学习一下
回复

使用道具 举报

5#
 楼主| 发表于 2008-7-4 13:58:20 | 只看该作者
我想我大概能了解了
---------------------------
bootsector       0磁道
---------------------------
主分区
--------------------------
扩展分区1          0磁道
-------------------------
逻辑盘1
-------------------------
扩展分区2         0磁道
-------------------------
逻辑盘2
-------------------------
以如今来说由于主分区表的限制只能定位4个主分区;如果有扩展分区的话,就只能定位3个主分区和1个扩展分区,以后的扩展分区就以这个扩展分区来定位,那么理论上可以N个扩展分区(如果盘符够用的话)
对于那个树的理论挺好的,这样可能更形象
主分区表(枝干)-------扩展分区表(枝干)
      |                                |
  主分区(叶子)           逻辑盘(叶子)
对于枝干为什么会占1个磁道,我想其实可以不必占这么多,但如果从以后扩展的角度的话,就有这个必要吧

PS:
(1)盘符的定义就只能是A,B,C。。。吗?如果换下不是可以定义更多的逻辑盘,也就可能会突破只能有1个扩展分区的限制吧(分区表结构或大小变掉,那另当别论)
(2)对于BPB结构也能给我解释下吗?那个分区引导程序应该包含在BPB里面吧,网上好像把MBR可能算进去了,是不是应该叫DBR
(3)能不能将蛙兄的一键还原原理跟我讲下,或标个地我自己去看。因为对于0磁道中其它空间的应用还不是很了解。

[ 本帖最后由 yjfok961 于 2008-7-4 02:25 PM 编辑 ]
回复

使用道具 举报

6#
 楼主| 发表于 2008-7-4 14:00:26 | 只看该作者
嗯,写这么多都忘说声谢谢了,非常感谢NETWINXP版主!!!!!
虽然阿文说的没头没尾但也同样要谢下
回复

使用道具 举报

7#
发表于 2008-7-4 14:16:58 | 只看该作者
基本上论述正确,只是还有点小错误:
1、1各扩展分区最多可以拥有3个下属扩展分区和或逻辑盘(形象滴说就是每个树干<你可以把指向上一级的看成树干>可以长3个树枝和或叶子<树根上可以长4个>)
2、逻辑盘本身并没有盘符的说法,盘符是操作系统分配的。
3、你的那个可能是1个主分区( “根叶子”)和1个扩展分区(“树干”),“树干”下面有两片“叶子”。
------------------------------
0磁道(MBR、主分区项、扩展分区项)
------------------------------
1磁道(DBR、BPB和其他)
------------------------------
x磁道(指向0磁道的项、指向linux盘的项、指向交换分区的项)
------------------------------
y磁道(liunx分区引导代码、BPB和其他)
z磁道(linux交换分区BPB和其他)
=======================
蓝色部分可以被分配盘符,按流行的说法就称为卷,我们这里把它看成“叶子”

另外注意一点,操作系统是根据逻辑盘所提供的BPB来访问该分区数据,并不需要依靠主分区表来定位。操作系统只是在分配逻辑盘盘符的时候才访问主分区表和扩展分区表链。

蛙兄的一键还原:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=124985&extra=page%3D1&page=1
阿文的一键还原:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=119734&extra=page%3D1&page=1

[ 本帖最后由 netwinxp 于 2008-7-4 02:46 PM 编辑 ]
回复

使用道具 举报

8#
发表于 2008-7-4 14:23:18 | 只看该作者
原帖由 yjfok961 于 2008-7-4 01:58 PM 发表
我想我大概能了解了
---------------------------
bootsector       0磁道
---------------------------
主分区
--------------------------
扩展分区1          0磁道
-------------------------
逻辑 ...

你已经了解不少了,第一主分区是比较特殊的,它与主引导扇所构成的形式,很类似于逻辑磁盘与分区链表之间的结构,也就是在分区引导扇前面,都有一个所谓“间距”(很少见到此提法),该“间距”有63个扇区,其头部扇区都有分区表结构,只不过主引导扇上的分区表是根而已,其他链表均发生于此并形成单链表结构,05和0F属性的分区表项就代表其后还有分区链的存在。对于其他主分区,其结构就没有“间距”了,由主分区表项指向的就是分区引导扇(DBR),引导扇后面紧接着就是磁盘的组织结构了,DBR具有启动引导的功能,它能够解决对操作系统初始引导文件的寻址和装入运行工作,我的一键引导程序的任务,就是识别和装入不同的分区引导扇,再往后引导操作系统就是分区引导扇程序的事了。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=124985&extra=page%3D1

[ 本帖最后由 lvyanan 于 2008-7-4 02:26 PM 编辑 ]
回复

使用道具 举报

9#
 楼主| 发表于 2008-7-4 17:51:08 | 只看该作者
原帖由 netwinxp 于 2008-7-4 02:16 PM 发表
基本上论述正确,只是还有点小错误:
1、1各扩展分区最多可以拥有3个下属扩展分区和或逻辑盘(形象滴说就是每个树干可以长3个树枝和或叶子)
2、逻辑盘本身并没有盘符的说法,盘符是操作系统分配的。
3、你的那 ...



1个扩展分区最多可以有3个下属逻辑盘,这怎么理解,不是应该对应1个逻辑盘的吗
对于那个linux分区,难道其与swap分区共用一个扩展分区?
那三个逻辑盘共用一个扩展分区的例子呢


蛙兄和阿文的一键还原我会去研究下的,谢谢
回复

使用道具 举报

10#
发表于 2008-7-4 18:00:56 | 只看该作者
扩展分区表和主分区表架构一模一样,只是不带MBR。
=====下面的说法有错误==============
分区表是不是有4个项,扩展分区所占的那个磁道里面也有一个类似分区表的架构,而且可以扩展很多层,每层扩展分区表项的第一条指向上一级的扩展分区表所在的位置,剩下3条指向下一级,到了逻辑盘就没有再往下分了,我们把它看成“叶子”,所以说每个扩展分区表可以有3片“叶子”和或“树枝”。
其实扩展分区可以有很多的“叶子”,只不过每一层的“叶子”和“树枝”总和不超过3。
假设你用FDISK分,那主分区表里面只占两项,主分区只有一个盘,但扩展分区却可以有很多个盘,这个就是例子。
来张图更容易表示清楚:

[ 本帖最后由 netwinxp 于 2008-7-7 11:32 PM 编辑 ]

分区架构.PNG (11.25 KB, 下载次数: 54)

分区架构.PNG
回复

使用道具 举报

11#
 楼主| 发表于 2008-7-4 18:32:30 | 只看该作者
嗯,很清楚了,但还有个问题
我们平时分区,是不是先用完一级扩展分区,如果有多个逻辑盘的话,就会引用二级扩展分区
还是直接一级一个逻辑盘,再建个逻辑盘就再一个扩展分区
软件不同分区的方式不同?
回复

使用道具 举报

12#
发表于 2008-7-4 18:36:59 | 只看该作者
通常超过三个逻辑盘才会启用下一个扩展分区,但有的分区软件并不一定按这个规则办事,比如WINPM就是按用户的具体操作来定义。另外,主引导区通常只有一个主分区,如果有多个主分区,最好设定为ms系统不可识别的或隐藏的分区,否则有可能会出点麻烦。

[ 本帖最后由 netwinxp 于 2008-7-4 06:39 PM 编辑 ]
回复

使用道具 举报

13#
 楼主| 发表于 2008-7-4 18:39:39 | 只看该作者
嗯,谢谢,已经相当明白了
回复

使用道具 举报

14#
发表于 2008-7-4 18:42:26 | 只看该作者
其实分区并不难,难的是在逻辑盘中写入引导程序和BPB,还有FAT链表、NTFS链==。
回复

使用道具 举报

15#
 楼主| 发表于 2008-7-4 18:52:12 | 只看该作者
嗯,明白,不过对这些现在还不是很了解,而且这些的内容比较具体,先在网上搜些知识补下
回复

使用道具 举报

16#
发表于 2008-7-4 18:58:42 | 只看该作者
谢谢分享,偶学习了~
回复

使用道具 举报

17#
发表于 2008-7-4 22:05:22 | 只看该作者
嗯,偶也学到了一点点~
回复

使用道具 举报

18#
发表于 2008-7-5 15:56:18 | 只看该作者
  分区表本身是简单的,其实不像上面说的是树,那太复杂了,就是一个链表,每个结点就是一个分区记录。每个分区就是一个数据块,他有自己的结构(分区引导记录、FAT表、数据区)。
  存在隐藏扇区这个现象,我估计一个是历史原因,老BIOS Int13中对磁盘的定义是基于道、面、扇的,而分区必须开始于某面某个磁道的开始也是为了寻道方便,中间空下的扇区就是所谓隐藏扇区了。这些隐藏扇区并没有一个什么标准来规范它们的使用,后来的很多系统软件都用到了它们,但不幸的是常常彼此覆盖。
  分区的内部结构才是真正重要的,这就是所谓的FS(文件系统)了。所有操作系统都是基于文件名来访问磁盘数据的,但定位和读写扇区的就是FS。不同的FS会有不同的设计和性能,最简单的是FAT格式的文件系统,老一点的计算机教材中都有详细的分析,如果做磁盘数据恢复必须要深入了解这些知识。像GRUB、GHOST等工具软件都自己内置了FS支持程序,所以他们可以不依赖操作系统来读写磁盘文件。
  好像有点偏题了。唉, 现在讨论这类问题的人少多了。
回复

使用道具 举报

19#
发表于 2008-7-6 21:34:35 | 只看该作者
原帖由 turboy 于 2008-7-5 03:56 PM 发表
  分区表本身是简单的,其实不像上面说的是树,那太复杂了,就是一个链表,每个结点就是一个分区记录。每个分区就是一个数据块,他有自己的结构(分区引导记录、FAT表、数据区)。
  存在隐藏扇区这个现象 ...

所谓FS实际上就是在分区引导扇的BPB表中定义的结构,了解BPB表的具体定义是最重要的,那些直接访问分区文件的软件,必须依赖BPB参数来对分区中的内容进行操作,可以这样讲,BPB表是打开文件系统的钥匙,有志于底层编程的朋友,要下功夫了解不同文件系统的BPB结构,掌握这把钥匙才行。
回复

使用道具 举报

20#
发表于 2008-7-7 23:43:26 | 只看该作者
原帖由 turboy 于 2008-7-5 15:56 发表
  分区表本身是简单的,其实不像上面说的是树,那太复杂了,就是一个链表,每个结点就是一个分区记录。每个分区就是一个数据块,他有自己的结构(分区引导记录、FAT表、数据区)。
  存在隐藏扇区这个现象 ...

不是的,经测试发现只有ms的FDISK才会看起来像链表,因为它只支持两个分区表项,即每一层分区表只支持“一片叶子”和“一根树枝”,俺前面所说的是有错误的(其实第一项并不指向上一级分区表),扩展分区表和主分区表的架构一某一样,唯一不同的就是不带引导程序,其实每一层的分区表最多可以支持4个分区表项(FDISK对于分区表只支持一个逻辑盘和一个扩展分区,所以给人一种链表的错觉,其实分区表架构是一棵单向多叉树,可惜fdisk只支持二叉树,并且每层只支持“一片叶子”)。
回复

使用道具 举报

21#
发表于 2008-7-8 09:05:25 | 只看该作者
原帖由 netwinxp 于 2008-7-7 11:43 PM 发表

不是的,经测试发现只有ms的FDISK才会看起来像链表,因为它只支持两个分区表项,即每一层分区表只支持“一片叶子”和“一根树枝”,俺前面所说的是有错误的(其实第一项并不指向上一级分区表),扩展分区表和主 ...

多叶子的分区链表我还没见过,理论上讲也是可以实现的,但面对四个以上逻辑盘时,系统将如何安排链表的结构,对此尚不是很清楚,这样的分区逻辑盘会出现两种不一样的结构,一种是前面有间隙的,另一种则没有,这种情况没有单叶子的合理,每一个都是一样的结构,更便于软件处理。
回复

使用道具 举报

22#
发表于 2008-7-18 08:57:07 | 只看该作者
从微软的资料查到win可以支持主分区表三片叶子和一根树干其他层次的只能一片叶子一根树枝。

[ 本帖最后由 netwinxp 于 2008-7-18 08:58 编辑 ]

微软分区2.gif (10.24 KB, 下载次数: 25)

微软分区2.gif
回复

使用道具 举报

23#
发表于 2008-7-20 23:00:17 | 只看该作者
扩展分区表第一项不是指向本身而是指向该层的逻辑盘的引导扇区,第二项指向下一级分区分区表所在的扇区,第三和第四项不使用。扩展分区表所在的扇区和主分区表的架构一模一样(只不过它前面部分没有引导程序,是空的),也占了一整条磁道,但它只有一项相对的主分区(该层真正意义上的逻辑盘)和一项相对的下一级扩展分区,甚至连分区项ID都是和主分区表一样的(不过所有分区表项的激活字节都是00),最后一级扩展分区只有第一项。真正意义上的逻辑盘的引导纪录和软盘上的引导纪录是非常类似的,它不单独占一条磁道,而是和后面的数据区连在一块。

从微软的定义来看,主引导纪录、扩展引导纪录是包含对应的分区表的。

[ 本帖最后由 netwinxp 于 2008-7-20 23:26 编辑 ]

Detail of an Extended Partition.gif (10.18 KB, 下载次数: 25)

Detail of an Extended Partition.gif
回复

使用道具 举报

24#
发表于 2008-7-21 14:52:46 | 只看该作者
不错的文章,讲解详细!
回复

使用道具 举报

25#
 楼主| 发表于 2008-7-21 22:32:07 | 只看该作者
原帖由 netwinxp 于 2008-7-20 23:00 发表
扩展分区表第一项不是指向本身而是指向该层的逻辑盘的引导扇区,第二项指向下一级分区分区表所在的扇区,第三和第四项不使用。扩展分区表所在的扇区和主分区表的架构一模一样(只不过它前面部分没有引导程序,是 ...


嗯,谢谢告知,差点误解了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-22 13:56

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表