无忧启动论坛

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

【调查】猪还健在吗?

  [复制链接]
1#
发表于 2024-11-15 11:03:43 | 显示全部楼层
本帖最后由 wuwuzz 于 2024-11-15 11:07 编辑
lbw2007 发表于 2024-11-14 18:46
华硕的B660还支持。INTEL 12代处理器。不过WEE是装到移动硬盘盒里面的。移动硬盘盒里面是NVME固态。固态硬 ...

这种,不用管NVME/硬盘盒这些细节,最终是由系统固件(NVME芯片固件+硬盘盒桥接芯片固件,综合后)向BIOS报告。BIOS按内置算法确定 (由于这种盘一般容量较大,几百GB以上,一般会判定为USB-HDD),BIOS最终结果就是将其作为固定设备,盘号0x8?。

U盘其实也是一样,BIOS最终结果,也是要落到固定设备,还是移动设备上。

点评

有没有什么办法(最好是通用的,方便大家操作),让 BIOS 把 U 盘识别为“固定设备”(即硬盘)而不是“移动设备”(即软盘)? 软驱都淘汰了,因此,用 U 盘模拟软盘,没有意义。 我猜,当初 Windows 对于 U  详情 回复 发表于 2024-11-16 06:59
以前还是不一样的。和存储大小无关,电脑很清楚USB接口上面插的是U盘还是移动硬盘。并且移动硬盘主引导没法使用UD启动,但是WEE就很好用。  详情 回复 发表于 2024-11-15 12:03
回复

使用道具 举报

2#
发表于 2024-11-15 12:31:33 | 显示全部楼层
本帖最后由 wuwuzz 于 2024-11-15 12:42 编辑
lbw2007 发表于 2024-11-15 12:03
以前还是不一样的。和存储大小无关,电脑很清楚USB接口上面插的是U盘还是移动硬盘。并且移动硬盘主引导没 ...

一、BIOS厂家是(AMI?  Phoenix? Insyde ? ...)

二、“很清楚插的是U盘”,这个U盘容量有多大? 此U盘在windows里被识别为可移动磁盘/U盘,还是本地/固定磁盘?
[这2个参数是BIOS运算的关键要素]

三、很清楚插的是哪一种,意思是移动硬盘被识别为USB-HDD、 U盘被识别为USB-KEY/USB-ZIP,是这样理解吗?


四、对该U盘主控量产工具使用熟悉么? (测试的话,可能需要调整U盘盘片介质属性,即调整可移动、固定)

点评

1、P 2、我试过32G的U盘和40G的移动硬盘。移动硬盘没量产,U盘是USB-HDD。进入系统以后,移动硬盘卷标是“本地硬盘”,U盘默认卷标“可移动磁盘” 3、不是。移动硬盘在BIOS里面和本地硬盘一样没有USB前缀。U盘是US  详情 回复 发表于 2024-11-21 16:11
回复

使用道具 举报

3#
发表于 2024-11-16 21:56:04 | 显示全部楼层
本帖最后由 wuwuzz 于 2024-11-21 20:25 编辑
不点 发表于 2024-11-16 06:59
有没有什么办法(最好是通用的,方便大家操作),让 BIOS 把 U 盘识别为“固定设备”(即硬盘)而不是“ ...

不点大大谦虚了,我是一名小兵,大人不敢当,回复如下:

由于USB协议的复杂性,要回答您的问题,需先铺垫、交代一些背景知识,然后才能水到渠成,说清楚。

一、背景知识
1、三个关键固件参数:最大LBA(总扇区数,容量)、盘片/介质(media)属性、外设类型。
USB是主从结构,上电后开始枚举,主机端(UEFI/BIOS/OS USB驱动)发请求,设备端(U盘固件)应答。主机端只认U盘固件应答信息(参数)。主机端会以USB包封装SCSI Inquiry等命令发往U盘固件,获取前述3个固件参数值。格式:

MAX_LBA=0x?? ?? ?? ??  最大LBA,从0开始计数的4字节值。总扇区数=MAX_LBA+1。
外设类型:0x00为Direct access block device,即DISK磁盘驱动器设备。
移动介质位(RMB):1=盘片可移动,0=盘片不可移动。
注:U盘在物理上,设备与盘片合体,但在逻辑上要分开。盘片/介质(Media)以Flash芯片为实际物理载体,在物理上是固定(Fixed)的,但其固件RMB默认出厂设置一般为可移动(没有理由)。当然,可通过量产工具重新修改RMB取值,把盘片属性设置为固定(前提是固件支持)。

2、中间过程-细分DISK磁盘设备。
0x00只是笼统地给了个磁盘驱动器类型。BIOS主要根据MAX_LBA、RMB取值,同时,不同厂家BIOS会再叠加其他不同因素,以不同算法,把DISK磁盘设备细分为USB-HDD/ZIP/KEY/LS120/FDD...等,显示在BIOS BOOT菜单里。(正因为算法不同,所以不同BIOS下,USB-HDD/ZIP/KEY/LS120/FDD...设定规律不同,混乱不堪)

3、BIOS最终设备设定。
无论是USB-HDD/ZIP/KEY/LS120/FDD...中的哪一种,它们只是中间过程。到最后,BIOS会再把它们设为2类:固定设备(BIOS盘号0X8?,DOS下C:>),移动设备(BIOS盘号0X00,DOS下A:>)

二、回答问题
(一)如果想更大概率获得固定设备,其影响因素为:
1、MAX_LBA,也就是让总扇区数(容量)尽可能地大,这很容易实现,因为现在的U盘容量都很大。
注:不同的BIOS,由于算法不同,对跨入固定设备的容量界限设定不同。建议容量为32GB以上,这是个经验值。(当然,BIOS内部不会用GB计算,而是用具体的总扇区数、LBA计算)。
2、RMB=0,盘片属性设为固定。通过量产工具进行调整。部分老版本AMI BIOS如果开启RMB编译选项,会把RMB=0的U盘,强制为USB-HDD,设为固定设备。
3、逻辑分区,含有MBR/分区表。仅对部分老版本AMI BIOS有效。该版BIOS会检查MBR/分区表,如果发现有分区表,会增大把U盘默认为USB-HDD,设为固定设备可能性。

(二)关于windows软驱
1、老windows对U盘只识别1分区,是因为老windows不支持移动(介质)盘分区。通过量产工具调整U盘的RMB取值,把U盘改为固定(介质)盘,就可以分区了。
2、Windows软驱算法,跟MAX_LBA有关。U盘固件总扇区数=windows软驱默认的总扇区数,就能得到Windows下的USB-FDD软驱(A/B盘)。

(三)关于读卡器。
读卡器固件返回的RMB一般取值为1,移动介质。因此,读卡器+TF卡要想识别为固定设备,增大MAX_LBA(容量)是最好途径,也就是TF卡的容量要尽可能地大。

(四)标准U盘。
由于USB存储设备固件/量产工具各不相同,试图改各种USB存储设备固件参数是不现实的。比较简单易行的办法是,选一种“标准”U盘测试即可。适合做“标准”U盘的,也很好选。就是SMI慧荣主控盘(USB2.0的3252/3255/3257;USB3.0的3267)。主要原因是:1、相对于其他U盘主控,固件更符合USB规范;2、改固件参数方便,尤其是被玩家发现debug彩蛋后。3、是市场主流U盘主控,简单易得,到处都是,价格不贵。

点评

不愧是精通技术的行家里手。感谢 wuwuzz 的精彩奉献。 我还有一个问题:我有好几个 U 盘,用什么软件能够查看它们的固件参数( MAX_LBA,外设类型,可移动位)?有没有通用的软件(最好是开源软件)? 市面上  详情 回复 发表于 2024-11-16 23:10
回复

使用道具 举报

4#
发表于 2024-11-17 00:30:24 | 显示全部楼层
本帖最后由 wuwuzz 于 2024-11-21 19:55 编辑
不点 发表于 2024-11-16 23:10
不愧是精通技术的行家里手。感谢 wuwuzz 的精彩奉献。

我还有一个问题:我有好几个 U 盘,用什么软件 ...

1、您过奖了。术业有专攻,显得知道得多点而已,其实也没什么。

2、RMB,直接在windows下点U盘属性-如果显示的是U盘、可移动盘,则RMB是移动介质;如果显示的是本地盘,则RMB是固定介质。

3、全面看USB设备属性,一般使用USB抓包软件。
开源软件的话,有GUI:WireShark+USB插件;无GUI: sg3_utils。
wireshark截图如下,注意:wireshark对RMB的解释是错的,应为盘片/介质固定,不是设备固定。

4、买盘不好说,跟U盘出厂时,卖家量产工具设置有关。
我买的U盘,绝大部分都是别人DIY的,然后自己改。少量几个SMI 2246XT固态U盘,有一开始
RMB取值就是固定介质的(这个您买时,可以和卖家协商,先咨询截图,再买)。

1b.jpg (131.19 KB, 下载次数: 54)

1b.jpg

1a.jpg (149.37 KB, 下载次数: 49)

1a.jpg

点评

太有帮助了,非常感谢! 也汇报一下我刚刚搜到的一些信息。有人抱怨 USB key 被识别为 HDD,而他希望被识别为 removable。这说明,确实存在出厂就设定为 HDD 的 U 盘。链接如下: USB detected as a HDD and n  详情 回复 发表于 2024-11-17 07:46
回复

使用道具 举报

5#
发表于 2024-11-17 11:17:42 | 显示全部楼层
本帖最后由 wuwuzz 于 2024-11-21 19:46 编辑
不点 发表于 2024-11-17 07:46
太有帮助了,非常感谢!

也汇报一下我刚刚搜到的一些信息。有人抱怨 USB key 被识别为 HDD,而他希望 ...

不客气。

有那种疑问很正常。以前无忧的丢丢版主曾吐槽过:
国外启动论坛的洋人,精力放在win挖潜的多,放在量产/USB固件参数上的少(自然在
removeable/fixed上纠结不清)。国内相反,充斥的是量产CDROM,但也到此为止,
技术含量得不到提高。然后他就遁逃出无忧量产区了。
=================================================================================
我觉得,刻意寻找出厂设定为fixed介质U盘,有点开盲盒。自己调整固件参数是个办法
(当然,可能要交刷死U盘的学费。我也是刷死了好几个U盘,才掌握操作的呃。好在U盘
现在也不贵,那点经济代价能承担)。几个常见U盘主控量产工具改RMB设定,供参考:






UPA.jpg (62.68 KB, 下载次数: 44)

UPA.jpg
回复

使用道具 举报

6#
发表于 2024-11-17 12:51:40 | 显示全部楼层
本帖最后由 wuwuzz 于 2024-11-17 12:55 编辑
不点 发表于 2024-11-17 10:50
谢谢版大人。

貌似 wuwuzz 大人前面也提到固态硬盘做的 U 盘,有识别为 HDD 的。但这并不 100% 肯定。 ...


1.固态U盘RMB的简单检查方法,和普通U盘一样,属性~本地盘,就代表RMB=0。

2.只有需检查底层细节,才有必要动用USB抓包软件。但是,要注意的是:由于固态U盘
是新出来的,普遍采用更高速的UASP传输协议,而wireshark不支持UASP传输协议解码
(只支持老的BOT传输协议)。因此,当使用这种固态U盘+Win8以上支持UASP的系统时,
wireshark将不能解码出RMB信息。

3.我查阅了一下,手上几个新的SMI 2320AB、2246XT等主控固态U盘,出厂设置为本地盘。
量产工具GUI界面里已经没有Removeable/Fixed调整项了。


回复

使用道具 举报

7#
发表于 2024-11-17 15:44:54 | 显示全部楼层
本帖最后由 wuwuzz 于 2024-11-17 15:56 编辑
不点 发表于 2024-11-17 13:05
前面经 wuwuzz 的指引,了解到 sg3_utils 是个开源的工具。于是搜到相关知识:

sg3_utils使用学习


一、我预测一下,大概率被识别为固定设备的情形多些。
因为一般情况下,在BIOS内部,MAX_LBA容量规则的优先级>RMB规则。

二、RMB规则生效的例子也有,在下面这个很老的帖子里。很古老的AMI BIOS,它激活了RMB编译选项。
因此,出现了RMB规则优先级高的现象。在这个例子中,BIOS给的容量规则界限是530MB(也就是超过
530MB的USB盘应该被作为USB-HDD的。BIOS用530MB作为界限的渊源,明眼人应该能看出来,早期
IDE硬盘容量墙界限,然后延伸应用到USB-HDD上。)

http://bbs.wuyou.net/forum.php?m ... 05532&extra=&page=2

38#是我的结论,也给了BIOS源代码片段论据。
在这个帖子里,不点大也有发言,只不过注意力是G4D。而我,注意力不是G4D,是顺着疑点又追踪下去的,
所以,让提问者redbee留下了更多信息。

点评

天!那么旧的帖子,您都记忆在心。佩服! 重新看过那个帖子后,我有些沮丧。 正如您所说,BIOS 判定 FDD 和 HDD 很混乱,另外,它们是否提供 LBA 磁盘服务,也是混乱的。 不过,那些混乱的主板,客观上也是  详情 回复 发表于 2024-11-17 16:40
回复

使用道具 举报

8#
发表于 2024-11-18 14:53:35 | 显示全部楼层
本帖最后由 wuwuzz 于 2024-11-18 15:16 编辑
不点 发表于 2024-11-18 14:09
搜 boot disk 时,搜到一个网站,这个网站的页面中提到,boot disk 在 XP 以后就没有了,XP 还有 boot disk ...

一、逐渐取消对FDD软驱支持是趋势,就Windows而言,还没取消干净。
印象中wmic里已经取消了软驱接口,但windows内部还残留着USB-FDD软驱判定代码(win7、win10仍然
可用USB-FDD)。例如,我用U盘量产出1个USB-FDD,资源管理器中左侧树形栏默认不出现A盘,但右边
窗口是有的,双击一下,左侧栏的A就出来了。



二、UEFI/BIOS则是另外一回事。
不管电脑有多新,只要BIOS(或UEFI/CSM模块)还存在,CHS就一直都在。
即使U盘没有CHS,引导软件也不用CHS,BIOS(或UEFI/CSM模块)也要为其捏造(计算虚拟)一个。
为什么?因为INT13服务的历史包袱。BIOS(或UEFI/CSM模块)始终要提供INT13服务,等待户调用啊!

点评

XP 停止服务以后,软盘和 CHS 都处于 “冷冻” 状态,启动软件可以不再调用 CHS 了,只调用 LBA 就可以了。也就是说,解放了。 现在基本可以不用 fbinst 了。当然,一些顽固的、“仍然在世” 的老爷机,确实还需  详情 回复 发表于 2024-11-18 15:36
回复

使用道具 举报

9#
发表于 2024-11-18 15:06:21 | 显示全部楼层
本帖最后由 wuwuzz 于 2024-11-21 19:48 编辑

啊,我的记忆力没那么好, 那个帖子特殊,正好赶上时间点了,我需要实例验证对AMI BIOS USB源码
的理解,正好摊上这个实例,所以印象深刻。

usbbios.jpg (59.93 KB, 下载次数: 33)

usbbios.jpg
回复

使用道具 举报

10#
发表于 2024-11-18 15:47:51 | 显示全部楼层
不点 发表于 2024-11-18 15:36
XP 停止服务以后,软盘和 CHS 都处于 “冷冻” 状态,启动软件可以不再调用 CHS 了,只调用 LBA 就可以了 ...

“再过几年,grub4dos 的 legacy BIOS 版本,可能也不再需要了”

这个时间过渡可能会比较长,我发现周边搭载UEFI的PC,多数还保留着UEFI_CSM模块,
这样,grub4dos 的 legacy BIOS 版本仍然可以继续使用。我现在的启动盘配置就是这样,
同时装了grub2/G4D。grub2用于UEFI,G4D用于UEFI_CSM环境。



点评

XP 停止服务,CHS 就开始 “消退”,当然,不是一下子突然彻底消失,而是有个过程。 Win7、8 停止服务,我觉得是 legacy BIOS 开始 “消退” 的时候了。 如果 Win10 也停止服务,那么,legacy BIOS 的 “消退  详情 回复 发表于 2024-11-18 16:02
回复

使用道具 举报

11#
发表于 2024-11-21 19:45:02 | 显示全部楼层
lbw2007 发表于 2024-11-21 16:11
1、P
2、我试过32G的U盘和40G的移动硬盘。移动硬盘没量产,U盘是USB-HDD。进入系统以后,移动硬盘卷标是 ...

我这里结果不同。40G移动硬盘、普通U盘在Phoenix BIOS里没区别,都带有USB-HDD前缀。



回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-4-4 22:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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