首页| 论坛| 消息
主题:数据恢复基础知识之硬盘容量限制
Manboo发表于 2018-11-07 10:11
,比如说528MB限制,就很容易理解,而说504MB,可能就有点绕舌,还要去想一想,当然,这都是历史原因造成的)。
1.3.2.22.1GB的容量限制
这里分为两个部分,一部分是由磁盘服务的限制造成的,另外一部分是由于磁盘格式造成的,通常我们把前者称为2.1GB的硬件容量限制,后者称为2.1GB的软件容量限制。
1.3.2.2.1硬件容量限制
当时,为了528MB容量限制的问题,人们提出了一些不同的办法,其中一个办法就是将INT13服务的磁头寄存器里没有用到的4位中的高2位保留给柱面数的第11、12位使用。这样,最大的磁头数就是26=64,最大的柱面数就是212=4096。但是,当时的操作系统不使用这种转换方法,而是认为磁头寄存器的所有位数只用来记录磁头数,它采用把柱面数除以某一整数,变成相应的逻辑柱面数、磁头数乘以同一整数,变成相应的逻辑磁头数的方式来进行管理。比如,INT13能正确使用的柱面数为4,096、磁头数为32的硬盘,操作系统在使用时把柱面数除以4(1024个逻辑柱面数),磁头数乘以4(128个逻辑磁头数),可因为上述的BIOS使用磁头数寄存器的高2位记录柱面数,所以就无法记录这样的磁头数。在这种BIOS的机器上使用大于2.1G的硬盘时,可能会在加电自检执行硬盘确认命令并在试图设置CHS值时死机。
1.3.2.2.1.2软件容量限制
第一章里我们讲到了磁道、柱面、扇区等概念,却没有讲过“簇”(Cluster)的概念,这里就先讲讲什么是“簇”。
简单的说,簇就是一个扇区的集合。前面讲扇区时讲到扇区是作为一个整体一次性读出和写入的,它针对的是ATA硬盘控制器,而操作系统在管理文件的时候并不是以扇区为单位进行的,这是因为如果以扇区为单位的话,管理起来不仅系统开销很大,而且效率非常低。比如一个普通的40GB硬盘,约有78,852,915个扇区,系统要记录每一个扇区的使用情况,以及文件存储在哪一个扇区、哪一个扇区没有使用等各种复杂的情况,使用起来效率是很低的,而且也没有必要,因为小于512个字节的文件是很少的,对于大文件来说,一次管理的扇区越多,其数据读写速度就越快,因为管理的单元数据越大,寻道和等待的时间就越少,这样就引入了簇的概念。
系统管理文件时采用把数个扇区“捆”成一个簇的方式进行,而后按照簇来进行操作,文件使用的扇区,在簇方式下就形成了一个个的簇链,一个文件占用一个或多个簇,但至少是一个簇。前面已经说了,对于大文件,簇越大性能越优,但簇越大,可能造成的磁盘空间的浪费也就越多,比如哪怕只有一个字节的数据文件,也要占用一个簇,而一个簇一旦分配给一个文件,在删除该文件之前其它文件就不能再使用这个簇了。那么多少个扇区划分为一个簇呢?如果一个扇区划分为一个簇,那么簇就等同于扇区了,一般是4~64个扇区划分为一簇。每一簇的使用情况由文件分配表(FAT)来进行跟踪记录,早期的FAT为12/16位(软盘及小于16MB的硬盘的FAT为12位),当它处理一簇的最大长度是64个扇区即32,768字节时,最多能处理216=65,536个簇,所以DOS分区的限制就由文件分配表(FAT)决定了。如果将两个数字相乘,就会得到DOS的最大分区界限值是2,147,483,648字节或2,048MB。因此超过这个容量的硬盘,如果使用FAT格式,最大只能识别2.048GB的硬盘容量,大于2.048GB,就只有划分为一个个小于2.048GB的分区才能使用。
1.3.2.33.2GB的容量限制
一些版本的BIOS不能识别超过6322柱面的硬盘,不过这种BIOS比较少见,由于柱面有限制,其最高支持扇区数就是6322x16x63=6,372,576,乘以512Byte扇区容量的话,其最高支持容量为6,372,576x512=3,262,758,912Byte,即3.18GB。
1.3.2.44.2GB的容量限制
当时一些操作系统使用8位寄存器来存储磁头数,这样当BIOS报告硬盘的磁头数等于256(最高容量)时,只有磁头数的最先一位(即0)被系统保存,从而导致硬盘配置错误。一旦硬盘的磁头数是16,柱面数大于8,192(2的13次方,由于后三位寄存器已经被磁头寄存器借用,其实这里牵涉到一个突破528MB容量限制的转换做法的问题,由于这一段比较复杂,在这里就不详细介绍了,我们只要明白有这个限制就够了),系统就无法正常识别了,因此其最大的容量就被限制在了4.2GB=8192x16x63x512Byte。
1.3.2.58.4GB的容量限制
我们已经知道INT13服务的寻址方式最高可以支持8.4GB以下的容量(柱面数、磁头数、扇区数的最大值分别是16,383、16和63,而三者相乘就是8.456GB)。因此,这个容量限制的出现就只是迟早的问题了。所以,这个限制曾经是最常遇到的容量限制。为了解决这个问题,一些厂商定义了新的扩展的INT13服务扩展标准。新的INT13服务扩展标准不再使用操作系统的寄存器来传递硬盘的寻址参数,它使用存储在操作系统内存里的地址包来传递硬盘的寻址参数。地址包里保存的是64位的LBA地址,如果硬盘支持LBA寻址,就把低28位直接传递给ATA界面,如果不支持,操作系统就先把LBA地址转换为CHS地址,再传递给ATA界面。通过这种方式,能实现在ATA总线基础上CHS方
淄博硬盘数据恢复
浏览大图
下一页上一页  (2/3)
回帖(0):

全部回帖(0)»
最新回帖
收藏本帖
发新帖