无忧启动论坛

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

[求助] TF卡应该怎么在bootice 0.9选择优先驱动器或分区号

[复制链接]
跳转到指定楼层
1#
发表于 2012-1-28 19:21:22 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
硬件:SSK 多功能读卡器,8G金士顿TF卡
软件:bootice 0.9,grub4dos  0.4.4

我用 bootice 0.9 把TF做成了启动盘。
选择的是写入mbr,类型用grub4dos 0.4.5b mbr。
配置grub for dos里,选择的是:
禁止搜索软盘上的grldr。
禁止引导分区表无效的原主引导记录(通常是一个操作系统的引导扇区)
然后把grub4dos 0.4.4的两个文件:
grldr
menu.lst
复制到TF卡根目录下。

做完后,启动出错,错误如下:
try (hd0,0): ntfs5: ntfs5
try (hd0,1): extended:
try (hd0,2): invalid or null
try (hd0,3): invalid or null
try (hd0,4): fat32:
try (fd0): non-ms:skip

try (hd0,0): ntfs5: no grldr
try (hd0,1): extended:
try (hd0,2): invalid or null
try (hd0,3): invalid or null
try (hd0,4): fat32: no grldr
try (fd0): non-ms:skip
cannot find grldr in all drives. press ctrl+alt+del to restart.

我晕啊,怎么找不到TF卡。
我接下来把grub4dos的两个文件复制到硬盘的c盘,可以正常启动到grub4dos的菜单了。

我晕啊,看来是配置grub for dos 时
要加上以上两项:
优先引导的驱动器
优先引导的分区

可是这两项的值默认都是255,这我就不明白该怎么改了。

怎么查看自己的读卡器在启动时应该是那个驱动器?值应该是多少?

我安装linux时,看到自己的读卡器在设备中是SDC4,u盘在设备中是SDB4,这个有帮助吗?
41#
 楼主| 发表于 2012-2-16 00:20:11 | 只看该作者
我也觉得平板电脑上的读卡器不是很好,应该是杂牌的读卡器。
回复

使用道具 举报

40#
发表于 2012-2-15 07:46:01 | 只看该作者
呵呵,

这种BIOS也不能说不爽。最起码,不点在时空帖子中设想的3个优点,
在这种BIOS环境下,理论上可行。

RMB是USB命令集规范、USB启动规范中的定义,倒也不是AMI BIOS的发明。
----------------------------------------------------------------------------

附带说一下,无论是LZ的读卡器,还是chenall的卡碟机,做DISK启动盘
都是不太合适的(chenall的卡碟机做USB-DVD启动合适)。原因,ubootchk
已经指明了:它们的固件不符合USB启动规范要求,未能正常提供物理
(固件)CHS。这个东西对(引导软件要用的)BIOS INT13读结果影响很大。

[ 本帖最后由 wuwuzz 于 2012-2-15 08:05 编辑 ]
回复

使用道具 举报

39#
发表于 2012-2-14 08:57:28 | 只看该作者
原帖由 wuwuzz 于 2012-2-14 08:03 发表 OK! 基本上可以下结论了。情况是这样:主板/PC厂商从AMI那里拿到BIOS源码后,可以根据自己产品的需要对模块选项进行调整,重新编译,生成定制版BIOS。(如果不对选项进行调整,则编译时按默认选项值进 ...
碰到过这种bios,的确很不爽.好在g4d很强大,手动折腾下也能进PE.这个“RMB”太形象了,简直是“人民币”的代称.…
回复

使用道具 举报

38#
发表于 2012-2-14 08:03:07 | 只看该作者
OK! 基本上可以下结论了。

情况是这样:

主板/PC厂商从AMI那里拿到BIOS源码后,可以根据自己产品的需要对模块选项进行调整,
重新编译,生成定制版BIOS。
(如果不对选项进行调整,则编译时按默认选项值进行)。

AMI BIOS源码中对USB存储设备FD/HD的判定,一般(默认)情况下,是以扇区数界限
(530MB)为主,以MBR/PBR的合法性
为辅,综合进行。

但是,如果激活了“检查移动介质位(RMB)”编译选项,则判定规则就发生了极大变化。
扇区数界限、
MBR合法性均退居为次要因素,RMB的情况为最优先因素。

在这种情况下,只要是移动(介质)盘,无论扇区数(容量)是多大,均先行设为FD。
反之,如果是固定(介质)盘,则先行
设为HD。很巧,LZ所用版本的AMI BIOS就是这样。
这就是秘密。


----------------------------------------------------------

附:BIOS中相关汇编源码片段摘录

...

USB0042 - USB storage devices classfication depend on RMB bit.
; Set "USB_STORAGE_DEVICE_RMB_CHECK" this token On to enable this
; function. RMB will be used to distinguish hardisk.

....

IF MKF_USB_STORAGE_DEVICE_RMB_CHECK
    test    BYTE  ...        ;Check RMB status
    jnz    deviceRemovable
    mov    wForceEmulationType, (USB_EMU_HDD_ONLY SHL 8) + USB_MASS_DEV_HDD
...
回复

使用道具 举报

37#
 楼主| 发表于 2012-2-13 22:35:30 | 只看该作者
工具:

hp格式化工具,论坛里的。

金士顿8G。

测试结果:

A:>

在以前的装机测试过程中,试过winpe的恢复盘,启动到dos下也是A:>。

[ 本帖最后由 redbee 于 2012-2-13 22:39 编辑 ]
回复

使用道具 举报

36#
发表于 2012-2-12 21:55:28 | 只看该作者
#21(MBR分区表)、#35(固件检测)的数据都已经指明了:
TF卡的实际总扇区数为15548416。换算容量为7592MiB。

#35的图3也已经说明,该版本AMI BIOS,AUTO仿真类型,
超过530MB的容量就应该为HD的。

这就证实了我在30#、32#的怀疑。
------------------------------------------------------------------------------
现在需要麻烦LZ做以下针对性测试(不是测TF卡,而是测AMI BIOS USB处理。换U盘来试)

1、要求U盘是>530MB的移动盘  或  <530MB的固定(本地)盘。
>530M的移动盘,一般U盘都易满足这个条件;而< 530M的固定(本地)盘则可能要用量产工具
来做。LZ视情况选择一个即可。当然,2个都做更好,对比看得更清楚。

2、使用HP格式化工具,MS原版IO.SYS、COMMAND.COM,做最简单的DOS启动盘。

看启动后的盘符是A:>还是C:>。
回复

使用道具 举报

35#
 楼主| 发表于 2012-2-12 14:05:56 | 只看该作者
晕,我以为没有人注意这个贴了,几天没来看了。

实验结果:

ubootchk提示错误,共生成三个文件,打包。


ubootchk生成的文件.rar (1.44 KB, 下载次数: 32)


bios里设置如下(是bios自动识别的):





[ 本帖最后由 redbee 于 2012-2-12 16:25 编辑 ]
回复

使用道具 举报

34#
发表于 2012-2-10 08:55:24 | 只看该作者

回复 #32 wuwuzz 的帖子

明白W大的意思了。。。
回复

使用道具 举报

33#
发表于 2012-2-10 07:19:04 | 只看该作者
geometry命令结果不是重点,只是线索。我的目的不是质疑geometry,而是想尽快查明是否有“扇区越界”现象。如果读卡器固件返回的TF卡扇区数 <  MBR分区表中提供的扇区数字,则AMI BIOS会认为MBR非法,这时有可能会把大容量TF卡当FD处理;

如果不是扇区越界,则需要检查其他疑点,如:LZ该版本的AMI BIOS如何处理移动盘、固定盘属性。

总之,是要检查:该版本AMI BIOS为什么会把如此大容量的USB存储设备当FD处理。

这需要LZ提供资料、配合测试。
回复

使用道具 举报

32#
发表于 2012-2-8 20:03:55 | 只看该作者
原帖由 Plantsoot 于 2012-2-8 19:33 发表
“c/h/s=1024/255/63, sector count/size=16450560/512”
16450560个扇区(512),不刚好是7G吗?
16450560 >> 21 = 7


16450560*512/1024/1024=8032.5MiB

1024/255/63 也很奇怪,这种CHS对USB存储设备而言,得恰好是8032.5MiB/8.4GB,
传统INT13的极限才出现,可能性不大啊~

[ 本帖最后由 wuwuzz 于 2012-2-8 20:17 编辑 ]
回复

使用道具 举报

31#
发表于 2012-2-8 19:33:41 | 只看该作者

回复 #30 wuwuzz 的帖子

“c/h/s=1024/255/63, sector count/size=16450560/512”

w大,16450560个扇区(512),不刚好是7G吗?

16450560 >> 21 = 7
回复

使用道具 举报

30#
发表于 2012-2-8 19:13:12 | 只看该作者
看了不点在时空的帖子,追踪到这里来看原帖。LZ这个例子还有更多的研究价值。
-----------------------------------------------------------------------------------
所不同的是,我关心的不是BPB,而是对AMI BIOS的表现感到困惑。
一般情况下,有“8G容量、仿真类型AUTO、看似正常的分区表”这几个条件,AMI BIOS
不该识别成FD。还有秘密未被解开。
-----------------------------------------------------------------------------------

需要LZ进一步提供资料:

1、确认BIOS SETUP中的选项确实不是floppy或Force floppy
2、用ubootchk对“总扇区数”重新检查。

ubootchk的winXP版,因捆绑了linux小工具,杀毒软件可能误报,应忽略该误报
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=191265;

如果不放心,可换用ubootchk的tinycore Linux版检查
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=204820

g4d的geometry数据“c/h/s=1024/255/63, sector count/size=16450560/512”,我表示怀疑。
因为标称8G的卡,按1024计,一般应在7G多,而geometry提供的数据太足量了,不太可能。
回复

使用道具 举报

29#
发表于 2012-1-31 11:23:39 | 只看该作者
chenall在其博客上提到了:卡碟机
启动更简单了,估计兼容性更棒
回复

使用道具 举报

28#
发表于 2012-1-30 19:52:21 | 只看该作者
再补充说几句吧。

USB 盘或者 TF 卡,或者任何别的新型设备,只要主板 BIOS 支持 LBA,一切都迎刃而解。安装 grub4dos 没问题,安装 wee 没问题,安装 DOS 没问题,安装任何软件都没问题。

由于 DOS 不能够识别软盘上的分区表(对于 DOS 来说,软盘没有 MBR,即使有 MBR,DOS 也不认),所以,安装 DOS 的时候,更需要在 MBR 上放置一个 BPB 表。前面你安装 DOS、bootmgr 等失败,皆是因为软盘第一扇区没有 BPB 表所导致。

如果所有的主板都这样(支持 LBA),那么,启动失败的现象将彻底解决,再也不会有 “ 启动失败 ” 这样的事情了。
回复

使用道具 举报

27#
 楼主| 发表于 2012-1-30 18:13:34 | 只看该作者
谢谢不点大神的指点,现在安装了wee,可以启动了。

下面的学习是好好研究一下Wee的配置。
回复

使用道具 举报

26#
发表于 2012-1-30 16:36:27 | 只看该作者
标记:BOOTICE09没有填充BPB
回复

使用道具 举报

25#
发表于 2012-1-30 13:36:29 | 只看该作者
已经都是小菜了,没有什么秘密,全都是因为 BPB 表未填充造成的。

看来 BOOTICE 有 bug,竟然不能填充 BPB 表。你可以向 BOOTICE 的开发者报告 bug。

眼下那你就只好自己手动填充 BPB 表吧。先学 FAT 结构的有关知识,然后就知道怎么填了。

或者你也可以用 grub4dos 自己的 bootlace.com 程序。总之,你自己想办法即可。

BPB 表位于偏移 0x0B 至 偏移 0x59。有时候也说成是从偏移 0x03 到 0x59。我们目前暂且就以 0x0B - 0x59 为准吧。因为目前版本的 grldr.mbr 在偏移 0x02 处有 6 个字节是控制字节,被占用了,不能被 BPB 表覆盖。将来在 grub4dos 0.4.6 中,我们会彻底解决这个问题。

有些失望,因为没有发现任何秘密。

另外,这个主板对软盘也支持 LBA,是一个很不错的主板。应该说是不多见的。

如果所有的主板都这样就好了,那么无论启动 grub4dos,还是启动 wee,就都没有任何障碍了。

顺便说,由于这个主板支持 LBA,你安装 wee 到这个 TF 卡,一样会成功启动的。启动之后,用 (fd0,0) 就可以访问 TF 卡上的文件,这点与 grub4dos 完全一样。

有很多 hex 编辑器也能帮助你填充 BPB 表。试试 winhex 之类的工具也可。



建议你安装 wee63.mbr 吧,BPB 表填充与否,都没关系。无非就是,启动 wee 之后,你用 (fd0,0) 访问你的 TF 卡即可。

用 wee 的命令:

(fd0,0)/grldr

即可启动 TF 卡上的 grub4dos 了。

这样,你就不至于束手无策了,因为进入了 wee 之后,你就不会面对一台死机了,你总是可以在 wee 的命令行下操作。



抱歉,已经解决了的问题,我有可能不再来这个帖子中了。

谢谢你提供详细的资料。我想,这对于其他人,是一个很好的材料。

[ 本帖最后由 不点 于 2012-1-30 14:05 编辑 ]
回复

使用道具 举报

24#
 楼主| 发表于 2012-1-30 13:30:27 | 只看该作者
网上找了下资料,看到个图。


BPB就是指红框内的内容吧。

有关BPB的解释:
BIOS参数记录块BPB(BIOS Parameter Block)表,它的主要作用是:记录了磁盘容量的大小、FAT(文件分配表)的位置和大小、FDT(文件目录表)的位置和大小。

学得有点晕,那我这个8G的TF卡应该怎么整,请不点大神指点。


[ 本帖最后由 redbee 于 2012-1-30 13:35 编辑 ]
回复

使用道具 举报

23#
 楼主| 发表于 2012-1-30 13:11:41 | 只看该作者
测试结果:

重新配置了TF卡,在“配置grub for dos”界面已选取“复制第一个fat主分区的bpb到mbr”。

启动还是不行。

把配置文件复制到硬盘,再开机可以启动,进入命令行。

ls     (fd0,0)/

可以访问软盘上的文件了。

ls     (fd0)/

不能访问软盘上的文件。

显示错误:
Error 17: Cannot mount selected partition

晕,看来BPB没有填充进去。

怎么才能填充BPB?

用cat     --hex      (fd0)+1 命令查看比对,和以前一样,没有变化。

BPB填充成功的话,那几行数据会发生变化?

下午会很忙,要等到晚上才能再测试了。

[ 本帖最后由 redbee 于 2012-1-30 13:15 编辑 ]
回复

使用道具 举报

22#
发表于 2012-1-30 11:56:16 | 只看该作者
非常好。

看到了,你贴出的,是软盘第一扇区。这个扇区,其实是软盘的 MBR 扇区。这个软盘是带有分区表的。它只有一个分区,起始于扇区 0x40。因为前面你已经说过,软盘上的文件系统是 FAT32,因此,你可以在 BOOTICE 安装的时候,选择 “ 复制 BPB ” 之类的选项,将 MBR 上的 BPB 填充。目前,你的 MBR 上的 BPB 是空的。如果 BPB 是空的,那么整个软盘就不可能成为一个合法的 FAT 格式,只有软盘的分区 (fd0,0) 才是合法的 FAT 格式。因此,现在你用

ls     (fd0,0)/

应该可以访问软盘上的文件了。

如果你把 BPB 填充之后,就可以用

ls     (fd0)/

来访问软盘上的文件了。

先说这么多,下午接着分析。

[ 本帖最后由 不点 于 2012-1-30 11:58 编辑 ]
回复

使用道具 举报

21#
 楼主| 发表于 2012-1-30 11:28:55 | 只看该作者


回复

使用道具 举报

20#
发表于 2012-1-30 10:59:08 | 只看该作者
很恐怖,fd0 竟然支持 LBA,却又未能识别。这里面一定有秘密,等着瞧。
回复

使用道具 举报

19#
 楼主| 发表于 2012-1-30 10:51:07 | 只看该作者
指令测试结果:
geometry    (fd0)
drive 0*00(LBA): c/h/s=1024/255/63, sector count/size=16450560/512

ls     (fd0)/
error 17: cannot mount selected partition

root      (fd0)
error 17: cannot mount selected partition

cat     --hex      (fd0)+1
这个分区表和bpb表不会看,但是结尾有55 aa。
分区表和bpb表等会上图。
回复

使用道具 举报

18#
发表于 2012-1-30 09:24:12 | 只看该作者
floppies_orig=1, harddrives_orig=1

意思是,ROM BIOS 认定有一个软盘,一个硬盘。

既然你知道 (hd0) 是你的本机硬盘,那么也就能够肯定,(fd0) 是你的 TF 卡了。

cat --hex (fd0)+1 (测试TF卡是否被认为成软驱)
结果:
Error 1: Filename must be either an absolute pathname or blocklist

很遗憾地,你肯定发生了语法错误,才导致这条出错信息。有可能少了空格,或者多了空格。

既然已经知道 TF 卡是软盘,接下来用

geometry    (fd0)
ls     (fd0)/
root      (fd0)
cat     --hex      (fd0)+1

看看有什么结果?

你这个情况不是 “ 死马当活马医 ”,而是 “ 本来就是活马,但是冰冻起来了,只需解冻 ”。
回复

使用道具 举报

17#
 楼主| 发表于 2012-1-30 00:54:41 | 只看该作者
已经用“简易启动测试器” 4.0 beta6 测试。

结果:
在台式机上,ssk+TF 启动正常。

在平板电脑上,win7环境,启动正常。

顶不住了,明天晚上再来测试。


[ 本帖最后由 redbee 于 2012-1-30 00:58 编辑 ]
回复

使用道具 举报

16#
 楼主| 发表于 2012-1-29 21:30:42 | 只看该作者
已经用微软官方的Windows 7 USB DVD Download Tool制作了tf卡的启动盘,tf卡被程序自动格式化ntfs,经平板电脑测试不能启动。

故障表现为:

系统未死机,键盘灯可以开关,但一直黑屏无显示,左上角有光标闪烁。


按不点大神指点,把配置grub4dos两个配置文件复制到平板电脑硬盘,可以正常启动grub4dos菜单,在命令行下测试以下命令:

map --status 可以列出有多少个软盘和硬盘。
结果:
floppies_orig=1, harddrives_orig=1,floppies_curr=1,harddrives_curr=1
Number of ATAPI CD-ROMs: 0
ram_drive=0x7f, rd_base=0*0, rd_size=0*100000000

root 命令可以显示当前的设备。
结果:
(hd0,0)filesystem type is ntfs, partition type 0*07

geometry 命令可以显示设备的 CHS 信息。
结果:
drive 0*80(LBA): c/h/s=3892/255/63, sector count/size=62524980/512
    partition num: 0, active, filesystem type is ntfs, partition type 0*07
    partition num: 4, filesystem type is fat, partition type 0*0B

(我的平板电脑硬盘是分成两个区,主分区是ntfs,装了win7,逻辑分区是fat32,资料盘)

cat --hex (fd0)+1 (测试TF卡是否被认为成软驱)
结果:
Error 1: Filename must be either an absolute pathname or blocklist


怎么感觉好像没有TF卡的?

[ 本帖最后由 redbee 于 2012-1-30 00:44 编辑 ]
回复

使用道具 举报

15#
发表于 2012-1-29 18:21:55 | 只看该作者
自己动手,丰衣足食,不要用别人的 DOS。

DOS 谁也生产不了,只有微软能生产。别人生产的 DOS,都不是标准的 DOS。

微软有 DOS,何必用别人的?

只有当微软的 DOS 也不行的时候,才考虑别人的。

自己很容易办到的事,不要求助于别人。别人给的,不一定是好的。

相信自己。如果连自己都不相信,那是舍本逐末。

你不是已经试验 bootmgr 了吗?难道也失败了?

记住把 13 楼的命令输出结果贴出来。

[ 本帖最后由 不点 于 2012-1-29 18:24 编辑 ]
回复

使用道具 举报

14#
 楼主| 发表于 2012-1-29 18:05:09 | 只看该作者
那我晚上再试试别的dos看看,我用的是这个dos。

bios之家论坛的HP优盘格式化工具

论坛 › 品牌BIOS技术论坛 › 笔记本 BIOS技术部 › HP优盘格式化工具(破解版)-进纯DOS刷BIOS必备!

因为以前平板电脑升级bios时,要用纯dos环境,用过这个工具,不过那时是用u盘启动,不是用tf卡。

说来也怪,为什么u盘可以启动,但是tf卡不能,多了个硬件,就麻烦了许多,不过也学到了不少新知识。
回复

使用道具 举报

13#
发表于 2012-1-29 16:29:48 | 只看该作者
照你这么说,连 DOS 都不能启动,我倒是觉得真是太不可思议了。你所描述的 DOS,似乎不是微软最好的 DOS。觉得你那个 DOS,是别人做过 “ 手脚 ” 的 DOS,不排除 “ 流氓 DOS ” 的可能性(显示 j 是很奇怪的,似乎从未听说 DOS 显示 j)。你试过微软 win98 的 DOS 以及 XP 的 DOS 吗?XP 创建启动软盘,所制作的 DOS,其实就是 WinMe 的 DOS。

grub 命令行下,用 ls 之类的命令,或者用 tab 补全方法,都可以查看 fd0 等设备。

map --status 可以列出有多少个软盘和硬盘。

root 命令可以显示当前的设备。

geometry 命令可以显示设备的 CHS 信息。

另外,假如你怀疑 TF 卡被识别为软盘,你可以用

cat --hex (fd0)+1

来显示软盘第一扇区,看看这个第一扇区有没有分区表,有没有 BPB 表,有没有结束标志 55 AA。

[ 本帖最后由 不点 于 2012-1-29 16:34 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-17 00:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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