无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: rgy

[教程] [20190106]慧荣主控”免量产“自由划分多个驱动器(最多7个)

    [复制链接]
发表于 2023-1-24 22:08:17 | 显示全部楼层
求道者 发表于 2023-1-24 21:41
试试WEE。
不用放文件到分区里。
WEE63个扇区都有代码。

wee放MBR还是一样。没F10前读2次LBA0,选中F10 USBHDD菜单后,跳到PBR,
引导DOS(分区里放了IO.SYS)。wee菜单没能出现。

点评

G4D的MBR不是有16个扇区大吗? 按理说引导过程中所有写有G4D MBR的LBA应该都会被读取吧。 那应该不止LBA0会被读取吧。  详情 回复 发表于 2023-1-24 22:18
回复

使用道具 举报

发表于 2023-1-24 22:18:18 | 显示全部楼层
wuwuzz 发表于 2023-1-24 22:08
wee放MBR还是一样。没F10前读2次LBA0,选中F10 USBHDD菜单后,跳到PBR,
引导DOS(分区里放了IO.SYS)。 ...

G4D的MBR不是有16个扇区大吗?
按理说引导过程中所有写有G4D MBR的LBA应该都会被读取吧。
那应该不止LBA0会被读取吧。

WEE为什么也不能启动呢?
WEE不是基本上等于G4D的精简吗?

点评

见334#进展  详情 回复 发表于 2023-1-25 10:18
回复

使用道具 举报

发表于 2023-1-25 06:29:20 来自手机 | 显示全部楼层
不点说过,wee是为硬盘准备的,U盘优势不大。既然已经启动到G4D的命令行,为何不继续走下去。建一个菜单,使用chainloader加载光盘镜像,不要使用linux的方式。不要在UD分区试验,要在普通fat分区或者fat32分区试验。如果分区不止一个,先用find  set-root  /xxxxxxxx方式确定光盘镜像的分区。因为有可能光盘镜像不在启动分区上。如果启动成功,皆大欢喜。如果由于启动U盘的盘符是A导致失败,再想办法。如果盘符是A,光盘镜像必须放在启动分区,另外一个分区有可能不能识别。以上是我的建议,仅供参考。

点评

参见334#进展。另321#放了Phoenixbios算法。  详情 回复 发表于 2023-1-25 09:23
回复

使用道具 举报

发表于 2023-1-25 09:17:02 来自手机 | 显示全部楼层
已经解决部分异常。答案是:
只要骗过phoenix BIOS,让phoenix BIOS
认为U盘设备类型是FDD,则所有流程都会
按大家预想的那样进行。即:
1.不会提前READ  LBA0,F10选了FDD设备项
才会read lba0
2.MBR中的引导软件会正常执行(包括wee)

点评

怎么办到的?  详情 回复 发表于 2023-1-25 11:08
回复

使用道具 举报

发表于 2023-1-25 09:23:09 | 显示全部楼层
2011yaya2007777 发表于 2023-1-25 06:29
不点说过,wee是为硬盘准备的,U盘优势不大。既然已经启动到G4D的命令行,为何不继续走下去。建一个菜单, ...

参见334#进展。另321#放了Phoenixbios算法。
回复

使用道具 举报

发表于 2023-1-25 10:18:51 | 显示全部楼层
求道者 发表于 2023-1-24 22:18
G4D的MBR不是有16个扇区大吗?
按理说引导过程中所有写有G4D MBR的LBA应该都会被读取吧。
那应该不止LB ...

见334#进展
回复

使用道具 举报

发表于 2023-1-25 11:08:13 来自手机 | 显示全部楼层
本帖最后由 求道者 于 2023-1-25 11:13 编辑
wuwuzz 发表于 2023-1-25 09:17
已经解决部分异常。答案是:
只要骗过phoenix BIOS,让phoenix BIOS
认为U盘设备类型是FDD,则所有流程都 ...


怎么办到的?
u盘的标识符?
回复

使用道具 举报

发表于 2023-1-25 11:41:02 来自手机 | 显示全部楼层
不是普通U盘,是稀有的带FDD仿真功能
的老U盘。其固件参数,符合Phoenix
Bios的FDD算法。

点评

量产吗?  详情 回复 发表于 2023-1-25 13:18
回复

使用道具 举报

发表于 2023-1-25 13:18:04 来自手机 | 显示全部楼层
本帖最后由 求道者 于 2023-1-25 13:21 编辑
wuwuzz 发表于 2023-1-25 11:41
不是普通U盘,是稀有的带FDD仿真功能
的老U盘。其固件参数,符合Phoenix
Bios的FDD算法。


量产吗?
但HDD模式下还是很异常吧。

点评

没有量产工具,也没有HDD模式了, 在BIOS boot菜单项里就是 USB-FDC。  详情 回复 发表于 2023-1-25 14:55
回复

使用道具 举报

发表于 2023-1-25 14:55:28 来自手机 | 显示全部楼层
求道者 发表于 2023-1-25 13:18
量产吗?
但HDD模式下还是很异常吧。

没有量产工具,也没有HDD模式了,
在BIOS  boot菜单项里就是
USB-FDC。

点评

那HDD模式下的 启动异常还是无法解决。 只能认为被错误识别为软盘的情况下,BIOS会额外的关注分区。  详情 回复 发表于 2023-1-25 19:25
回复

使用道具 举报

发表于 2023-1-25 19:25:02 | 显示全部楼层
本帖最后由 求道者 于 2023-1-25 19:27 编辑
wuwuzz 发表于 2023-1-25 14:55
没有量产工具,也没有HDD模式了,
在BIOS  boot菜单项里就是
USB-FDC。

那HDD模式下的 启动异常还是无法解决。
只能认为被错误识别为软盘的情况下,BIOS会额外的关注分区。
用G4D的MBR的话,在HDD模式下也只会读取LBA0?
其他LBA在启动菜单选择U盘之后也不会被读取吗?

我记得你说用G4D的MBR是引导成功的。
不会是PBR的功劳吧?

点评

神舟K470 phoenix BIOS下,USB-HDD引导菜单项 MBR是无论是win的、还是G4D、wee,都会多次读,但似乎不起作用, 不会激活相应的引导软件(比如G4D的menu.lst)菜单。 起作用的是PBR。PBR放的是win的,则启动IO.S  详情 回复 发表于 2023-1-25 20:38
回复

使用道具 举报

发表于 2023-1-25 20:38:52 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-1-25 20:42 编辑
求道者 发表于 2023-1-25 19:25
那HDD模式下的 启动异常还是无法解决。
只能认为被错误识别为软盘的情况下,BIOS会额外的关注分区。
用 ...

神舟K470 phoenix BIOS下,选USB-HDD引导菜单项

MBR是无论是win的、还是G4D、wee,都会多次读,但似乎没发挥相应作用,
不会激活相应的引导软件(比如G4D的menu.lst)菜单。

起作用的是PBR。PBR放的是win的,则启动IO.SYS到dos
放的是G4D,则按menu.lst 来启动。




点评

[attachimg]518452[/attachimg] Fbinst的引导代码只从0060开始。 和PBR的内容不冲突。 那可以用PBR和Fbinst的0060到01B7的内容进行混合。 但01BE到01FD的分区表要擦除吗? 这段偏移在PBR里是BOOTSTRAP CODE的范  详情 回复 发表于 2023-1-25 22:33
看起来就是单纯的MBR都没生效。 BIOS读取LBA0只是为了分区表和PBR。  详情 回复 发表于 2023-1-25 20:44
回复

使用道具 举报

发表于 2023-1-25 20:44:22 | 显示全部楼层
本帖最后由 求道者 于 2023-1-25 21:28 编辑
wuwuzz 发表于 2023-1-25 20:38
神舟K470 phoenix BIOS下,选USB-HDD引导菜单项

MBR是无论是win的、还是G4D、wee,都会多次读,但似乎 ...

看起来就是单纯的MBR都没生效。
BIOS读取LBA0只是为了分区表和PBR。
强行要兼容的话。
可以试着特制一个Fbinst的PBR。
指向UD。
估计就能启动。
我记得你说在摧毁了分区表和MBR之后也能被引导。
估计是因为BIOS第一次读取LBA0是按照FDD的搞法。
直接找到PBR,第二次读取LBA0估计是在LBA0找不到PBR的话就去找分区表,找到第一个分区的时候就在你按下启动菜单之后执行第一个分区的PBR。

在这个逻辑下似乎存在一个特例。
FDD那种状况下的LBA0是存在PBR的。


那么他是如何判断自己找到PBR了呢?

MBR和PBR的签名不都是0x55 0xAA吗?
没区别啊。





数据结构还是差了很远。

回复

使用道具 举报

发表于 2023-1-25 22:33:30 | 显示全部楼层
本帖最后由 求道者 于 2023-1-25 23:52 编辑
wuwuzz 发表于 2023-1-25 20:38
神舟K470 phoenix BIOS下,选USB-HDD引导菜单项

MBR是无论是win的、还是G4D、wee,都会多次读,但似乎 ...

Screenshot_20230125_222109.jpg
Fbinst的引导代码只从0060开始。
和PBR的内容不冲突。
那可以用PBR和Fbinst的0060到01B7的内容进行混合。
但01BE到01FD的分区表要擦除吗?
这段偏移在PBR里是BOOTSTRAP CODE的范围。
可以进行测试。
将MBR伪造成PBR。

Screenshot_20230125_223812.jpg

混合了FAT32的分区信息的MBR在QEMU里可以启动。
但我现在还没有擦除分区表。
wuwuzz亲你试试不擦除分区表看不能引导Fbinst。
首先只混合FAT32的分区信息到LBA0,别擦除分区表。
也许能启动。
不然如果一定要擦掉分区表才能启动的话。
这个方案就算能启动,那也价值不大。
然后我发现偏移0000到0002的这块的jmp指令没啥用啊。
不管是EB 5E 00还是EB 58 90,似乎Fbinst都能启动。
为了防止干扰,我把1-63扇区的内容全部填0了。
但还是能启动。

点评

没成功启动。 hdd菜单下,BIOS读了MBR---又读了改造后的PBR--(可能又根据PBR代码指示)读了其他东西---但可能地址不对,卡住了。 知道了这个BUG BIOS机HDD下的工作流程,搞好PBR(比如放wee、G4D)就可以工作了。  详情 回复 发表于 2023-1-26 12:06
回复

使用道具 举报

发表于 2023-1-26 12:06:31 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-1-26 12:07 编辑
求道者 发表于 2023-1-25 22:33
Fbinst的引导代码只从0060开始。
和PBR的内容不冲突。
那可以用PBR和Fbinst的0060到01B7的内容进行混 ...

没成功启动。

hdd菜单下,BIOS读了MBR---又读了改造后的PBR--(可能又根据PBR代码指示)读了其他东西---但可能地址不对,卡住了。

知道了这个BUG BIOS机HDD下的工作流程,搞好PBR(比如放G4D)就可以工作了。fb的分区太复杂,不讨论了。

点评

擦掉分区表呢? 能启动吗?  详情 回复 发表于 2023-1-26 13:13
回复

使用道具 举报

发表于 2023-1-26 13:13:41 | 显示全部楼层
本帖最后由 求道者 于 2023-1-26 13:16 编辑
wuwuzz 发表于 2023-1-26 12:06
没成功启动。

hdd菜单下,BIOS读了MBR---又读了改造后的PBR--(可能又根据PBR代码指示)读了其他东西--- ...

擦掉分区表呢?
能启动吗?
实在不知道运行LAB0里的代码的条件,那就算了。
毕竟是纯纯的黑箱。
整不明白也正常。

回复

使用道具 举报

 楼主| 发表于 2023-1-26 20:41:46 | 显示全部楼层
讨论得好热闹啊,看得我蠢蠢欲动,都想做几个启动盘,再把主贴更新下了。
你们讨论的都太高深,一看就专业啊,我是好用而不求甚解,能启动怎么的都行。
回复

使用道具 举报

发表于 2023-1-27 02:27:09 来自手机 | 显示全部楼层
rgy 发表于 2023-1-26 20:41
讨论得好热闹啊,看得我蠢蠢欲动,都想做几个启动盘,再把主贴更新下了。
你们讨论的都太高深,一看就专业 ...

到了这步,就完全是黑箱操作了,BIOS在干嘛,只有鬼知道了,贼麻烦。
回复

使用道具 举报

发表于 2023-1-28 14:24:48 来自手机 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-1-28 14:33 编辑

以前是黑箱,现在不同了。有分析仪,
黑箱被撕开了口子。

作为比较,找了同系支持USB-HDD的Phoenix BIOS(联想F31A机),测试了USB-HDD的启动过程,还是那些U盘,还是那些FB、DOS+G4D.EXE,均正常进入画面。流程比先前K470  Phoenix bios更复杂一些,内容较多,等有空再研究。

对于开源软件G4D、FB,LBA0应该不是啥问题,咋个执行法,读到的内容是啥,本坛的开发者们应该清楚。当然,我是不懂的。这个事其实就是“解析”。

——与分析仪类似,硬件抓包器抓到一堆16进制数,这些16进制数解读出来,成为易读内容,就要靠解析软件进行傻瓜化。分析仪好坏,很大一部分原因其实并不取决于硬件,而是取决于解析软件。硬件上,大家都能抓包,但解析软件,有的厂家做得不行,还要人肉二次解析,就不好用了。
回复

使用道具 举报

发表于 2023-1-29 17:57:53 | 显示全部楼层
神舟K470 phoenix BIOS下,选USB-HDD引导菜单项

在神舟K470 phoenix BIOS下,使用那个启动识别为盘符A的U盘,麻烦你测试一下(无论现在是UD分区或者通常分区):
cat --hex (fd0)+1
看看返回值是MBR还是PBR。

点评

丫丫能混合出一张能用的Fbinst假PBR吗?  详情 回复 发表于 2023-1-30 00:33
PBR。 第1张图32G盘,DOS+GRUB.EXE。 第2张图8G盘,FB+g4d(grldr装在可见FAT32分区) [attachimg]518859[/attachimg] [attachimg]518860[/attachimg]  详情 回复 发表于 2023-1-29 23:20
回复

使用道具 举报

发表于 2023-1-29 23:20:43 | 显示全部楼层
2011yaya2007777 发表于 2023-1-29 17:57
在神舟K470 phoenix BIOS下,使用那个启动识别为盘符A的U盘,麻烦你测试一下(无论现在是UD分区或者通常 ...

PBR。
第1张图32G盘,DOS+GRUB.EXE。
第2张图8G盘,FB+g4d(grldr装在可见FAT32分区)
1.jpg

2.jpg


回复

使用道具 举报

发表于 2023-1-29 23:28:20 | 显示全部楼层
大神!
回复

使用道具 举报

发表于 2023-1-30 00:33:41 | 显示全部楼层
2011yaya2007777 发表于 2023-1-29 17:57
在神舟K470 phoenix BIOS下,使用那个启动识别为盘符A的U盘,麻烦你测试一下(无论现在是UD分区或者通常 ...

丫丫能混合出一张能用的Fbinst假PBR吗?
回复

使用道具 举报

发表于 2023-1-30 09:57:41 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2023-1-30 10:00 编辑
丫丫能混合出一张能用的Fbinst假PBR吗?
PBR。

现在分析一下神舟K470 phoenix BIOS启动U盘的情况:
经过BIOS自己的判断,认为U盘是可移动介质,因此分配盘符A,隐藏第一个分区之前的扇区,修改(确切地说是减少)总扇区数,修改第一个分区(PBR)的参数表(BPB),具体是修改偏移0x1c处的4字节隐藏分区值。以求道者的UD为例,是将0x4000修改为0。然后把控制权移交给PBR代码。此时,使用int13/ah=42读LBA(0),由于隐藏了第一个分区之前的扇区,现在LBA(0)指向第一个分区(PBR),因而不是返回MBR代码,而是返回PBR代码。

BIOS根本就没有把控制权移交给MBR的代码,因此UD的引导代码没有起作用,隐藏分区的启动菜单及文件也没有使用。UD启动失败。

要想在这种情况下UD仍然可以成功启动,办法是:
把可见分区的启动代码修改为G4D的启动代码(使用bootice)(不要修改0x1c处的值),根目录放置grldr,建立相关启动目录,复制相关启动菜单及文件。(几乎是把隐藏分区的文件都搬过来了)
这样修改后,UD的优点荡然无存!

点评

UD的主要目的不是为了隐藏吧,是为了把最容易被BIOS读取的那段空间给引导程序用,然后顺便做了隐藏,包括前64扇区的引导记录也是为了兼容,我记得是这样。  详情 回复 发表于 2023-1-31 14:50
感谢YAYA的解读。 这个修改应该是在内存中进行的?  详情 回复 发表于 2023-1-30 21:26
突然想起了不点的multimbr,这玩意可能好使。不过multimbr方案就不要想着隐藏了……  详情 回复 发表于 2023-1-30 15:43
回复

使用道具 举报

发表于 2023-1-30 15:43:05 | 显示全部楼层
本帖最后由 sunsea 于 2023-1-30 15:44 编辑
2011yaya2007777 发表于 2023-1-30 09:57
现在分析一下神舟K470 phoenix BIOS启动U盘的情况:
经过BIOS自己的判断,认为U盘是可移动介质,因此 ...

突然想起了不点的multimbr,这玩意可能好使。
第一阶段的 MBR 引导记录代码,复制到最开头的 190 个扇区上。这 190 个扇区的每个扇区都带有 BPB 和分区表。

不过multimbr方案就不要想着隐藏了……
回复

使用道具 举报

发表于 2023-1-30 21:26:23 | 显示全部楼层
2011yaya2007777 发表于 2023-1-30 09:57
现在分析一下神舟K470 phoenix BIOS启动U盘的情况:
经过BIOS自己的判断,认为U盘是可移动介质,因此 ...

感谢YAYA的解读。

这个修改应该是在内存中进行的?


回复

使用道具 举报

发表于 2023-1-31 05:42:27 来自手机 | 显示全部楼层
应当是在读U盘的LBA(0)到缓存后修改的,然后传送回内存。

点评

谢谢YAYA的指点。  详情 回复 发表于 2023-1-31 13:15
BIOS会做这么无聊的事情吗? 这么说在启动的这一阶段除了第一分区之外的扇区都被隐藏了? 启动代码也无法访问这些扇区?  详情 回复 发表于 2023-1-31 09:10
回复

使用道具 举报

发表于 2023-1-31 09:10:47 来自手机 | 显示全部楼层
本帖最后由 求道者 于 2023-1-31 12:08 编辑
2011yaya2007777 发表于 2023-1-31 05:42
应当是在读U盘的LBA(0)到缓存后修改的,然后传送回内存。

BIOS会做这么无聊的事情吗?
无聊到了一定的地步。
这么说在启动的这一阶段除了第一分区之外的扇区都被隐藏了?
启动代码也无法访问这些扇区?
我当初也是觉得如果需要调整的地方太多了就放弃在此平台的USB-HDD兼容,当不能用就完事了。
现在确定整不了,那就用SM3257ENAA量产个USB-ZIP算了,3.0 U盘用HDD模式,在量产个CD-ROM。


现在看来确实如此。
只是探索BIOS到底在整什么活而已。

点评

我的看法: 不用搞得这么繁复吧,K470 Phoenix BIOS USB-HDD菜单下,SMI盘啥都不用调,就可以正常启动G4D,这就足够了。 fb/ventoy那样多分区,在此环境中,反而复杂化,不能正常启动。该放弃它们就要放弃。  详情 回复 发表于 2023-2-2 06:56
这个我与层主意见不同。我能理解K470 USB-HDD出现的这种“异常”, 也能理解YAYA的分析。这不一定是技术上的整活搞无聊事情,而更像是 固定模式用错了地方。 一、很显然Phoenix有完整的USB-HDD启动模块 (如联  详情 回复 发表于 2023-1-31 13:18
回复

使用道具 举报

发表于 2023-1-31 13:15:19 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2023-1-31 05:42
应当是在读U盘的LBA(0)到缓存后修改的,然后传送回内存。

谢谢YAYA的指点。
回复

使用道具 举报

发表于 2023-1-31 13:18:19 来自手机 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-1-31 13:33 编辑
求道者 发表于 2023-1-31 09:10
BIOS会做这么无聊的事情吗?
无聊到了一定的地步。
这么说在启动的这一阶段除了第一分区之外的扇区都被 ...

这个我与层主意见不同。我能理解K470 USB-HDD出现的这种“异常”,也能理解YAYA的分析。
这不一定是技术上的整活搞无聊事情,而更像是固定模式用错了地方。

一、很显然Phoenix有完整的USB-HDD启动模块(如联想F31A机上的,这个后面再详谈)。
但OEM给神舟K470机的显然功能不完整,这有2种可能:

1.神舟出于压缩成本考虑,没有购买配置完整模块。(这不稀奇,phoenix最早出售USB启动
功能时,连以USB2.0速度启动都要单独收费,乞丐版只能以USB1.1速度启动。联想F31A机
也是一样不完整,配了USB-HDD模块,但没有配USB-ZIP、USB-LS120启动模块)
2.神舟购买了完整源码,但改糊了。

二、不管是什么可能,结果一样:是USB-HDD也以removeable移动盘面孔出现。这又涉及
第2个问题:Phoenix bios的移动盘算法。这个算法有hide/unhide MBR计算。这很好理解,
有点类似于G4D的map fd思路/操作。

-----------------------------
再讲完整版USB-HDD启动模块的情况。除了想象中的读MBR/PBR,通过分析仪发现:
有一点与大家想的不同,Phoenix bios  USB—HDD在读完MBR后,不是立即就跳PBR,
当中有一段重要操作:读盘尾(最大LBA),也就是说,它有防LBA超限运算。

-------------------------------
最后,限制一下USB-ZIP的语意:
1.在SMI量产工具里,它指的是移动介质盘选项。
2.在phoenix BIOS下,它指的是符合Iomega ZIP驱动器设备特征(固件参数)的设备。
3.在其他BIOS下,由其具体算法确定ZIP的具体要求。

点评

神舟主要从蓝天那里拿货吧,他主要是贴牌。 他估计也不会改BIOS。  详情 回复 发表于 2023-1-31 14:45
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-16 21:38

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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