感谢分享 |
wuwuzz 发表于 2023-10-3 14:03 发自内心,我已变成伸手党。所以,非常羡慕您几位。您几位,在我看来,毫无疑问,都是大神。 |
本帖最后由 wuwuzz 于 2023-10-3 15:01 编辑 邪恶海盗 发表于 2023-10-3 14:39 ZIP选项。没试。 我很久以前就不用FB了,语法全忘,测试用的FBA还是求道者提供的。 事实上,所有从MBR/PBR层面动手、试图影响BIOS判定的软件,我兴趣 都不是很大了。 因为我知道:BIOS看重的是U盘固件参数,而不是MBR/PBR方面的 内容。所以后来都是在固件参数知识储备、调整措施方面下功夫。 |
wuwuzz 发表于 2023-10-3 13:53 有没有试过老版本的FbinstTool,我的印象中好像有USB-FDD模式,不知道记错没有... |
不点 发表于 2023-10-3 13:07 您太谦虚了。 我也是年龄大了,有点絮絮叨叨,力不从心。我不是大神,只是对USB有 兴趣而自学、做点力所能及工作的后勤人员。现实所从事工作也非IT相关。 在无忧发帖,只是希望自己的经验能为读者提供点借鉴和帮助。 |
邪恶海盗 发表于 2023-10-3 13:05 可以的。只要PBR上放想要的内容(G4D、WEE、FB等)就可以了。 这个BIOS的特点就是无论是啥USB存储设备,最后都(因为Fixed属性被阉割) 而被作为软盘对待,从PBR上引导。 PS:通过分析仪监听知道,此BIOS下,U盘的MBR内容会被读,但真正引导时 不起作用,最终是从PBR引导。 |
wuwuzz 发表于 2023-10-3 12:29 在下已经退出所有的开发了。有您、yaya、求道者、sunsea 等各位大神在继续探索,非常期待。 我只是随便逛逛,偶尔说点什么。最近两年来,在大多数情况下,我说的都是与开发无关的话题。 |
不是一台不支持,而是两类BUG机型成百上千台不支持。 如果不想获取更深层次原因和知识,那确实也没什么大不了的。 |
一台不支持就不支持嘛 ,有什么大不了的。 |
本帖最后由 wuwuzz 于 2023-10-3 12:32 编辑 不点 发表于 2023-10-3 08:16 热烈欢迎不点老大前来指导! 一、我2022年那个发言与multimbr主题无关,主要是讲观测UEFI/BIOS手段的改进。当时 发言时还是想法,后来我就真正付诸实施了,并且在2023年1月的神舟K470测试中发挥了重要 作用。 二、K470 BIOS以前已经做过的测试 真正的功臣是yaya、求道者,我是做后勤的伸手党。这个事的最初动机,源于网上零碎 发言,说是A470/K470不支持USB-HDD,勾起了求道者和我的兴趣,随后我从二手市场买了 一台。具体测试过程详见: http://bbs.wuyou.net/forum.php?m ... ra=page%3D1&page=10 从283#开始。 期间:ventoy、fbinst、wee等都测试了,multimbr在355楼由sunsea提了一句,但当时 正好是yaya已经做出了分析结论,multimbr被自然忽略了。当时yaya的2段重要分析结论, 供读者参考: 1.经过BIOS自己的判断,认为U盘是可移动介质(此处应该是移动设备,而不是介质-wuwuzz注), 因此分配盘符A,隐藏第一个分区之前的扇区,修改(确切地说是减少)总扇区数,修改第一个分区 (PBR)的参数表(BPB),具体是修改偏移0x1c处的4字节隐藏分区值。以求道者的UD为例,是将 0x4000修改为0。然后把控制权移交给PBR代码。此时,使用int13/ah=42读LBA(0),由于隐藏了 第一个分区之前的扇区,现在LBA(0)指向第一个分区(PBR),因而不是返回MBR代码,而是返回 PBR代码。BIOS根本就没有把控制权移交给MBR的代码,因此UD的引导代码没有起作用,隐藏分区的 启动菜单及文件也没有使用。UD启动失败。 .... 2. 判断为可移动时,也就是判断为软盘时,减少1磁头,隐藏第一分区之前的扇区,逻辑0扇区 指向PBR。这对于通常形态的启动模式(即读MBR,查找活动分区,然后把控制权交给PBR),没有影响。 然而对于UD形态的启动模式(即读MBR,在隐藏分区读文件,进入菜单。不交权,与PBR启动代码完全 无关),实在是灾难。因为根本就没有把代码控制权交给他。 三、关于再次测试 (一)不存在物质条件障碍,而且,相对于以前的测试环境,这次完全不同了,鸟枪 换炮,我们测试者的力量增强了: 1、观测手段改进,BIOS黑箱被击破。我们有硬件USB协议分析仪,通过抓包,可以 直接监听看到BIOS-U盘间的会话过程,时间精确到毫秒,知道BIOS读了LBA什么位置,读 的扇区内容。 2、有完整版BIOS源码做参照。神舟以前流出过phoenix BIOS源码,本次A470、K470 系列BUG机正好吻合这个流出的BIOS源码版本。只不过源码是完整版,而A470、K470的上的 BIOS是阉割版。 3、掌握了欺骗phoenix BIOS的技巧,能够制作出满足其要求的USB设备类型。 (二)但时机不巧, 本人工作单位面临机构改革,人心惶惶,所有人无心工作,都在 忙着复习应付考试。真要测试的话,至少要延后数月,待机构尘埃落定心静之后了。 |
我以前开发的 multimbr,就是专门对付一楼这种的情况的(就是,跳过 MBR 直接走 PBR),wuwuzz 不妨试试。wuwuzz 所说的这种情况很常见,很久以前都发现了,并非新出现的。 准备基于 fbinst 进行再开发,请各位提供帮助 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=320244 负责任地说,multimbr 已经被某些硬件制造商封杀。所以,测试时遇到失败(比如根本就跳过这个 U 盘而无法从 U 盘启动,或者启动死机等),也是可能的。 另外,请看 411 楼以后 sunsea 版主发现的有关火狐浏览器的问题,以及他的解决办法。因为有这个问题,所以,安装起来还是有些复杂。如果 wuwuzz 没时间(或不愿意折腾)的话,就不必做这个测试了。 刚刚看到,wuwuzz 在 2022 年 5 月 4 日曾经在那个话题里面发言。 |
rbwrbw 发表于 2023-10-2 20:46 看图说话 |
添加WIM(boot.sdi)_图解.jpg (145.47 KB, 下载次数: 153)
martin313 发表于 2023-10-2 05:39 好的,说一下具体的方案!!!!!!! |
我用的G4D,启动PE/Linux没问题。 之所以从咸鱼淘这个机子来,就是因为顶楼说的原因,保留BUG样本。 |
wuwuzz 发表于 2023-10-2 15:54 如果感觉启动DOS不好的话,可以试下MBR设置为NT6,PBR设置为BOOTMGR,把基本的启动PE10/11文件放进U盘看可以启动不, |
wuwuzz 发表于 2023-10-2 13:27 你哪里有8G的U盘不,请用HP格式化工具弄下,看可以启动DOS不,在你这台神舟A470、K470系列笔记本所配Phoenix BIOS上,至于这台机子的bios是识别你U盘是0x00/0x80,还是启动后提示A:\//c:\已经不重要了,能启动到DOS成功就行 |
谢谢分享 |
本帖最后由 wuwuzz 于 2023-10-3 10:03 编辑 sizhou 发表于 2023-10-2 12:28 “不要局限bios识别U盘是什么,要看后续他怎么启动U盘,假设bios认为U盘是ZIP后,后续启动他会做什么, 怎么读U盘开始扇区代码进行启” ==================================================================================== 这个倒不是局限,实际上在14楼已经涉及到了。 一、BIOS按自己的算法对DISK进行细分(FDD、ZIP、HDD、LS120等),这一步站在上帝视角来看, 只是中间过渡步骤性质。BIOS要达到的最终目的:要么是移动盘0X00、要么是固定盘0X80。 (为了方便其他读者理解,这里用不精确但直观的描述方式),其实就是:要么作为软盘引导、要么 作为硬盘引导。剩下的软盘与硬盘引导方式区别、DOS和PE具体怎么引导,就不是BIOS要操心的了。 二、Phoenix ZIP之所以要费口舌,是因为它存在不确定性。既可能是软盘、也可能是硬盘。要看具体是 哪一种,然后根据实际,BIOS设定的CHS和LBA参数不一样,这将影响后续引导软件读盘位置 (进而可能引导成功或失败)。 三、其他补遗 1、AMI BIOS有捞过界的容错代码,有对FreeDOS引导失败的补丁(按说,这种琐碎事,不是BIOS的职责)。 2、Phoennix BIOS中,对同一个U盘,不同算法规则同时运算,可能会得到互斥结果。此时固定盘、移动盘 选择权会交给用户来选,即在设备菜单条目后有F/R选择标志。 |
wuwuzz 发表于 2023-10-2 11:49 是有点复杂,特别是虚拟机,可以改进下,下载的Linux系统可以写入U盘启动,很多Linux都支持live CD启动玩,其实Linux系统只要有哪条命令HARPARM换个别的版本也行的,做1次管终身,其中8G的U盘比较好,可以用HP格式化工具弄下,其MBR是标0/1/1也就是63扇区开始PBR,不需要用Linux系统了, 从早期DOS启动到现在Windows11,bios启动的标准不断改进也统一,在DOS启动时候,bios的启动乱七八糟,对不同容量的处理也各不相同,以前的阶段就没有PE概念,直接就是DOS进命令修复,其实不管bios认为U盘是ZIP还是HDD,最后只要启动U盘进到DOS就算成功,这个DOS版本有个win98的也比较特殊,可以兼容FDD和HDD启动,至于翻译的内容,你可以阅读原文的英文,里面是提到早期DOS对CHS的变化规则的,以及早期容量不同盘怎么处理,几个容量不同阶段 |
本帖最后由 wuwuzz 于 2023-10-2 12:05 编辑 sizhou 发表于 2023-10-2 10:23 这就复杂了。 这个帖子,正好我昨天看了几遍,包括机翻的内容,起因是oluolio问 USB-FDD的事情。这里面我最关注的内容就是关于ZIP的叙述(这个是被 搞得最混乱的概念)。 这里有几条前提要事前明说,否则可能会出现“公说公有理、婆说婆有理” 现象: 一、最好了解过BIOS内部USB启动算法代码,知道BIOS的思路。 二、观测手段的改进,眼见不一定为实(例如:直观感受的话,太阳 是围绕地球转的)。最忌讳的就是:我通过测试XX种BIOS,表面发现 YY现象,然后ZZ结论。 比较硬核的观察手段就是动用硬件USB协议分析仪(抓包器),它可以 直接监听"看到"UEFI/BIOS与U盘的会话过程,既知道底层细节,也 能够与“一中BIOS算法”相互印证。 ================================================================ 正题:概念理清。 一、移动、固定 BIOS说的移动、固定,是指驱动器设备, 移动盘设备,将被赋予盘号0X00,表现为DOS下A:> 固定盘设备,将被赋予盘号0X80,表现为DOS下C:> U盘的移动、固定(在windows中有表现),指的是盘片(介质) 是否可移动,由固件中移动介质位RMB=0/1控制。 U盘存储芯片物理上是固定的,但传统上会把RMB位设置为移动 (没有理由。当然,通过量产工具,可以改为固定)。 有的BIOS算法(比如AMI),有编译选项--是否拿RMB的情况,来作为 判定设备移动、固定的条件之一。 二、ZIP(最混乱的概念) 1.狭义的ZIP,是指Iomega ZIP驱动器,它是一种两栖设备,通过跳线或专用指令, 可以设为固定设备(C:>),也可以是移动设备(A:>)。(机翻内容中,也有这一段例子)。 ZIP驱动器早已消亡,但其“可切换导致CHS和LBA扇区数变动”思路影响到BIOS的汇编 代码编制者。Phoenix BIOS的代码是按这个标准来判定的。 2.其他厂家BIOS对ZIP的判定,由其算法决定。 3.量产工具。SMI量产工具中的USB-ZIP,实际是指RMB位为移动,它就是来捣乱的。 4.关于格式化工具对MBR/PBR之类做手脚、“格式化成ZIP”的说法(包括层主在 linux下对32/64的设定。这种类似操作在更早的时间,victor888就发过帖子,我 也参与过,当然那时对BIOS和ZIP的认识、手段还没有今天这样的水准。这当中, pendrivelinux的ZIP叙述有重大误导作用),在我看来,要看具体情况,我倾向于 本质上作用不大: (1)这种操作,对Phoenix BIOS无效。因为Phoenix算法,采信U盘固件信息,不看MBR。 无论怎么改,BIOS无视。 (2)这种操作,会影响特定条件下的AMI BIOS。AMI算法,首先采信U盘固件信息, 但有的早期版本同时也看MBR的情况作为辅助。这时对MBR的操作,会影响AMI的判定结果。 (机翻的帖子中,也谈到了这一点) (3)pendrivelinux的误导,在于倒果为因。BIOS首先是根据固件信息(主要是容量- 总扇区数),按特定算法把U盘判定为ZIP。然后,再按ZIP MBR-32/64的特性去处理, 这个过程是自动的。而不是反过来,先把U盘MBR参数搞成32/64,然后试图影响 BIOS对ZIP的判定。 |
http://bbs.c3.wuyou.net/forum.php?mod=viewthread&tid=419727 看下我提的方法怎么样,可能这个bios对小容量U盘比较友好 |
wuwuzz 发表于 2023-10-2 09:42 暂时没有碰到这种,没有发言权... |
邪恶海盗 发表于 2023-10-2 09:28 对USB-ZIP的判定,Phoenix BIOS的算法是严格按照真实Iomega ZIP驱动器特性 来进行的。(也就是狭义的ZIP)。因此,普通U盘(移动介质盘)拿来,是不会被 识别为USB-ZIP的。菜单项不会出现USB-ZIP:某某U盘。 普通U盘将可能被识别为USB-HDD或USB-KEY。 结果是一样的,BIOS盘号0x00,DOS下A:>。USB-HDD在DOS下A:>不是C:>的原因, 我上面说了。 |
zhxy9804 发表于 2023-10-2 09:17 BIOS的INT13服务实际就是这样啊,展现给用户的,是统一的调用界面, 屏蔽了USB/IDE...等的区别。(或者说,USB、IDE...的不同驱动,由BIOS在内部自己搞定) |
学习学习 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.