中国DOS联盟论坛

中国DOS联盟
-- 联合DOS 推动DOS 发展DOS --

联盟域名:cndos.rths.ml  论坛域名:cndos.rths.ml/forum

DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

» 游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助

 

<<   [1] [2] [3]  >>   >
作者:
标题: [讨论] BIOS和分区软件究竟是如何确认硬盘容量的 上一主题 | 下一主题
DOSforever
金牌会员





积分 4594
发帖 2215
注册 2005-1-30
状态 离线
『楼 主』:  [讨论] BIOS和分区软件究竟是如何确认硬盘容量的


这是一个困扰于我已久的问题

我就先从当初的504M容量限制的问题说起,当初超过500M的硬盘出现后许多386、486的机器都不认,后来才知道需要有带LBA寻址模式的BIOS支持才行。从那时起,大容量硬盘在BIOS中选LBA似乎是当仁不让的选择。到后来出现了8G容量的限制问题(中间我跳过一些其它不常见的限制),才知道需要有带扩充Int 13h支持的BIOS才行。注意,从这时候起,我的问题来了。我就以AWARD BIOS为例,在4.5版的情况下,我使用它自己的硬盘参数检测功能,当一个超过8G,比如10G、20G、40G的硬盘,BIOS检测后能给出三种参数:NORMAL模式(我认为其实就是传统的CHS模式),LARGE模式和LBA模式。我想我们大多数人都会毫不犹豫的选择LBA模式,然后分区,格式化,装系统,OK!这都没问题。如果我们的目的只是在于机器可以使用,管它内部究竟是怎么回事,那么我们也不必要来这里了,也没必要讨论这个问题了。

我的问题在于:我曾经试过用其它模式,也可以照常使用,那么是否是现在使用什么模式对硬盘来说是无所谓的呢?如果再仔细比较一下就会发现,三种模式下所能识别出的硬盘容量不是完全一样的,但相差不多,只差那么一点点,这不象以前是有“质”的区别。而且有趣的是,过去能够识别最大容量模式的LBA现在所能识别出的反而最小,而过去所能识别容量最小的CHS模式反倒能识别出最大容量,过去处于中庸的LARGE仍然处于中间水平。那么这个硬盘实际的最大可用容量究竟是多少呢?那个在CHS模式下所认出的最大容量究竟是不是可靠的呢?如果在它这个模式下对硬盘的访问会不会有所损伤呢?由于对这些疑问我始终没有找到答案,所以出于保守起见,我以后一直使用的还是LBA模式,在BIOS给出这三种模式下硬盘参数的同时也默认的推荐是这个模式。此外,在一些品牌机的用户手册中也指导用户使用这一模式,我不知道他们这样做确实是有科学依据的,还是人云亦云不经过调查研究图省事写的。

后来BIOS发展到6.0版的时候情况又发生了新的变化,连手工检测硬盘参数的步骤都省去了,只要接上硬盘开机就能自动识别容量和寻址模式(当然,你也可以手工设定其它模式),而且在BIOS中AUTO方式下自动检测出的硬盘模式和参数都是按照CHS方式的,但奇怪的是自检时所显示的硬件信息概要中所报告的硬盘模式几乎都变成了是LBA?!(特殊情况除外,下面我会说明)那么如此看来似乎LBA应该是唯一的、正确的选择了?按理,硬盘的(最大)容量是固定的,BIOS是根据硬盘固件中的信息来识别硬盘容量的,但好象现在的BIOS都过于“聪明”了,它似乎能根据分区表中的信息再来判断一下硬盘的参数、寻址模式和容量,我说的“再来”是因为BIOS似乎有两次检测,第一次是当你进入BIOS设置的时候可以看到它认出缺省的寻址方式(几乎都是CHS,后来实际变成LBA),而当启动时显示硬件配置信息的时候(不一定就是这时候,只是我们是在这时候看到)它还要检测一次,为什么我要这样说呢,如果你的硬盘是全新的、重新分区的,你是看不出两次变化是有什么意义的,可能认为这种变化只是一个假象,只不过是BIOS“例行公事”。但当你的硬盘在另一台机器上是以CHS方式分区的,再装到这台机器上的时候,你就会看到配置信息中显示的也是CHS方式而不是同样会变成LBA模式。另外,我还曾遇到过这样一种情况:一块4G的老硬盘,在BIOS中认出的确实是4G,但在启动时会变成1G,以后在BIOS中就一直变成1G了,我在BIOS中让它重新检测一下还是1G?!在每次清除CMOS让BIOS重新正确认一遍后,每次启动时又会变成1G?!后来我把MBS清零后就再也没有出现这种怪现象。我虽然不清楚BIOS到底是如何识别硬盘的,但通过上述两个例子,我认为现在的BIOS除了通过固件中的信息外,还会通过启动时在引导OS之前会读取硬盘的分区信息来“智能”地确定硬盘的寻址模式和容量。当然,这些只是我的猜测,到底是怎么回事请熟悉BIOS内部结构的朋友来解答一下。

现在再谈谈分区软件对容量的识别问题,传统的FDISK看不出什么,我先不谈。我现在一般是用DM来分区的,并且通常一直使用带/M参数的手动模式下进行操作,我发现DM和FDISK一样,最小的分区单位也是以柱面为单位的,但奇怪的是我常常碰到用DM分过区的硬盘在FDISK的查看下往往还会显示还有1%的未使用空间,(其实也只不过几兆而已,并不是硬盘容量真正的1%)。所以我一直在想会不会是DM是以LBA模式来识别硬盘的,而FDISK是以CHS来识别的,所以要比DM能多认些扇区?其它的分区软件如PM我估计也是以柱面为单位的。UNIX可以以磁道为单位,LINUX不太清楚。





DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://cndos.fam.cx/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://cndos.fam.cx/forum/viewthread.php?tid=15135
http://cndos.fam.cx/forum/viewthread.php?tid=47663
http://cndos.fam.cx/forum/viewthread.php?tid=48747
2005-10-14 15:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 2 楼』:  

1%的未使用空间是DM未分配完的一柱面容量!



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2005-10-14 15:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4594
发帖 2215
注册 2005-1-30
状态 离线
『第 3 楼』:  

但是为什么DM要保留一柱面呢?
还有一个关键的问题就是到底应该用哪个寻址模式呢?还是随便哪个都可以用?



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://cndos.fam.cx/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://cndos.fam.cx/forum/viewthread.php?tid=15135
http://cndos.fam.cx/forum/viewthread.php?tid=47663
http://cndos.fam.cx/forum/viewthread.php?tid=48747
2005-10-14 16:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
maya0su
中级用户




积分 241
发帖 131
注册 2005-9-28
状态 离线
『第 4 楼』:  

分区软件有二种方式察看硬盘容量,一个是通过BIOS,另一个是直接察看!但是很遗憾的是DM和FDISK都是直接察看的!我说的这些还是不能解决你的疑惑,就是说出来罢了!呵呵……



房东说:这娃是个好孩子!
2005-10-14 16:52
查看资料  发送邮件  发短消息 网志  QQ   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4594
发帖 2215
注册 2005-1-30
状态 离线
『第 5 楼』:  

直接察看?怎么个直接察看,是直接对ATA接口进行访问吗?另外,哪些软件是通过BIOS查看的?你说DM是直接查看的我相信,但FDISK也是直接查看的我倒觉得奇怪了,因为如果你在CMOS中把硬盘设为NONE,DM照样可以认出来,而FDISK却会认为No fixed disk。呵呵,你这一说我的问题更多了

[ Last edited by dosforever on 2005-10-14 at 17:03 ]



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://cndos.fam.cx/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://cndos.fam.cx/forum/viewthread.php?tid=15135
http://cndos.fam.cx/forum/viewthread.php?tid=47663
http://cndos.fam.cx/forum/viewthread.php?tid=48747
2005-10-14 16:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1514
注册 2002-10-18
状态 离线
『第 6 楼』:  

Re dosforever:

  Quote:
新的INT13不使用操作系统的寄存器传递硬盘的寻址参数,它使用存储在操作系统内存里的地址包。地址包里保存的是64位LBA地址,如果硬盘支持LBA寻址,就把低28位直接传递给ATA界面,如果不支持,操作系统就先把LBA地址转换为CHS地址,再传递给ATA界面。通过这种方式,能实现在ATA总线基础上CHS寻址最大容量是136.9GB,而LBA寻址最大容量是137.4GB。

据此来看,你的关于CHS>LBA的言论可能属于经验上的误差,从而影响了你的判断。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-10-15 18:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4594
发帖 2215
注册 2005-1-30
状态 离线
『第 7 楼』:  

我所说的CHS>LBA并不是指它们各自的最大可寻址容量,而是指对同一块硬盘而言它们各自所认出的寻址容量。这也不是我经验上的误差而是BIOS就是这么报告给我的,如果你的BIOS也是AWARD的话(AMI的不太清楚),你现在就可以重新启动一下机器当场进入BIOS设置中看一下,如果你的硬盘比较大,可能看不出有什么区别。下面是我采集到的几个例子,分别为三种模式下所给出的参数和寻址容量,可以看出CHS的最大,而LBA的为最小,BIOS为AWARD 6.0

一块8G硬盘

  Quote:
              Head  Sector  Cylinder  Capacity

CHS            16      63     16708      8623

LARGE       240      63      1113      8616

LBA           255      63      1048      8620

一块10G硬盘

  Quote:
      
              Head  Sector  Cylinder  Capacity

CHS            16      63     19852     10246

LARGE       240      63      1323     10242

LBA           255      63      1245     10241

但奇怪的是,到了60G及以上的硬盘这种区别就不明显了,我想也许是细微的差别不能表示出来罢了。

一块60G盘

  Quote:
      
              Head  Sector  Cylinder  Capacity

CHS            16     255     29437     61496

LARGE       240     255      1962     61482

LBA           255      63      7476     61496





DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://cndos.fam.cx/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://cndos.fam.cx/forum/viewthread.php?tid=15135
http://cndos.fam.cx/forum/viewthread.php?tid=47663
http://cndos.fam.cx/forum/viewthread.php?tid=48747
2005-10-16 13:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 8 楼』:  

未分配完的一柱面容量是分区软件dm引起的,可以用pqmagic将未分配完的一柱面容量移动到最后一个分区里!



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2005-10-16 15:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4594
发帖 2215
注册 2005-1-30
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by qwe1234567 at 2005-10-16 15:12:
未分配完的一柱面容量是分区软件dm引起的,可以用pqmagic将未分配完的一柱面容量移动到最后一个分区里!

我想请问一下,你自己有没有遇到过这样的问题



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://cndos.fam.cx/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://cndos.fam.cx/forum/viewthread.php?tid=15135
http://cndos.fam.cx/forum/viewthread.php?tid=47663
http://cndos.fam.cx/forum/viewthread.php?tid=48747
2005-10-16 16:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 10 楼』:  

我也遇到过这样的问题,用ghost克隆硬盘也有类似的问题!



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2005-10-19 08:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4594
发帖 2215
注册 2005-1-30
状态 离线
『第 11 楼』:  

但是你不能就此就得出结论说这肯定是DM或是ghost引起的,因为我也看到用DM分区,但FDISK没有报告还有1%的未使用空间的。还有,在FDISK认为的还有1%的未使用空间的硬盘上根本就没法使用你所说的用PQMagic把“未分配完的一柱面容量移动到最后一个分区里!”!因为PQMagic根本就没有认为还有未使用的空间!还有一点是,我们现在要讨论的是为什么会产生这一现象,而不是告诉别人有这一现象,因为现象大家都看到了。所以又回到了我前面的问题,即使是DM引起的,但为什么DM要保留一个柱面不分配呢?

虽然没有解决我的疑惑,但是对各位的热情参与我还是表示非常的感谢。希望大家有什么确切的资料或者大胆合理的假设也可以说出来讨论。不要怕说错话,因为论坛就是一个给大家讨论问题的地方。



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://cndos.fam.cx/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://cndos.fam.cx/forum/viewthread.php?tid=15135
http://cndos.fam.cx/forum/viewthread.php?tid=47663
http://cndos.fam.cx/forum/viewthread.php?tid=48747
2005-10-19 09:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lfdjssz
初级用户





积分 125
发帖 72
注册 2005-9-13
状态 离线
『第 12 楼』:  

学习.....................................

2005-10-20 12:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4594
发帖 2215
注册 2005-1-30
状态 离线
『第 13 楼』:  

谁在使用大硬盘的,比如80G、120G、160G的,能否请按照我在7楼写的格式发个参数上来



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://cndos.fam.cx/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://cndos.fam.cx/forum/viewthread.php?tid=15135
http://cndos.fam.cx/forum/viewthread.php?tid=47663
http://cndos.fam.cx/forum/viewthread.php?tid=48747
2005-10-21 16:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 14 楼』:  

我用的是80G。



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2005-10-21 17:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4594
发帖 2215
注册 2005-1-30
状态 离线
『第 15 楼』:  



  Quote:
Originally posted by qwe1234567 at 2005-10-21 17:35:
我用的是80G。

你回这个贴就是为了告诉我们你用硬盘是80G?



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://cndos.fam.cx/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://cndos.fam.cx/forum/viewthread.php?tid=15135
http://cndos.fam.cx/forum/viewthread.php?tid=47663
http://cndos.fam.cx/forum/viewthread.php?tid=48747
2005-10-24 13:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
<<   [1] [2] [3]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转:  



[ 联系我们 - 中国DOS联盟 ]


Powered by Discuz! © 2001-2011