无忧启动论坛

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

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

    [复制链接]
341#
发表于 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
回复

使用道具 举报

340#
发表于 2023-1-25 14:55:28 来自手机 | 只看该作者
求道者 发表于 2023-1-25 13:18
量产吗?
但HDD模式下还是很异常吧。

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

点评

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

使用道具 举报

339#
发表于 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
回复

使用道具 举报

338#
发表于 2023-1-25 11:41:02 来自手机 | 只看该作者
不是普通U盘,是稀有的带FDD仿真功能
的老U盘。其固件参数,符合Phoenix
Bios的FDD算法。

点评

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

使用道具 举报

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


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

使用道具 举报

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

见334#进展
回复

使用道具 举报

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

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

使用道具 举报

334#
发表于 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
回复

使用道具 举报

333#
发表于 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
回复

使用道具 举报

332#
发表于 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
回复

使用道具 举报

331#
发表于 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
回复

使用道具 举报

330#
发表于 2023-1-24 21:41:52 | 只看该作者
wuwuzz 发表于 2023-1-24 21:19
按照你的想法,试了一下。

首先做了1个1.44MB的软驱、DOS启动盘。然后将其dd克隆至USB-HDD,跟踪该HDD ...

试试WEE。
不用放文件到分区里。
WEE63个扇区都有代码。
看看是不是有啥LBA超限之类的问题。

点评

wee放MBR还是一样。没F10前读2次LBA0,选中F10 USBHDD菜单后,跳到PBR, 引导DOS(分区里放了IO.SYS)。wee菜单没能出现。  详情 回复 发表于 2023-1-24 22:08
回复

使用道具 举报

329#
发表于 2023-1-24 21:25:18 | 只看该作者
本帖最后由 求道者 于 2023-1-24 21:31 编辑
wuwuzz 发表于 2023-1-24 21:19
按照你的想法,试了一下。

首先做了1个1.44MB的软驱、DOS启动盘。然后将其dd克隆至USB-HDD,跟踪该HDD ...

那看来只有PBR也能启动。
这个启动行为就比较正常。
yaya有什么点子?
现在给我整不会了。


回复

使用道具 举报

328#
发表于 2023-1-24 21:19:29 | 只看该作者
求道者 发表于 2023-1-24 19:25
试试直接把分区的RAW磁盘镜像直接往U盘里写。
再修改PBR为G4D的PBR。
放置grldr到分区里。

按照你的想法,试了一下。

首先做了1个1.44MB的软驱、DOS启动盘。然后将其dd克隆至USB-HDD,跟踪该HDD
在神舟Phoenix BIOS下的启动情况,

在我按F10显示BIOS启动菜单前,BIOS先是read两次LBA0(PBR)。等我选中菜单
HDD项,按回车后,BIOS又read一次LBA0(PBR),然后read LBA13,成功启动
到DOS,屏幕显示A:> 。每次都是读一个扇区(512字节)。

======================================================
用BOOTICE替换PBR为GRLDR,重复以上操作,BIOS反应与上面相同。这次是启动到
g4d命令行。

点评

试试WEE。 不用放文件到分区里。 WEE63个扇区都有代码。 看看是不是有啥LBA超限之类的问题。  详情 回复 发表于 2023-1-24 21:41
那看来只有PBR也能启动。  详情 回复 发表于 2023-1-24 21:25
回复

使用道具 举报

327#
发表于 2023-1-24 19:25:34 | 只看该作者
本帖最后由 求道者 于 2023-1-24 19:29 编辑
wuwuzz 发表于 2023-1-24 19:21
按F10键出BIOS菜单前,BIOS确实在读盘,
不仅分析仪,我把U盘灯也设置成读盘闪亮、不读盘不亮。
可以看 ...

试试直接把分区的RAW磁盘镜像直接往U盘里写。
再修改PBR为G4D的PBR。
放置grldr到分区里。
看能不能启动。
这样就彻底摧毁了分区表和MBR。
我的理解中,软盘镜像就等同于分区的RAW磁盘镜像。
就像是直接dd /dev/sda1到镜像。

点评

按照你的想法,试了一下。 首先做了1个1.44MB的软驱、DOS启动盘。然后将其dd克隆至USB-HDD,跟踪该HDD 在神舟Phoenix BIOS下的启动情况, 在我按F10显示BIOS启动菜单前,BIOS先是read两次LBA0(PBR)。等我选  详情 回复 发表于 2023-1-24 21:19
回复

使用道具 举报

326#
发表于 2023-1-24 19:21:44 | 只看该作者
求道者 发表于 2023-1-24 17:47
结合前面格式化成FAT32的过程我理解了。
在你按下BootMenu选单前的BIOS应该是在找PBR的位置。
从你按下 ...

按F10键出BIOS菜单前,BIOS确实在读盘,
不仅分析仪,我把U盘灯也设置成读盘闪亮、不读盘不亮。
可以看到U盘灯闪了2下。

点评

试试直接把分区的RAW磁盘镜像直接往U盘里写。 再修改PBR为G4D的PBR。 放置grldr到分区里。 看能不能启动。 这样就彻底摧毁了分区表和MBR。  详情 回复 发表于 2023-1-24 19:25
回复

使用道具 举报

325#
发表于 2023-1-24 19:20:49 | 只看该作者
wuwuzz 发表于 2023-1-24 19:17
你分析的有道理。

把Ventoy盘、Fbinst盘的可见FAT分区全都塞了grldr

这套引导逻辑太奇怪了。
从软盘启动确实是要找PBR没错。
但软盘没有分区表啊。
为什么要去读取硬盘介质下才存在的分区表?
然后去找分区里的PBR。
绕这么一大圈才启动。
按理说根本不能启动才是对的。

回复

使用道具 举报

324#
发表于 2023-1-24 19:17:26 | 只看该作者
求道者 发表于 2023-1-24 17:47
结合前面格式化成FAT32的过程我理解了。
在你按下BootMenu选单前的BIOS应该是在找PBR的位置。
从你按下 ...

你分析的有道理。

把Ventoy盘、Fbinst盘的可见FAT分区全都塞了grldr
通过PBR引导,都成功启动到G4D了。


点评

这套引导逻辑太奇怪了。 从软盘启动确实是要找PBR没错。 但软盘没有分区表啊。 为什么要去读取硬盘介质下才存在的分区表? 然后去找分区里的PBR。 绕这么一大圈才启动。  详情 回复 发表于 2023-1-24 19:20
回复

使用道具 举报

323#
发表于 2023-1-24 19:06:36 | 只看该作者
结合前面格式化成FAT32的过程我理解了

使用你前面提供的压缩包,运行fbinst,使用程序自带的虚拟机测试,可以出菜单。但是回车后,也是提示找不到文件。不知道是虚拟机比较弱,还是压缩包损坏了。
回复

使用道具 举报

322#
发表于 2023-1-24 17:47:10 | 只看该作者
本帖最后由 求道者 于 2023-1-24 17:57 编辑
wuwuzz 发表于 2023-1-24 07:40
开机后,BIOS启动前后完整过程:

结合前面格式化成FAT32的过程我理解了。
在你按下BootMenu选单前的BIOS应该是在找PBR的位置。
从你按下BootMenu并选择项目之后,PBR被读取并执行了。
我用BOOTICE看了一下fbinst方案下的PBR。
fbinst没写入专用的PBR。
默认似乎还是微软PBR。
那么你格式化成FAT32之后的变化就可以理解了。
PBR没找到引导文件。
用G4D的引导文件看看?
在FAT32里放个GRLDR应该就能启动了。

这个符合逻辑,毕竟已经被认为是软盘了。
那按照软盘的逻辑来说就是没有MBR的。
从PBR引导就很正常了。
不过蛮奇怪的。
如果没有分区表和MBR。
BIOS咋找到的PBR。
读取LBA0的时候,估计顺便读取了分区表。
然后找第一个分区。
执行第一个分区的PBR。

如果确实如此。
这流程感觉也太弱智了。

点评

按F10键出BIOS菜单前,BIOS确实在读盘, 不仅分析仪,我把U盘灯也设置成读盘闪亮、不读盘不亮。 可以看到U盘灯闪了2下。  详情 回复 发表于 2023-1-24 19:21
你分析的有道理。 把Ventoy盘、Fbinst盘的可见FAT分区全都塞了grldr 通过PBR引导,都成功启动到G4D了。  详情 回复 发表于 2023-1-24 19:17
回复

使用道具 举报

321#
发表于 2023-1-24 16:53:32 | 只看该作者
本帖最后由 wuwuzz 于 2023-1-24 17:11 编辑
2011yaya2007777 发表于 2023-1-24 14:42
嗷,时间久了,phoenix BIOS的源码算法不用找了,就如你说的也没有什么大的作用。谢谢你耐心的解答。

我找了。

原始ASM汇编文件内容太长,N个子程序跳来跳去,可读性差,
所以我做了删减,能够看出主思路,所需的关键子程序和参数
文件一并打包发送。供参考。

如果有疑问,请发帖。我有时间的话,会尽我所能回复。
phoenixBIOS_Fix_Remove算法相关.zip (6.59 KB, 下载次数: 9)


回复

使用道具 举报

320#
发表于 2023-1-24 14:42:11 来自手机 | 只看该作者
嗷,时间久了,phoenix BIOS的源码算法不用找了,就如你说的也没有什么大的作用。谢谢你耐心的解答。

点评

我找了。 原始ASM汇编文件内容太长,N个子程序跳来跳去,可读性差, 所以我做了删减,能够看出主思路,所需的关键子程序和参数 文件一并打包发送。供参考。  详情 回复 发表于 2023-1-24 16:53
回复

使用道具 举报

319#
发表于 2023-1-24 14:07:52 | 只看该作者
2011yaya2007777 发表于 2023-1-24 11:13
关于8GU盘被识别为软盘的问题:
1. 分区接近8G,不符合“以528MB(按扇区数表达)为界限”。
2. 移动介质位 ...

一、您可能理解有误了。

306#的发言,是根据前面的提问,讨论不同BIOS removeable/fixed算法的。
前半段是讲AMI BIOS的算法,这种BIOS是能正常识别fixed HDD的,不存在8G盘被设为A:的情况。
LZ和我讲的8G/128G盘被设为A:的环境是:问题机神舟K470本,在Phonenix BIOS下。
============================================================

二、其实没必要纠结为什么phoenix BIOS下,它们被设为A:。因为299#图片实际上已经表明,
128G第一驱LUN已经被识别成USB-HDD(也就是算法一直正常工作到设备类型判定),然后fixed
属性开始不正常,没能正常赋予FIXED属性。
==========================================================
三、需要纠结的是,当HDD设备被设定为removeable后,对启动软件的影响,是不是非常大,
导致其无法正常工作。

=================================================================
四、phoenix BIOS的源码算法,我得再找一找才能回复,时间太久,细节忘得很多。说错话
是有可能的。不过,即使找到看,也是“正常情况下”应该是某某结果,对“非正常情况”(比如上面神舟K470的
修改裁剪)可能并不适用。

回复

使用道具 举报

318#
发表于 2023-1-24 14:05:26 | 只看该作者
2011yaya2007777 发表于 2023-1-24 10:55
求道者的fbinst,有10秒延时,可以出现启动图像,有一项菜单。
他的菜单是:
timeout 10

我复查了一下菜单,grldr的正确无误。
fb的菜单,默认延时为0,我改成10后又试了。

在神舟K470-phoenix BIOS下,最后仍然无效,
没有出现两者的任何一个菜单,直接进本机硬盘winxp了。


回复

使用道具 举报

317#
发表于 2023-1-24 11:13:45 | 只看该作者
关于8GU盘被识别为软盘的问题:
1. 分区接近8G,不符合“以528MB(按扇区数表达)为界限”。
2. 移动介质位(RMB)是固定,不符合评定标准。
3. MBR/PBR也没有发现什么不对的地方。
4. 分区ID也正常。
所以为什么分配盘符为A:,仍然是个迷。

/*
Phoenix的算法:
设置一个字节结果判别fixed/removeable,这个字节有8个位。
其中有几条运算规则,这些规则分别影响那8个不同位的0/1变化。
1.是容量(扇区数)
2.ZIP驱动器专用指令执行结果
*/
上面的内容有时间的话,再展开说说。

点评

一、您可能理解有误了。 306#的发言,是根据前面的提问,讨论不同BIOS removeable/fixed算法的。 前半段是讲AMI BIOS的算法,这种BIOS是能正常识别fixed HDD的,不存在8G盘被设为A:的情况。 LZ和我讲的8G/128G  详情 回复 发表于 2023-1-24 14:07
回复

使用道具 举报

316#
发表于 2023-1-24 10:55:07 | 只看该作者
求道者的fbinst,有10秒延时,可以出现启动图像,有一项菜单。
他的菜单是:
timeout 10
default 0
command --set-path=(bd)/
find --set-root /MESSAGE
gfxmenu /MESSAGE
graphicsmode -1 1024:1920 768:1080 24:32

set UFI_UUID=562A-0853
set UFD_UUID=F108-3ACE

title tinycore
set isofile=/Linux/TinyCore-current.iso
find --set-root %isofile%
map %isofile% (0xff)
map --hook
kernel (0xff)/boot/vmlinuz loglevel=3 waitusb=5 vga=791 video=vesafb:ywrap,mtrr:3 showapps tce=UUID=562A-0853 iso=UUID=562A-0853/Linux/TinyCore-current.iso
initrd (0xff)/boot/core.gz

运行FbinstTool_1.7.exe,可以查看Grldr菜单,可以修改,右键保存。
你是不是把TC.fba释放到U盘,再从U盘启动的?如果是,看看是否菜单里面有不适应的地方。

启动光盘镜像是在可见分区,即LBA(0x400000)。

点评

我复查了一下菜单,grldr的正确无误。 fb的菜单,默认延时为0,我改成10后又试了。 在神舟K470-phoenix BIOS下,最后仍然无效, 没有出现两者的任何一个菜单,直接进本机硬盘winxp了。  详情 回复 发表于 2023-1-24 14:05
回复

使用道具 举报

315#
发表于 2023-1-24 10:41:53 来自手机 | 只看该作者
2011yaya2007777 发表于 2023-1-24 09:11
感谢wuwuzz详尽的解释。
315#的启动U盘,有5个LUN?分别是:usb-hdd,usb-cdrom,usb-zip,usb-zip,usb-k ...

key是BIOS自己搞出来的名称,泛指U盘。
事实上,U启规范只粗略定义了磁盘类、
光驱类设备。fdd/zip/hdd/key/ls120都是
BIOS开发者自定义出来细分的东西,
不同厂家算法不同。只有1.44M软驱这个
特例,是不同BIOS厂家算法趋同。

在phoenix下,key可以看成ZIP的条件
宽松版,可以Removeable/Fixed双选。
ZIP要求的固件参数符合条件更多。

~~~~~~~~~~~~~~~~~~
F10键是很早就开始多次按(要不然可能
很快跳过)。但BIOS确实是不管你怎么
想/干,只要磁盘类设备被确认,自动、
直接就会读LBA0。数据长度都是1个
block(512字节)。

出现USB~HDD菜单再选时,会进入
读PBR动作。数据长度还是1个
block(512字节)。
~~~~~~~

ventoy情况有所不同,在PBR读之后,
还有后续又读了几次,长度不等。

因上午我要面见一位老师,回复可能
不及时。下午我回来后再继续。
回复

使用道具 举报

314#
发表于 2023-1-24 09:11:25 | 只看该作者
本帖最后由 2011yaya2007777 于 2023-1-24 10:08 编辑

感谢wuwuzz详尽的解释。
315#的启动U盘,有5个LUN?分别是:usb-hdd,usb-cdrom,usb-zip,usb-zip,usb-key,usb-key?(key是软盘?key的英文还有这一层意义?)

第1.843秒、第1.849秒,BIOS读U盘MBR(0),此时你还没有按F10键。
按了F10键。出现303#菜单,你选择第一项usb-hdd,回车。按理说这时应当首先读usb-hdd的0扇区,怎么没有这个过程?可能是先前读过有记录了?UD分区的代码是这样:CHS读0-1-1,获得每磁道扇区数,再读1-0-1,获得磁头数。然后读某固定扇区,开始他的正常启动代码,即读隐藏分区的目录及文件。这些过程没有反映出来。分析仪可以看到读哪个扇区,还应当看到读了多少扇区。你以后描述读过程,把读扇区数表述出来。

从你的描述,似乎BIOS没有把控制权交给UD的逻辑0扇区,而是自作聪明地把控制权交给分区表里唯一的一个扇区,即UD的可见分区?也可能求道者的启动镜像放在这个分区?

点评

key是BIOS自己搞出来的名称,泛指U盘。 事实上,U启规范只粗略定义了磁盘类、 光驱类设备。fdd/zip/hdd/key/ls120都是 BIOS开发者自定义出来细分的东西, 不同厂家算法不同。只有1.44M软驱这个 特例,是不同BIO  详情 回复 发表于 2023-1-24 10:41
回复

使用道具 举报

313#
发表于 2023-1-24 08:56:29 | 只看该作者
大佬腻害呀
回复

使用道具 举报

312#
发表于 2023-1-24 08:51:29 | 只看该作者
求道者 发表于 2023-1-23 21:28
那你干脆把ventoy的分区格成FAT32.
分区没限制。

我试了一下格式成FAT32,有进展。
这次BIOS不直接跳过了,而是提示未找到操作系统,拔掉未包含操作系统的盘。

从分析仪监听结果看,流程跟以前差不多。读了2次MBR(LBA=0)
然后读了LAB=0x800、0x80c、0x4800等处,应该是读了PBR并跳转。


回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-16 09:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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