无忧启动论坛

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

[已解决] 请yaya看看,g4d usb驱动未能将U盘盘号0x00映射到0x81

  [复制链接]
跳转到指定楼层
1#
本帖最后由 wuwuzz 于 2024-11-27 08:24 编辑

2024.11.27更新解决:
usb --init之后,如果U盘盘号仍然是0x00,那么,可接续使用map (0) (0x80),即可达到想要效果。

=====================================原来的问题:

1、很久以前yaya说过"加载g4d的usb驱动,驱动会将盘符A映射到C",这个功能很有用,正好能解决神舟
A470/K470笔记本BIOS的bug[即:BIOS始终把U盘当移动盘(软盘)处理,跳过MBR,导致UD、Ventoy失败],
之前测试SMI U盘时0x00能成功映射到0x81。直到今天,无意中换其他SMI U盘、Alcor6989 U盘测试,
usb --init之后,U盘盘号均未能像以前一样,被映射为0x8?,而是保持为0x00,见下图。测试机:
神舟A470/K470笔记本,G4D为最新0.4.6a 2024-02-26。



2、目前的临时措施,是对U盘做手术,量产分割为2个Lun,usb --init之后,会出现0x00、0x81两个磁盘
设备,然后再调整root为0x81所在设备(hd1,0),有些笨拙。


======================================================================

问:不知yaya能否对此做改进,消除0x00,强制设定盘号为0x8?

53#
发表于 昨天 14:16 来自手机 | 只看该作者
呀,你这专研技术的劲头,值得点赞!
回复

使用道具 举报

52#
 楼主| 发表于 昨天 13:34 | 只看该作者
2011whp 发表于 2024-11-28 13:13
2011年那 会  U启   基本统一了 USB-hdd

2018年时 win10 认可了 u盘分区

神舟A470/K470(机型EHA4) USB-HDD的问题,是求道者在本坛先提出来的。
我就是为了查看实情,专门花了几百块从臭鱼上买来测试用。


回复

使用道具 举报

51#
 楼主| 发表于 昨天 13:30 | 只看该作者
红毛樱木 发表于 2024-11-28 12:40
你这机器还在吗,能玩不

在。电池/电源不行了,冷启要按2次开关。
都是烂大街的机子,臭鱼上应该还能找到,机型EHA4,花几百块能买。


回复

使用道具 举报

50#
发表于 昨天 13:13 | 只看该作者
2011年那 会  U启   基本统一了 USB-hdd

2018年时 win10 认可了 u盘分区

Ud是 解决 CHS的



2011年有了UEFI,(安全证书2011)
2023  微软更换 安全证书2023


有CHS 问题的电脑 基本 消失了。

看讨论  是主板商 定置时bios时 做手脚了 ,g4d能启动  其它的 还是算了。
单 讨论 技术  例外。


点评

神舟A470/K470(机型EHA4) USB-HDD的问题,是求道者在本坛先提出来的。 我就是为了查看实情,专门花了几百块从臭鱼上买来测试用。  详情 回复 发表于 昨天 13:34
回复

使用道具 举报

49#
发表于 昨天 12:40 来自手机 | 只看该作者
wuwuzz 发表于 2024-11-28 07:10
那就是同一个大话题。只不过当时还没有发现有0x00、0x81区别,本贴算是补全了。

你这机器还在吗,能玩不

点评

在。电池/电源不行了,冷启要按2次开关。 都是烂大街的机子,臭鱼上应该还能找到,机型EHA4,花几百块能买。  详情 回复 发表于 昨天 13:30
回复

使用道具 举报

48#
发表于 昨天 09:16 | 只看该作者
wuwuzz 发表于 2024-11-28 07:26
吐槽一下phoenix BIOS USB启动按模块收费政策。

这里的收费区分有:

创新发展,果然永不停息!

继 CPU 收费开启某功能,主板也启动了 “按功能收费” 的政策。

只有想不到,没有做不到。

接下来的 “新时代”,会是怎样一个时代呢?

请大家给出预测。
回复

使用道具 举报

47#
 楼主| 发表于 昨天 07:26 | 只看该作者
吐槽一下phoenix BIOS USB启动按模块收费政策。

这里的收费区分有:
1、USB 1.X低速、USB2.0高速分别收费。
2、USB-HDD、USB-ZIP、USB-LS120、USB-FDD等启动按模块分别收费。

第1个,通过G4D虚拟盘,加载DOS USB2驱动,然后加速PE载入速度解决;
第2个,就造成今天本贴这个局面。
神舟K470/A470是裁剪USB-HDD模块功能,但保留USB-ZIP、USB-LS120、USB-FDD模块;
联想F31A相反,保留USB-HDD模块,裁剪USB-ZIP等模块。

点评

创新发展,果然永不停息! 继 CPU 收费开启某功能,主板也启动了 “按功能收费” 的政策。 只有想不到,没有做不到。 接下来的 “新时代”,会是怎样一个时代呢? 请大家给出预测。  详情 回复 发表于 昨天 09:16
回复

使用道具 举报

46#
 楼主| 发表于 昨天 07:10 | 只看该作者
红毛樱木 发表于 2024-11-27 23:06
就无奈群里说的,识别为fd后用pbr的grub4dos跳回ud

那就是同一个大话题。只不过当时还没有发现有0x00、0x81区别,本贴算是补全了。

点评

你这机器还在吗,能玩不  详情 回复 发表于 昨天 12:40
回复

使用道具 举报

45#
发表于 前天 23:06 来自手机 | 只看该作者
wuwuzz 发表于 2024-11-27 20:56
哪个问题?是在本坛说的,还是无奈U盘群里?

这里的问题是,UD被BIOS屏蔽了,要有一个恢复环节,然后 ...

就无奈群里说的,识别为fd后用pbr的grub4dos跳回ud

点评

那就是同一个大话题。只不过当时还没有发现有0x00、0x81区别,本贴算是补全了。  详情 回复 发表于 昨天 07:10
回复

使用道具 举报

44#
 楼主| 发表于 前天 20:58 | 只看该作者
求道者 发表于 2024-11-27 20:54
这又不一定只出现在笔记本上……

那就超出本贴范围了,这里还是针对神舟A470/K470说的。
其他BIOS就得看具体是啥情况了。


回复

使用道具 举报

43#
 楼主| 发表于 前天 20:56 | 只看该作者
红毛樱木 发表于 2024-11-27 20:38
这问题不就是上次讨论的那个问题么,UD情况下把grub4dos的pbr安装到U盘的可见分区,然后用这个pbr启动回去U ...

哪个问题?是在本坛说的,还是无奈U盘群里?

这里的问题是,UD被BIOS屏蔽了,要有一个恢复环节,然后才能用PBR跳回去。


点评

就无奈群里说的,识别为fd后用pbr的grub4dos跳回ud  详情 回复 发表于 前天 23:06
回复

使用道具 举报

42#
发表于 前天 20:54 | 只看该作者
wuwuzz 发表于 2024-11-27 20:41
就是这个意思额,笔记本有自己的键鼠(保底手段),
所以外接USB键鼠的问题不是刚需。

这又不一定只出现在笔记本上……

点评

那就超出本贴范围了,这里还是针对神舟A470/K470说的。 其他BIOS就得看具体是啥情况了。  详情 回复 发表于 前天 20:58
回复

使用道具 举报

41#
 楼主| 发表于 前天 20:41 | 只看该作者
求道者 发表于 2024-11-27 20:32
笔记本上触控板和键盘走的PS/2或者I2C总线吧。
这部分又没被usb --init搞掉驱动……

就是这个意思额,笔记本有自己的键鼠(保底手段),
所以外接USB键鼠的问题不是刚需。

点评

这又不一定只出现在笔记本上……  详情 回复 发表于 前天 20:54
回复

使用道具 举报

40#
发表于 前天 20:38 | 只看该作者
这问题不就是上次讨论的那个问题么,UD情况下把grub4dos的pbr安装到U盘的可见分区,然后用这个pbr启动回去UD里的grldr?

点评

哪个问题?是在本坛说的,还是无奈U盘群里? 这里的问题是,UD被BIOS屏蔽了,要有一个恢复环节,然后才能用PBR跳回去。  详情 回复 发表于 前天 20:56
回复

使用道具 举报

39#
发表于 前天 20:32 | 只看该作者
wuwuzz 发表于 2024-11-27 20:23
没用过这种USB鼠标选G4D菜单项的情况。
有这种菜单配置的话,可以发上来我实验一下外接USB鼠标。
不过A ...

笔记本上触控板和键盘走的PS/2或者I2C总线吧。
这部分又没被usb --init搞掉驱动……

点评

就是这个意思额,笔记本有自己的键鼠(保底手段), 所以外接USB键鼠的问题不是刚需。  详情 回复 发表于 前天 20:41
回复

使用道具 举报

38#
 楼主| 发表于 前天 20:23 | 只看该作者
求道者 发表于 2024-11-27 20:15
你在grub4dos里也要用键鼠才能选择菜单项目啊……
usb键鼠挂了的话,这部分就没法用……

没用过这种USB鼠标选G4D菜单项的情况。
有这种菜单配置的话,可以发上来我实验一下外接USB鼠标。
不过A470/K470有内置键盘/触摸鼠标,应该问题不大吧。

点评

笔记本上走PS/2或者I2C总线吧。 这部分又没被usb --init搞掉驱动……  详情 回复 发表于 前天 20:32
回复

使用道具 举报

37#
发表于 前天 20:15 | 只看该作者
wuwuzz 发表于 2024-11-27 20:13
这是个什么环境下的工具呢?
Linux也跟Win一样额,握手时加载OS自己的驱动。
DOS的话,倒是要考虑一下 ...

你在grub4dos里也要用键鼠才能选择菜单项目啊……
usb键鼠挂了的话,这部分就没法用……

点评

没用过这种USB鼠标选G4D菜单项的情况。 有这种菜单配置的话,可以发上来我实验一下外接USB鼠标。 不过A470/K470有内置键盘/触摸鼠标,应该问题不大吧。  详情 回复 发表于 前天 20:23
回复

使用道具 举报

36#
 楼主| 发表于 前天 20:13 | 只看该作者
求道者 发表于 2024-11-27 20:09
你进了fbinst又不一定是用PE,可能用别的工具也不一定。
键鼠寄了,就只能想办法了……

这是个什么环境下的工具呢?
Linux也跟Win一样额,握手时加载OS自己的驱动。
DOS的话,倒是要考虑一下。


点评

你在grub4dos里也要用键鼠才能选择菜单项目啊…… usb键鼠挂了的话,这部分就没法用……  详情 回复 发表于 前天 20:15
回复

使用道具 举报

35#
发表于 前天 20:09 | 只看该作者
wuwuzz 发表于 2024-11-27 20:06
usb --init只是在引导阶段起作用吧,等进PE时,这个G4D USB驱动会被卸掉,
windows重新加载自己的USB驱 ...

你进了fbinst又不一定是用PE,可能用别的工具也不一定。
键鼠寄了,就只能想办法了……

点评

这是个什么环境下的工具呢? Linux也跟Win一样额,握手时加载OS自己的驱动。 DOS的话,倒是要考虑一下。  详情 回复 发表于 前天 20:13
回复

使用道具 举报

34#
 楼主| 发表于 前天 20:06 | 只看该作者
求道者 发表于 2024-11-27 20:02
倒也是能自动化……
不过usb --init之后usb键鼠就挂了……

usb --init只是在引导阶段起作用吧,等进PE时,这个G4D USB驱动会被卸掉,
windows重新加载自己的USB驱动,USB鼠标应该就正常了。

点评

你进了fbinst又不一定是用PE,可能用别的工具也不一定。 这就寄了……  详情 回复 发表于 前天 20:09
回复

使用道具 举报

33#
发表于 前天 20:02 | 只看该作者
本帖最后由 求道者 于 2024-11-27 20:03 编辑
wuwuzz 发表于 2024-11-27 20:01
是啊,PBR故意装了G4D,把BIOS引入陷阱。

倒也是能自动化……
不过usb --init之后usb键鼠就挂了……

点评

usb --init只是在引导阶段起作用吧,等进PE时,这个G4D USB驱动会被卸掉, windows重新加载自己的USB驱动,USB鼠标应该就正常了。  详情 回复 发表于 前天 20:06
回复

使用道具 举报

32#
 楼主| 发表于 前天 20:01 | 只看该作者
本帖最后由 wuwuzz 于 2024-11-28 07:08 编辑
求道者 发表于 2024-11-27 19:55
直接在PBR里安装g4d的PBR引导块是吧?
然后usb --int,用链式引导引导fbinst?

是啊,PBR故意装了G4D,把BIOS引入陷阱。

然后G4D usb --init重置U盘,MBR恢复。再chainloader (hd1)+1跳回MBR,正常引导。

点评

倒也是能自动化……  详情 回复 发表于 前天 20:02
回复

使用道具 举报

31#
发表于 前天 19:55 | 只看该作者
本帖最后由 求道者 于 2024-11-27 19:59 编辑
wuwuzz 发表于 2024-11-27 19:50
进度就是问题解决了啊。

当初,神舟K470/A470 BIOS的问题是你最先提出来的,现在USB-HDD可以满血复活 ...

直接在PBR里安装g4d的PBR引导块是吧?
然后usb --int,用链式引导引导fbinst?

点评

是啊,PBR故意装了G4D,把BIOS引入陷阱。 然后G4D usb --init重置U盘,MBR恢复。然后chainloader (hd1)+1跳回MBR,正常引导。  详情 回复 发表于 前天 20:01
回复

使用道具 举报

30#
 楼主| 发表于 前天 19:50 | 只看该作者
本帖最后由 wuwuzz 于 2024-11-27 19:59 编辑
求道者 发表于 2024-11-27 18:42
现在有啥进度?fbinst能复用吗?

进度就是问题解决了啊。

当初,神舟K470/A470 BIOS的问题是你最先提出来的,现在USB-HDD可以满血复活,
fbinst(UD)、Ventoy等复杂格式盘,原有内容不用改动,在普通可见数据区再加个
G4D做中介,就可以在这种BIOS下正常启动使用了。


点评

这BIOS不是会直接引导PBR吗? 这部分不用动手脚吗?  详情 回复 发表于 前天 19:55
回复

使用道具 举报

29#
发表于 前天 18:42 | 只看该作者
现在有啥进度?fbinst能复用吗?

点评

进度就是问题解决了啊。 当初,神舟K470/A470 BIOS的问题是你最先提出来的,现在USB-HDD可以满血复活, fbinst(UD)、Ventoy等复杂磁盘布局盘,原有内容不用改动,在普通数据区再加个 G4D做中介,就可以正常启  详情 回复 发表于 前天 19:50
回复

使用道具 举报

28#
 楼主| 发表于 前天 16:46 | 只看该作者
不点 发表于 2024-11-27 15:02
两种 U 盘制作方法,在执行 usb --init 之前,没有表现出差别,BIOS 盘号都是 fd0,而且都是屏蔽掉 MBR, ...

我同意您的分析。

原始fd0是BIOS内置USB驱动产生,而新的0x81则是由G4D USB驱动生成,两个驱动是否会
产生潜在的重叠、冲突(或者说BIOS USB驱动无法被完整卸载,还残留有fd0空壳),不得
而知,从结果看,有这种可能性。如此看来,此时还是屏蔽fd0比较好。

回复

使用道具 举报

27#
发表于 前天 15:02 | 只看该作者
wuwuzz 发表于 2024-11-27 13:32
按照您的想法,准备了2套图片。每套图片,均顺序反映usb --init前后的情况。

第1套图片,与您在25#设 ...

两种 U 盘制作方法,在执行 usb --init 之前,没有表现出差别,BIOS 盘号都是 fd0,而且都是屏蔽掉 MBR,只有 PBR 可见。

但在 usb --init 执行后,出现了差异。

虚拟盘的盘号不同:00 和 81h

当 usb 虚拟盘盘号是 00 时,覆盖掉了 BIOS 原始的 00 软盘。由于虚拟盘 00 具有 MBR(分区表),所以虚拟盘的内容是硬盘格式,不是软盘格式。

当 usb 虚拟盘盘号是 81h 时,原始的 BIOS 软盘 00 未被覆盖,仍然存在。但却无法访问了(disk read error)。我贸然猜测,这有可能是因为 usb 驱动程序的代码执行以后,影响了 ROM BIOS 代码的执行,导致 ROM BIOS 无法正常访问 USB 设备。既然 00 无法访问了,那我觉得,此时还是屏蔽掉 00 比较好。即使不屏蔽掉 00,也不要去访问它了。

另外,我估计这种 BIOS 有很多。所以,这个 BIOS 究竟算不算 buggy BIOS?不同的人,可能得到不同的结论。

点评

我同意您的分析。 原始fd0是BIOS内置USB驱动产生,而新的0x81则是由G4D USB驱动生成,两个驱动是否会 产生潜在的重叠、冲突(或者说BIOS USB驱动无法被完整卸载,还残留有fd0空壳),不得 而知,从结果看,有这种  详情 回复 发表于 前天 16:46
回复

使用道具 举报

26#
 楼主| 发表于 前天 13:32 | 只看该作者
本帖最后由 wuwuzz 于 2024-11-27 13:33 编辑
不点 发表于 2024-11-27 10:21
wuwuzz 和 yaya,都拥有对 USB 硬件进行操作的知识。这非常宝贵。尤其是在 Linux 的情况下,由于 Linux 不 ...

按照您的想法,准备了2套图片。每套图片,均顺序反映usb --init前后的情况。

第1套图片,与您在25#设想完全一致。环境:启动盘用bootice制作,MBR装的g4d、
PBR装msdos;usb --init之后,U盘盘号保持为0x00(如果DOS下想A变C,需要map)







第2套图片,与您在25#原理一样,只不过usb --init后盘号变为0x81。环境:
启动盘用ventoy制作,MBR由ventoy生成、PBR装的g4d;U盘盘号变为0x81后,MBR
重新激活可见。不需要map,原始fd0将不可访问。






以上,U盘为同一U盘,BIOS为神舟A470/K470 buggy bios。

点评

两种 U 盘制作方法,在执行 usb --init 之前,没有表现出差别,BIOS 盘号都是 fd0,而且都是屏蔽掉 MBR,只有 PBR 可见。 但在 usb --init 执行后,出现了差异。 虚拟盘的盘号不同:00 和 81h 当 usb 虚拟  详情 回复 发表于 前天 15:02
回复

使用道具 举报

25#
发表于 前天 10:21 | 只看该作者
本帖最后由 不点 于 2024-11-27 10:47 编辑

wuwuzz 和 yaya,都拥有对 USB 硬件进行操作的知识。这非常宝贵。尤其是在 Linux 的情况下,由于 Linux 不使用 BIOS,那么就必须直接使用 USB 硬件协议。

如果仍然需要在 Legacy BIOS 下进入 grub4dos 进行操作,我觉得应该掌握 grub4dos 的一些常规手段,方便自己进行 hack 研究。可以研究一下置顶的 grub4dos 文档、教程。

比如 cat --hex 命令,这能够显示扇区数据:

cat --hex (fd0)+1 显示软盘的首扇区(扇区号为 0 的扇区)
cat --hex (fd0)1+1 显示软盘的第二扇区(扇区号为 1 的扇区)
cat --hex (fd0)2+1 显示软盘的第三扇区(扇区号为 2 的扇区)

再比如,在执行 usb --init 之前,看看 BIOS 提供的(原始的)真实软盘的扇区内容是啥:

cat     --hex     (fd0)+1

它显示的应该是 U 盘第一分区的首扇区(PBR)的内容,而不是 MBR 的内容。

而在执行 usb --init 之后,再来看看 usb 命令创建的虚拟软盘的扇区内容是啥:

cat     --hex     (fd0)+1

此时它显示的应该是 U 盘 MBR 扇区的内容,而不是第一分区的 PBR 的内容。此时,假定软盘的首扇区确实是 MBR(含有分区表),那么,就可以继续用下面这条命令来显示软盘第一分区 PBR 的内容:

cat     --hex     (fd0,0)+1


假定软盘上也存在第二主分区,同理,可以用如下命令来显示第二主分区的 PBR:


cat     --hex     (fd0,1)+1





点评

按照您的想法,准备了2套图片。每套图片,均顺序反映usb --init前后的情况。 第1套图片,与您在25#设想完全一致。环境:启动盘用bootice制作,MBR装的g4d、 PBR装msdos;usb --init之后,U盘盘号保持为0x00(如果  详情 回复 发表于 前天 13:32
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-29 04:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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