无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 8047|回复: 38
打印 上一主题 下一主题

[转贴] [转自时空不点] 请各位提供实际使用中遇到的 CHS 值,作为进一步开发的依据

[复制链接]
跳转到指定楼层
1#
发表于 2012-5-21 21:41:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原帖地址:http://bbs.znpc.net/viewthread.php?tid=6223

CHS 值能否正确获得,直接影响启动能否成功。但是,困难恰恰就在于此,实际上并不容易获得正确的 CHS 值。

fbinst 能够获得正确的 CHS 值,但要动用 8M 的数据空间,这带来了若干弊端(此处不再详述)。

因此考虑改进 CHS 的探测方法,希望动用尽可能少的数据空间而达到目的。

分两步走:

第一步,统计现有的 CHS 值的变化,作为第一手资料。
第二步,根据 CHS 的变化情况,设计探测程序,完成任务。

现在是第一步,统计 CHS 的变化。

如何统计 CHS 数据?

只需要统计 USB 设备、TF/CF 卡之类的设备在 grub4dos 之下的 CHS 值。当设备支持 LBA 时,无需统计其 CHS 值。内置机械硬盘不需要统计,因为机械硬盘(实际上)都支持 LBA。

不要在虚拟机下统计,而要在真实机器上进入 grub4dos 环境,然后运行 geometry 命令来统计。无论您是如何进入 grub4dos,都是可以的。比如,您是用 GRLDR 进入的,或者是经由 grub.exe 进入的,或者是以 PXE 方式进入的,或者是经由光盘、USB-CDROM 进入的,或者是经由别的软件(syslinux、grub2,fbinst 等)周转之后进入的(此时 grub4dos 不是 “ 第一 ” 启动,而是 “ 第二 ” 启动),这些情况,都是可以的。

统计时,首先确定哪个盘是您的 USB(TF卡、CF卡)设备,通常它应该是 (fd0) 或 (hd0),有时候它是 (hd1)。极少数情况下,也可能是别的,比如 (fd1),(hd2) 之类的。

因此,通常运行
  1. map    --unmap=0:255
  2. map    --rehook
  3. geometry    (fd0)
  4. geometry    (fd1)
  5. geometry    (hd0)
  6. geometry    (hd1)
  7. geometry    (hd2)
复制代码
就够了。其中,前两条命令是撤销所有的 map,目的是避免盘号混乱。那些有 LBA 字样的,即表示该主板的 BIOS 可以用 LBA 模式访问该磁盘。正如前面解释的,您可以忽略它。只需要统计不带 LBA 字样的那些盘号以及相应的 CHS 值。这样就排除了内置机械硬盘的情况了,因为已经把 LBA 的情况排除在外了。

实际上只有 H 和 S 是重要的,C 值没有太大的意义。

您可以把整个 geometry 命令的输出结果抄录在这里,也可以只抄录 H 和 S 的值。但最好把 C 值也带上,它或许也有参考价值。其他的,比如容量以及分区的情况,也可以提供,如果方便的话。

如果您不怕麻烦,您可以把 LBA 的情况也抄录在此,即,把 geometry 命令所显示的全部结果都抄录下来。

如果您发现您将要报告的数据已经有人报告过了,您既可以简单指明  “ 与 XXX 的报告相同” ,也可以重复贴出您的报告,当然也可以省略。

抄录数据的多少,都无所谓,全凭您的爱好和感觉,全凭您的自愿。

只需了解:本次统计的重点是 H 和 S 的值。并且是在 grub4dos 之下的结果,而不是 Windows 或者 Linux 之下的结果。是真实机的情况,而不是虚拟机的情况(即,不需要 QEMU、VMware、VirtualBox、VirtualPC 等等这类虚拟机之下的结果)。



附 rockrock99 的测试结果,以供参考
http://bbs.znpc.net/viewthread.php?tid=6223&page=1#pid50026
联想945GZT-LM主板(fd0)(CHS模式)
朗科U208/8G:C/H/S=973/255/63
SSK/16G:C/H/S=131/255/63

华硕N45SF(hd0)(LBA模式)
朗科U208/8G:C/H/S=973/255/63
SSK/16G:C/H/S=1948/255/63

戴尔N4030(hd0)(LBA模式)
朗科U208/8G:C/H/S=973/255/63
SSK/16G:C/H/S=1948/255/63

备注:同时测试了PXE启动,联想主板直接辨认不到U盘(geometry (fd0)死机),其它两个平台返回结果一致
2#
发表于 2012-5-21 22:11:32 | 只看该作者
看来不点真要制作一个新的方案,取代fbinst了。或者说改良。
回复

使用道具 举报

3#
发表于 2012-5-22 08:38:16 | 只看该作者

回复 #2 Plantsoot 的帖子

谢谢 sratlf,谢谢百草霜。

今天看到有人报告某些笔记本的 VBE 不支持 16 位色深,导致无法进入 grub4dos 的 VBE 图形模式。

说实在话,这也是十分遗憾的一件事。但是,我觉得这个问题不是特别严重。与谁相比不严重?与 “ 启动死机 ” 相比不严重。

fbinst 仍有启动死机的情况,并且不是少数,而是有一定的比例。尽管目前所暴露的都是旧机器,但这也足以引起我的重视。为什么?因为 “ 启动死机 ” 是严重问题。如果这个问题 “ 可以忽略 ”,那就没有什么问题是 “ 不可以忽略 ” 的了。就算我身体差最终可能完成不了,我相信,bean,chenall,roy,yaya,zw2312914 以及其他关心这方面技术的人,也会继续努力的。
回复

使用道具 举报

4#
发表于 2012-5-22 09:01:26 | 只看该作者

回复 #3 不点 的帖子

技术方面我对底层理解的还不够,我就帮忙测试吧。

最近我被生活所累,太忙,有空的时候我利用手上的一大把U盘和一大批机器进行一次测试。
回复

使用道具 举报

5#
发表于 2012-5-22 12:57:15 | 只看该作者

回复 #3 不点 的帖子

严重同意不点的观点,启动死机是最严重问题了,假如死机了就没办法继续下去了
回复

使用道具 举报

6#
发表于 2012-5-23 18:14:39 | 只看该作者
宏基4750G(hd0)
(LBA)c/h/s=60802/255/63
(hd1)某金士顿DT2 4G优盘
c/h/s=488/255/63
回复

使用道具 举报

7#
发表于 2012-5-24 16:46:11 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

8#
发表于 2012-5-24 17:07:18 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

9#
发表于 2012-5-24 19:45:03 | 只看该作者
对于 grub4dos 来说,C 值无用。相当于说,总扇区数无用。

不要看重 C 值以及总扇区数的值。它们仅仅只有参考的意义。

geometry 显示的 C 值和 总扇区数,也都不必是正确的。
回复

使用道具 举报

10#
发表于 2012-5-24 22:02:37 | 只看该作者
原帖由 <i>不点</i> 于 2012-5-24 19:45 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2448834&ptid=210596" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
对于 grub4dos 来说,C 值无用。相当于说,总扇区数无用。<br />
<br />
不要看重 C 值以及总扇区数的值。它们仅仅只有参考的意义。<br />
<br />
geometry 显示的 C 值和 总扇区数,也都不必是正确的。
<br />
是否应该提醒一下大家,LBA模式的就不用提报告了?
回复

使用道具 举报

11#
 楼主| 发表于 2012-5-29 13:43:15 | 只看该作者
Lenovo ThinkCenter 6155t test report

UFD1: it1167 32G usb-hdd

    fd0:

        notice: umber of heads for drive 0 tund from 255 to 7.
        driver 0x00(CHS): C/H/S=3448/7/63, Sector Count/Size=55377407/512
   
    then down, manually shut down.

    fd1: the same situation to fd0
   
    hd0: drive 0x80(LBA): C/H/S=1004/255/63 Sector Count/Size=16129260/512

    hd1: drive 0x81(LBA): C/H/S=60802/255/63 Sector Count/Size=976784130/512

UFD2: is902 16G usb-cdrom

    fd0: drive 0x00(CHS): C/H/S=1/1/18 Sector Count/Size=18/512

    fd1: not exist

    hd0: drive 0x80(LBA): C/H/S=60802/255/63 Sector Count/Size=976784130/512

    hd1: drive 0x81(LBA): C/H/S=1023/255/63 Sector Count/Size=16434495/512

UFD3: cbm2096 8G usb-hdd

    fd0: drive 0x00(CHS): C/H/S=1/1/18 Sector Count/Size=18/512

    fd1: not exist

    hd0: drive 0x80(LBA): C/H/S=207/255/63 Sector Count/Size=3325455/512

    hd1: drive 0x81(LBA): C/H/S=60802/255/63 Sector Count/Size=976784130/512

    hd2: drive 0x82(LBA): C/H/S=819/255/63 Sector Count/Size=13157235/512

UFD4: sm3252 16G usb-cdrom,

    fd0: drive 0x00(CHS): C/H/S=1/1/18 Sector Count/Size=18/512

    fd1: not exist

    hd0: drive 0x80(LBA): C/H/S=60802/255/63 Sector Count/Size=976784130/512

    hd1: drive 0x81(LBA): C/H/S=1559/255/63 Sector Count/Size=25045335/512
回复

使用道具 举报

12#
发表于 2012-5-29 19:03:46 | 只看该作者
fd0:
        notice: umber of heads for drive 0 tund from 255 to 7.
        driver 0x00(CHS): C/H/S=3448/7/63, Sector Count/Size=55377407/512

这个软盘很重要。BIOS 提供的 H 值 255 是错的,然后,grub4dos 把它纠正为 7。

但 7 也是很变态的一个数值。不太可能有这样的参数。

这个软盘大有文章可做。你留下它,今后必有大用。你能确定这个软盘是真的存在吗?即,它代表 u 盘的某个分区吗?

怀疑根本没有这个软盘,而是用来破坏 grub4dos 运行的。你也说,它导致了死机。


fd0: drive 0x00(CHS): C/H/S=1/1/18 Sector Count/Size=18/512

这个盘也很重要。它竟然只有 18 个扇区!而且 H 只有 1!好像也是用来破坏 grub4dos 或者破坏某个别的开源软件的。

既然这次它没死机,你可以试着用

  1. cat    --hex    (fd0)+18
复制代码


看看能否显示出扇区数据。
回复

使用道具 举报

13#
 楼主| 发表于 2012-5-29 19:42:47 | 只看该作者

回复 #12 不点 的帖子

这类机器还有很多  公司台式机都是联想think center 6155系列的

软盘实际上不存在  没有软驱  也不是u盘的某个分区  我的u盘都是量产的usb-cdrom或者fixed类型的usb-hdd  没有usb-zip

cat --hex (fd0)+18

明天贴下结果  已经下班到家了
回复

使用道具 举报

14#
发表于 2012-5-29 20:00:29 | 只看该作者
好的,那已经明白了。那软盘正是用来破坏开源软件运行的。

这就是一个例证,启动时避免自动搜索或访问软盘。因为自动访问软盘,就有可能掉进陷阱。

只能在命令行状态下,由用户自己手动访问软盘才安全。此时死机也不怕,因为是在命令行,用户只要按机器上的 Reset 按钮重启就行了。

自动的程序永远不要去碰 (fdX) 这样的软盘。
回复

使用道具 举报

15#
 楼主| 发表于 2012-5-29 20:02:22 | 只看该作者
Lenovo ThinkPad T510 test report

UFD1: it1167 32G usb-hdd

     fd0: driver 0x00(CHS): C/H/S=1/1/1, Sector Count/Size=1/512

     fd1: the same to fd0
     
     hd0: drive 0x80(LBA): C/H/S=1004/255/63 Sector Count/Size=16129260/512

     hd1: drive 0x81(LBA): C/H/S=20673/240/63 Sector Count/Size=312575760/512

UFD2: is902 16G usb-cdrom

     could not boot from usb-cdrom

UFD3: cbm2096 8G usb-hdd

     fd0: driver 0x00(CHS): C/H/S=1/1/1, Sector Count/Size=1/512

     fd1: the same to fd0

     hd0: drive 0x80(LBA): C/H/S=207/255/63 Sector Count/Size=3325455/512

     hd1: drive 0x81(LBA): C/H/S=20673/240/63 Sector Count/Size=312575760/512

UFD4: sm3252 16G usb-cdrom

     fd0: driver 0x00(CHS): C/H/S=1/1/1, Sector Count/Size=1/512

     fd1: the same to fd0

     hd0: drive 0x80(LBA): C/H/S=20673/240/63 Sector Count/Size=312575760/512
回复

使用道具 举报

16#
 楼主| 发表于 2012-5-29 20:05:01 | 只看该作者

回复 #14 不点 的帖子

已经在避免了  默认只在chpu四个设备上查找  忽略软驱
回复

使用道具 举报

17#
发表于 2012-5-29 20:32:57 | 只看该作者
C/H/S=1/1/1

好狠毒啊!连 S 也竟然敢是 1,比历史上最小的 S=8 还要小!这样一来,grub4dos 内置的磁盘几何参数自适应代码肯定失败。
回复

使用道具 举报

18#
发表于 2012-5-30 09:27:15 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

19#
 楼主| 发表于 2012-5-30 12:05:53 | 只看该作者

回复 #12 不点 的帖子

今天试了下  执行 cat --hex (fd0)+18  会直接报 error25: disk read error
回复

使用道具 举报

20#
发表于 2012-5-30 16:54:24 | 只看该作者
测试了三个U盘,在同一个机器上面进行测试,结果所有的都支持LBA
U盘被识别为 hd2

drive 0x82(LBA): c/h/s=429/255/63 sector count/size=6902784/512

986/255/63   15840090/512
64/255/63  1028160/512
回复

使用道具 举报

21#
发表于 2012-5-30 17:24:24 | 只看该作者

回复 #20 sgw888 的帖子

谢谢。

补充说明,提醒各位注意:如果 U 盘被识别为 hd2,那么你不是从 U 盘启动的。

当你是从 U 盘启动时,U 盘通常只能识别为 fd0 或 hd0,不会是别的。

因为大家通常都是用 U 盘来维修电脑,所以,U 启的情况更重要一些。
回复

使用道具 举报

22#
发表于 2012-5-30 17:29:19 | 只看该作者
原帖由 sratlf 于 2012-5-30 12:05 发表
今天试了下  执行 cat --hex (fd0)+18  会直接报 error25: disk read error


去读时失败。读不出来。说明这软盘实际上也就相当于根本不存在。

幸好还没死机。我们不怕 disk read error,怕就怕死机。只要不死机,则出现任何消息都是好消息。
回复

使用道具 举报

23#
发表于 2012-5-30 22:08:21 | 只看该作者

回复 #22 不点 的帖子

看了楼上几个帖子,列举的变态数值是否量产导致的?估计不是BIOS的错
回复

使用道具 举报

24#
发表于 2012-5-30 23:29:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

25#
发表于 2012-5-31 09:05:11 | 只看该作者
回复 #20 sgw888 的帖子

谢谢。

补充说明,提醒各位注意:如果 U 盘被识别为 hd2,那么你不是从 U 盘启动的。

当你是从 U 盘启动时,U 盘通常只能识别为 fd0 或 hd0,不会是别的。

因为大家通常都是用 U 盘来维修电脑,所以,U 启的情况更重要一些。


pxe 启动的. 我会继续测试U启的情况是否有变化.
回复

使用道具 举报

26#
发表于 2012-5-31 09:19:14 | 只看该作者

回复 #25 sgw888 的帖子

PXE 启动,尚能识别 U 盘,并支持 LBA。这样的电脑 BIOS 确实值得称赞。

这就有一个好处了:万一 PXE 启动有缺陷,还可以在 PXE 启动后临时转到 U 盘上,启动 U 盘的 PE。

记得 zhaohj 的一台机器在 PXE 启动后,居然本地硬盘都无法访问了!

顺便说,PXE 启动时,一个很普遍的问题是,PXE 自身的代码占用了大量的常规内存空间。

最近的一两个新版的 grub4dos 在屏幕顶行能够显示常规内存的占用情况。你能够看到 PXE 启动后常规内存量减少的情况。

因此,如果有兴趣,你也可以顺便报告一下 PXE 启动后看到的常规内存量。这样就可以确切地知道,你的这个 BIOS 究竟有没有更出色的表现。

你也可以说说它的品牌、型号、价格、购买日期等信息,供别人参考。
回复

使用道具 举报

27#
发表于 2012-5-31 10:12:52 | 只看该作者
pxe 启动 显示如下:  (备注: 加载了中文字库)
0.4.5 c 2012-3-22 Mem: 638k/766M/0M,End 355e2f

另外,直接从U盘启动GRLDR测试了,好像没有差别,只测试了两个U盘.
0x80(LBA): 64/255/63  1028160/512
429/255/63 6902784/512

但有个非常奇怪的现象: 测试第二个U盘的时候,启动过程中,我按C进入命令行以后一切正常,但是如果不按C,让G4D自动寻找菜单之后结束(我没有放菜单MENU.LST),我再输入HELP等命令的时候,提示无效命令,并且后面紧接着显示一大堆的字符,过会,我放上菜单试一下,有可能是硬盘上的MENU.LST的缘故,暂时不能确定.
回复

使用道具 举报

28#
发表于 2012-5-31 10:19:44 | 只看该作者
再次测试,确认不是菜单的问题.
放上menu.lst 之后,可以找到菜单,我只写了一个菜单
title command
commandline
进入命令行之后,输入 help 出错,提示无效命令,后面是满屏的 h字符. 别的命令也无效.
回复

使用道具 举报

29#
发表于 2012-5-31 10:22:01 | 只看该作者

回复 #27 sgw888 的帖子

你的 grub4dos 版本太旧,无法显示真正的 PXE 常规内存占用。请用 5 月 22 日的(或者以后的)。

应该比 638K 低很多,估计 PXE 要占用 100K 左右。PXE 占用之后,用户可以自由使用的常规内存就只有 538K 左右了。

通常,同一个主板识别同一个 U 盘,应该都是采用一样的几何参数、一样的模式(LBA 模式或者 CHS 模式)。
回复

使用道具 举报

30#
发表于 2012-5-31 10:23:32 | 只看该作者

回复 #28 sgw888 的帖子

这搞不懂。你自己先研究吧。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-9 20:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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