无忧启动论坛

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

[原创] (长帖)U启故障关注MBR/BIOS是不够的,更深的病根在固件缺陷。附umsdinfo工具。

  [复制链接]
跳转到指定楼层
#
发表于 2011-3-22 20:14:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

一、U启的初始处理

量产/未量产的U盘、外置USB移动硬盘、外置USB-FDD/CD/DVD/ZIP
驱动器等都属于UMSD(Usb Mass Storage Device,USB海量存储设备)。
部分手机、MP3、MP4具备Usb Mass Storage属性,也视同UMSD。

U启初始阶段的大致处理过程是:枚举、获取描述符信息结束后,BIOS
发固定的SCSI/UFI指令,UMSD固件接收执行,并向BIOS反馈结果,提供
原始数据。比如,报告自己是DISK还是CD/DVD,报告自己的LBA、原始
CHS值(注:这个CHS是固件提供的CHS,与使用fbinst/U+...软件格式化无关)。

但是,如果UMSD固件存在缺陷,不完全支持那些本应支持的指令,则会有多种
可能的错误:
1、严重错误,真死机或挂起等待唤醒;
2、超时响应,假死机或被BIOS忽略;
3、命令执行成功,但提供的原始数据不正确。比如:H/S为空、H/S为0、C>1024。
则BIOS会补BUG--结合其他指令结果,尝试修改--甚至强行硬编码,重新伪造生成
新的CHS,使之看上去更合法。INT 13 F8/F48内部处理实际上就是这样。
......

很不幸,现实中,UMSD固件存在缺陷,不是个别现象,而是普遍现象。这其实
也不十分奇怪。UMSD固件的开发者,很大程度上只考虑了普通存储用途(实现
基本的SCSI指令要求即可),压根就没认真考虑BOOT用途! 其固件开发当然
也就没有遵守USB启动标准--《UMS Spec for bootability》要求,去实现
对BOOT至关重要的UFI指令。


[ 本帖最后由 wuwuzz 于 2011-3-26 08:35 编辑 ]

评分

参与人数 3无忧币 +15 收起 理由
jdcgzb + 5 很给力!
zds1210 + 5 很给力!
zhczf + 5 赞一个!

查看全部评分

推荐
 楼主| 发表于 2011-3-22 20:28:14 | 只看该作者
umsdinfo工具下载

umsdinfo.rar (204.59 KB, 下载次数: 710)


每个USB存储设备,umsdinfo.exe将产生2个TXT文件:

一、info<设备名>.txt文件:
保存UMSD固件执行SCSI/UFI命令输出结果,目前共执行4条命令(4个检查点):
Inquiry查询、Read Capacity读容量、Mode Sense(10)模式感知、Mode Sense(6)。
前三条命令是USB BOOT规范要求必须实现的。


最后一个M6是我增加的。原因是:现实中由于UMSD固件缺陷,M10执行出错的可能性
非常大,需要尝试M6作为补充。


二、err<设备名>.txt文件:
记录SCSI/UFI命令执行成功与否。
执行成功:状态标记good,出错信息为空。
执行失败:状态标记非good,如check condition,会有不同的出错信息,比如:
非法请求。这表示UMSD固件不支持该命令。


根据USB BOOT规范要求,前三条命令除了good,不能有其他出错信息。



[ 本帖最后由 wuwuzz 于 2011-3-26 08:38 编辑 ]
回复

使用道具 举报

推荐
 楼主| 发表于 2011-3-22 20:16:39 | 只看该作者
三、关于umsdinfo

既然UMSD固件缺陷造成种种问题,能不能把相关信息取出,让大家
实际看看呢?当然可以。原理很简单:按U启标准要求,把那些对
BOOT至关重要的命令包发给UMSD,然后把UMSD固件的执行结果
放在TXT文件里。


这些命令包是固定的。发包可以在BIOS下、利用INT13 F50发包服务进行
(buldr增加pss模块重新编译可达此目的);也可以在高版本的Windows
/Linux下手动
进行。甚至还可以不自己发包,而利用USB协议分析软件
查看、捕获OS的
自动发包结果。

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=186560&extra=page%3D1&page=9
这个帖子里,我和不点发生分歧,他提出开发、拿出实际的软件才能服人,
我当时很生气。事后想想,不点的意见也不能说全无道理。我举例用的USB协议分析
软件,虽然结果正确,但杀鸡用牛刀,无关信息多,而且也容易冲突、蓝屏死机
(因为USB协议分析软件要修改Windows底层驱动),还是不适合一般用户使用。



通过反复查找测试,直到最近,我才算是找到比较好的解决办法:

Linux提供了专用于发送SCSI命令包的sg软件,而且sg有windows命令行版本。
我们可以搞个shell前端界面,核心捆绑sg。这样既适合一般用户使用,又
降低了开发难度。最后的成品就是umsdinfo.exe这个小工具(XP/2K环境)。


umsdinfo.exe是个绿色软件,执行后会自动查找本机的UMSD,用户只要选择一下,
umsdinfo.exe就会发包产生结果,其标准输出、标准错误都放在TXT文件里,方便
用户上传、分析。需要说明的是:由于umsdinfo.exe捆绑了sg,可能会被杀毒软件
误报,忽略即可。


下面是umsdinfo.exe的运行示意图:


[ 本帖最后由 wuwuzz 于 2011-3-26 08:46 编辑 ]
回复

使用道具 举报

推荐
 楼主| 发表于 2011-3-22 20:14:58 | 只看该作者
二、我为什么不对MBR/PBR/fbinst/U+/HP格式化...的讨论投入很大
精力,为什么不赞成不点的BIOS阴谋论


(一)第1个问题,要看是什么情况
从一中的说明可知,有些UMSD固件缺陷造成的错误太严重,U启还没到
读MBR/PBR阶段就焦头烂额了,甚至早就Game Over了。在这种情况下,
考察UMSD的MBR/PBR...这些内容,有点马后炮,意义不大。


另外,在Phoenix BIOS的世界里,BIOS主要是从驱动器设备获取参数,而不是
从介质(含有MBR/PBR)上来获取参数。所以,在这种环境中,就不要把过多的
精力投到倒腾介质格式上了......


(注:AMI BIOS则不同,它要用MBR的内容作为生成参数的考虑因素之一,在这种
环境中,MBR/PBR...这些内容有讨论下去的价值。)



(二)第2个问题
这在一中已经涉及到了。BIOS的“异常”表现,与其努力弥补UMSD固件缺陷
有关,而不是阴谋、设陷阱,这在CHS问题上尤其突出。从已知的AMI、Phoenix
BIOS源代码来看,BIOS的努力还远不止CHS这些。例如:


AMI BIOS定义了名为“INCMPT_FLAGS”的不兼容UMSD标志位结构,
对多种有固件缺陷UMSD,专门进行特别处理;Phoenix BIOS会对一些UMSD
固件造成的超时问题,多加指令试图唤醒或确认其准备好,再进行下一步
处理......


从实践上看,BIOS阴谋论也容易让人陷入思维定势,不利于问题的解决。
例如:这两个讨论USB移动硬盘启动的帖子。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=187168
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=187940

事实上,这两帖子,重点考虑2点就可以了:
1、USB供电问题;2、UMSD固件缺陷。还没到担心EB、fbinst的地步。




需要指出一点,BIOS的补BUG努力,十分具有讽刺意味,让人哭笑不得。
很多同学不是一直在高呼,要遵守统一的U启标准吗? 孰不知,BIOS真要严格
按U启标准来,我们的UMSD会更难通过检查、死得更难看!  


而有固件缺陷的UMSD,经过BIOS的擦屁股,BOOT成功了,高兴么?
不高兴。
因为这意味着BIOS做了妥协让步,违反了已经制订发行的U启标准。


[ 本帖最后由 wuwuzz 于 2011-3-26 08:36 编辑 ]
回复

使用道具 举报

64#
发表于 2021-9-20 16:47:35 | 只看该作者
fingerskps
一、所有的一切,都要以USB规范的立场和观点来看、来描述。
进一步说,要以BIOS和U盘固件 的立场和观点来看、来描述。
(以BIOS指代BIOS/UEFI,以U盘指代USB存储设备,下同)

USB启动,只有2种:
USB-CD/DVD (USB光驱设备+光盘介质)、
USB-DISK   (USB磁驱设备+盘片介质)。

U盘通过固件参数改变,可以设置为USB-CD/DVD,
也可以设置为USB-DISK。

二、BIOS通过内置计算规则,对USB-DISK设备细分为
USB-HDD、USB-ZIP、USB-FDD等。但它们的区分不在
USB规范范围内。属于BIOS自创内容。

三、USB-DISK的盘片介质,通过分区格式化,可以有不同的
格式。
没有什么所谓的UD、U+、B+、USB-ZIP+、USB-HDD+...,
它们的共同名字,叫做: USB-DISK。
它们都是特定软件开发者自创的名词,通过在MBR、PBR等
类似的东西做参数值变动文章,并配套出格式读取软件,
人为制造出来的。这些东西现在除了制造混乱,没有太大
益处。


四、USB-DISK读写安全机制。
想安全,要么硬件开关写保护,要么固件参数设定写保护。
那些五花八门的自定格式,没有本质的安全隐藏,通过
格式化等工具,可以轻易破坏掉。

五、USB-DISK启动兼容性机制
那些五花八门的自定格式,出来的主要目的,是要提高启动成功率,
之所以五花八门,或者说,这些格式开发者的致命弱点,是不掌握
BIOS USB-DISK启动内部机制(很简单,BIOS源码是保密、昂贵、复杂
难理解的)

当我们有条件管窥BIOS内部时,就知道,他们的那些格式不可能
解决问题。因为BIOS最关注的是USB-DISK的固件参数值,而不完全是
MBR、PBR等表面格式参数值。

解决UBS-DISK启动兼容性的最本质方法是:
1、把USB-DISK的固件参数(CHS)锁死为唯一值,使
不同的BIOS出现同一结果,不再出现寻址不同。

2、至于介质格式,使用最原始、最简单的DOS MBR即可。
当然,如果你喜欢那些五花八门的格式,仍然可以使用。
只不过此时,那些格式所设立的兼容性措施,成为复杂
无用的废物。

楼主在数码之家是fingerskps这个ID吧,上面是您在那边的一个回复吧。
回复

使用道具 举报

63#
发表于 2020-3-13 18:39:05 来自手机 | 只看该作者
感謝大大無私的分享,讓我學到很多,受益良多!
回复

使用道具 举报

62#
发表于 2015-10-13 12:36:18 | 只看该作者
学习了 学习了
回复

使用道具 举报

61#
发表于 2015-10-8 17:08:31 | 只看该作者
研究的太深,看不懂也。抽空学习下,谢谢分享。
回复

使用道具 举报

60#
发表于 2015-10-8 16:13:15 | 只看该作者
楼主的帖子有些难度。
回复

使用道具 举报

59#
发表于 2014-12-4 11:18:38 | 只看该作者
迟来的回贴,更加进一步了解原理
回复

使用道具 举报

58#
发表于 2014-11-10 22:33:42 | 只看该作者
好帖子,赞一个,一看就有水平。
回复

使用道具 举报

57#
发表于 2014-11-10 22:18:56 | 只看该作者
高手啊,辛苦了,我来支持啊
回复

使用道具 举报

56#
 楼主| 发表于 2011-4-12 12:22:46 | 只看该作者
版本已更新到V0.2,更名为ubootchk,已有了分析报告功能。
一般不需要再看原始信息了
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

55#
发表于 2011-4-4 18:37:05 | 只看该作者
呵呵...
稍微看了一下,也试了试,生成的errpd1中四个命令都是good...看来偶人品不错啊...
回复

使用道具 举报

54#
发表于 2011-4-4 18:29:39 | 只看该作者
强贴,留个记号
fb实际上也就是最大限度的妥协
回复

使用道具 举报

53#
发表于 2011-4-4 09:19:29 | 只看该作者
我的,笔记本自带读卡器(可启动),SSK读卡器(可启动),西数移动硬盘(没试过)
楼主研究吧

PD1     [J]     <Usb  >  Generic-  Multi-Card        1.00  
PD2     [K]     <Usb  >  WD        Ext HDD 1021      2021  
PD3     [L]     <Usb  >  Generic   STORAGE DEVICE    9451  
------------------------------------ PD1: I------------------------------------
00     00 8d 00 01 1f 01 00 00  47 65 6e 65 72 69 63 2d    ........Generic-
10     4d 75 6c 74 69 2d 43 61  72 64 20 20 20 20 20 20    Multi-Card      
20     31 2e 30 30                                         1.00
------------------------------------ PD1: Rcap---------------------------------
00     00 3c d7 ff 00 00 02 00                             .<......
------------------------------------ PD1: M10----------------------------------
00     00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00    ................
10     00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00    ................
20     00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00    ................
30     00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00    ................
40     00 00 00 00 00 00                                   ......
------------------------------------ PD1: M6-----------------------------------
00     03 00 00 00                                         ....


------------------------------------ PD1: I------------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 36 bytes of data:
------------------------------------ PD1: Rcap---------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 8 bytes of data:
------------------------------------ PD1: M10----------------------------------
SCSI Status: Check Condition

Sense Information:
Fixed format, current;  Sense key: Illegal Request
Additional sense: Invalid field in cdb

Received 70 bytes of data:
------------------------------------ PD1: M6-----------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 4 bytes of data:


PD1     [J]     <Usb  >  Generic-  Multi-Card        1.00  
PD2     [K]     <Usb  >  WD        Ext HDD 1021      2021  
PD3     [L]     <Usb  >  Generic   STORAGE DEVICE    9451  
------------------------------------ PD2: I------------------------------------
00     00 00 04 02 45 00 00 00  57 44 20 20 20 20 20 20    ....E...WD      
10     45 78 74 20 48 44 44 20  31 30 32 31 20 20 20 20    Ext HDD 1021   
20     32 30 32 31                                         2021
------------------------------------ PD2: Rcap---------------------------------
00     74 70 57 ff 00 00 02 00                             tpW.....
------------------------------------ PD2: M10----------------------------------
00     00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00    ................
10     00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00    ................
20     00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00    ................
30     00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00    ................
40     00 00 00 00 00 00                                   ......
------------------------------------ PD2: M6-----------------------------------
00     17 00 10 08 74 70 58 00  00 00 02 00 9a 0a 00 01    ....tpX.........
10     00 00 00 00 00 00 46 50                             ......FP


------------------------------------ PD2: I------------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 36 bytes of data:
------------------------------------ PD2: Rcap---------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 8 bytes of data:
------------------------------------ PD2: M10----------------------------------
SCSI Status: Check Condition

Sense Information:
Fixed format, current;  Sense key: Illegal Request
Additional sense: Invalid field in cdb

Received 70 bytes of data:
------------------------------------ PD2: M6-----------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 24 bytes of data:


PD1     [J]     <Usb  >  Generic-  Multi-Card        1.00  
PD2     [K]     <Usb  >  WD        Ext HDD 1021      2021  
PD3     [L]     <Usb  >  Generic   STORAGE DEVICE    9451  
------------------------------------ PD3: I------------------------------------
00     00 80 00 00 29 00 00 00  47 65 6e 65 72 69 63 20    ....)...Generic
10     53 54 4f 52 41 47 45 20  44 45 56 49 43 45 20 20    STORAGE DEVICE  
20     39 34 35 31                                         9451
------------------------------------ PD3: Rcap---------------------------------
00     00 3c 0f ff 00 00 02 00                             .<......
------------------------------------ PD3: M10----------------------------------
00     00 06 00 00 00 00 00 00  00 00 00 00 00 00 00 00    ................
10     00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00    ................
20     00 00 00 00 00 00 00 00                             ........
------------------------------------ PD3: M6-----------------------------------
00     03 00 00 00                                         ....

------------------------------------ PD3: I------------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 36 bytes of data:
------------------------------------ PD3: Rcap---------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 8 bytes of data:
------------------------------------ PD3: M10----------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 40 bytes of data:
------------------------------------ PD3: M6-----------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 4 bytes of data:
回复

使用道具 举报

52#
发表于 2011-4-3 20:55:07 | 只看该作者
高手的贴子,软件和硬件的结合!让我明白USB是怎么工作的!
回复

使用道具 举报

51#
发表于 2011-3-26 23:32:29 | 只看该作者
学习中,坚决顶。。。。。
回复

使用道具 举报

50#
发表于 2011-3-26 15:24:27 | 只看该作者

回复 #53 wuwuzz 的帖子

另外,我把我在另一个帖子里写的观点复制过来,如果楼主能认同我的观点就不必纠结与U盘固件了。

写软件的有3种人:死认Spec的人,根本不知道自己在干什么,头痛医头,脚痛医脚的人和同时了解理论标准和事实标准,写出好软件的人。第一种人只知道标准,写的东西没有错,但不能用。第二种人复制,粘贴,debug,他们写的东西最多支持特定平台,还可能有隐患。他们让第一种人写的东西不能通用。第三种人见多识广,知道第二种人的常见问题,会主动避开,同时自己尽量遵守标准。但这种人太少了,绝大多数是第二种人。
acpi就是这样,真实bios开发(尤其是小厂)就是:买原代码,一眼不看就编译,刷bios,装xp,哎呀开不了机,胡乱改,能开机不能待机,再胡乱改,还是不行就写个for xp的驱动,搞定交差。你说这样粗制滥造的东西咱支持的了吗?不是咱不努力,是bios(部分)太烂了。

补充一下,U盘固件开发也是类似:买主控,一眼不看就量产,哎呀XP没反应,胡乱改,再胡乱改,搞定交差。这样的U盘我猜是绝大多数。
回复

使用道具 举报

49#
发表于 2011-3-26 15:18:56 | 只看该作者

回复 #53 wuwuzz 的帖子

我求你了,告诉我怎么判断u盘是固定盘还是移动盘吧!告诉我怎么看吧。。。。。看Spec我晕死了。这个“介质位”是什么?是哪个命令返回的哪个byte的哪个bit?
我就知道inquire第一位是05就是光盘。
还有,麻烦去时空看一下我最后问的问题:SubClass Code上哪找?绝大多数u盘的SubClass Code是什么?
谢谢!十分感谢!
回复

使用道具 举报

48#
 楼主| 发表于 2011-3-26 08:23:00 | 只看该作者
1、因忙于下一版本的制作,可能无法及时回复诸位,敬请见谅。

2、在制作中发现一些比较囧的问题:

如严格按照USB BOOT标准来,可能会造成问题太多。

比如,按标准,固件应返回标志"AA BB",但有的USB移动硬盘固件不按标准来,
它不返回"AA BB",而返回"AA CC",这就会造成umsdinfo.exe查找失败,不能
提取后续参数。初步打算,象BIOS一样的策略-----做妥协让步,放宽条件查找,比如
只查"AA",以努力获取后续参数;

还有,有的UMSD(比如手机)固件----对M10指令支持不好,会超时甚至重试,
这就可能会造成err.txt文件中的记录混乱,既有GOOD信息,又有出错信息。

[ 本帖最后由 wuwuzz 于 2011-3-26 08:26 编辑 ]
回复

使用道具 举报

47#
 楼主| 发表于 2011-3-26 08:21:48 | 只看该作者
原帖由 fujianabc 于 2011-3-25 10:17 发表

如果已经扫盲了efi的知识,就会知道,efi启动式全新的方式,和执行一个可执行文件差不多,不会碰到bios启动那么多问题,但这样无法兼容传统的系统启动(相信只能启动64位bootmgr.efi或者grub2的不能满足大家的 ...


欢迎fujianabc老师来做科普。希望能多听到您的指导。
回复

使用道具 举报

46#
 楼主| 发表于 2011-3-26 08:20:59 | 只看该作者
原帖由 快雪时晴 于 2011-3-25 22:07 发表
------------------------------------ pd2: I------------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 36 bytes of data:
--------------------- ...



安国主控,固件BUG严重,其USB DISK/CD都不满足USB BOOT规范要求。

你贴出来的是DISK信息,固件对M10指令不回应CHS信息。需“完全依赖”BIOS补BUG。
回复

使用道具 举报

45#
 楼主| 发表于 2011-3-26 08:20:26 | 只看该作者
原帖由 amwwc 于 2011-3-25 08:26 发表
芯片制造商: SMI(慧荣)
  芯片型号: SM321~SM325


4G 移动盘  CHS=16h/63s/7872c ,C>1024
回复

使用道具 举报

44#
 楼主| 发表于 2011-3-26 08:19:47 | 只看该作者
原帖由 sgw888 于 2011-3-25 11:24 发表
--《UMS Spec for bootability》楼主,这个可否提供一下资料?


wannaknow在42楼给出了链接,就是usb_msc_boot_1.0.pdf那本
回复

使用道具 举报

43#
 楼主| 发表于 2011-3-26 08:19:06 | 只看该作者
原帖由 wannaknow 于 2011-3-25 07:02 发表
1.这个“介质位”是什么?是哪个命令返回的哪个byte的哪个bit?
2.也就是说理论上cd不应该对m10返回05 1e?或者说返回任何内容都可以?
3.Rcap应该是普遍有效的,尤其是总扇区数肯定是有效的,记得你以前发过一 ...


原帖由 wannaknow 于 2011-3-25 13:39 发表
这是我自己google的,不知道和楼主看的一样不一样:
http://www.usb.org/developers/devclass_docs里有基本上所有研究需要的Spec,在http: //www.usb.org/developers/devclass_docs/usbmass-ufi10.pdf里有所有 ...




很惭愧,对USB BOOT,我也是在摸索、对照理解,指正不敢当。
你总结得非常好,可以作为诸位同学的参考。

有一点待定。USB-CD,Rcap值不同主控算法不同。其LBA,有的是以2K字节扇计数,
有的是按512字节扇计数。且两种情形的USB-CD都能BOOT成功,囧...........

---------------------------------------------------------------------
天下武功出少林,SCSI指令集就是那个少林。

存储类设备,不管其是USB还是ATAPI、SCSI......都可参照使用SCSI指令集
UFI可以看成是经过简化、修改的SCSI子集

问题的关键是:用于存储用途,你遵从SCSI标准、采用SCSI指令集没问题。
但用于USB BOOT呢? USB BOOT规范要求如何,你就得如何。

[ 本帖最后由 wuwuzz 于 2011-3-26 08:40 编辑 ]
回复

使用道具 举报

42#
发表于 2011-3-25 22:07:49 | 只看该作者

清华紫光1G,很老的u盘了

------------------------------------ pd2: I------------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 36 bytes of data:
------------------------------------ pd2: Rcap---------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 8 bytes of data:
------------------------------------ pd2: M10----------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 8 bytes of data:
------------------------------------ pd2: M6-----------------------------------
SCSI Status: Good

Sense Information:
sense buffer empty

Received 4 bytes of data:




PD2     [I]     <Usb  >  Alcor     Flash Disk        8.07  
------------------------------------ pd2: I------------------------------------
00     00 80 02 02 1f 00 00 00  41 6c 63 6f 72 20 20 20    ........Alcor   
10     46 6c 61 73 68 20 44 69  73 6b 20 20 20 20 20 20    Flash Disk      
20     38 2e 30 37                                         8.07
------------------------------------ pd2: Rcap---------------------------------
00     00 1e 7f ff 00 00 02 00                             ........
------------------------------------ pd2: M10----------------------------------
00     00 06 00 00 00 00 00 00                             ........
------------------------------------ pd2: M6-----------------------------------
00     03 00 00 00                                         ....
回复

使用道具 举报

41#
发表于 2011-3-25 21:03:57 | 只看该作者
有一定的道理,下载来实践一下,谢谢!
回复

使用道具 举报

40#
发表于 2011-3-25 18:17:01 | 只看该作者
这个话题值得深入,至少可以作为买U盘、移动硬盘的参考啊。
回复

使用道具 举报

39#
发表于 2011-3-25 14:45:01 | 只看该作者
测试了下,群联主控u盘,目前暂只能看懂4个good……
期待更新版本……
回复

使用道具 举报

38#
发表于 2011-3-25 13:39:14 | 只看该作者

回复 #41 sgw888 的帖子

这是我自己google的,不知道和楼主看的一样不一样:
http://www.usb.org/developers/devclass_docs里有基本上所有研究需要的Spec,在http://www.usb.org/developers/devclass_docs/usbmass-ufi10.pdf里有所有使用ufi命令集的u盘应该支持的命令。
http://www.usb.org/developers/devclass_docs/usb_msc_boot_1.0.pdf集中列出了“支持启动”的u盘“应该”支持的命令,其中包含3条umsinfo探测的指令。
不过好像现在的u盘都不是ufi的,而是scsi的。scsi command set貌似更复杂,你可以自己也试试google下,我找到了个http://hackipedia.org/Hardware/S ... ommands%20-%204.pdf,不过我觉得内容不好,看不懂,而且我没找到返回值的标准。
回复

使用道具 举报

37#
发表于 2011-3-25 11:24:53 | 只看该作者
--《UMS Spec for bootability》楼主,这个可否提供一下资料?
回复

使用道具 举报

36#
发表于 2011-3-25 10:32:59 | 只看该作者
原帖由 wuwuzz 于 2011-3-24 20:44 发表
ut165:量产了2个固定盘
2.7G盘     固件CHS参数08h/32s/500c 算出容量62M偏小 CHS不可用
12.8G盘     固件CHS参数08h/32s/500c 算出容量62M偏小 CHS不可用

-----------------------------------------------------------------
SM325X:量产了CD+固定盘

    6.5G固定盘  固件CHS参数16h/63s/15744c  C>1024有问题

    以下信息存疑(主要是不同主控固件CD取值算法不同,我无法确定):
       CDROM容量疑似1.1G(或者,另一可能值为280M)?
       这个盘总容量疑似8G ?

还请sratlf证实一下。



smi325x的U盘确实是8G  ut165的U盘是16G

smi325x的U盘是量产了1.6G的cdrom  其余为hdd固定盘

ut165的U盘量产信息没错
回复

使用道具 举报

35#
发表于 2011-3-25 10:17:44 | 只看该作者
原帖由 快雪时晴 于 2011-3-23 13:07 发表
今天上午在时空看过这个话题了,很期待革命性的工具,这个会有吗?
昨天扫盲了一下UEFI知识, 可能这个就是BIOS终结者,以后不存在u盘启动问题了,或者说启动不是个大问题了

如果已经扫盲了efi的知识,就会知道,efi启动式全新的方式,和执行一个可执行文件差不多,不会碰到bios启动那么多问题,但这样无法兼容传统的系统启动(相信只能启动64位bootmgr.efi或者grub2的不能满足大家的要求)。

如果要在uefi主板启动传统的io.sys/ntldr/grldr等,还是需要bios模拟层的,这样问题依旧出现

[ 本帖最后由 fujianabc 于 2011-3-25 10:18 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-7-5 03:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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