无忧启动论坛

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

[求助] grub2不能识别USB-CDROM吗?

[复制链接]
跳转到指定楼层
1#
发表于 2023-1-30 12:59:29 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 求道者 于 2023-1-30 13:01 编辑

在制作混合ISO,UEFI下启动,能进CDROM的LBA1,启动后进了grub2的shell。
但检测不到任何设备。
是不支持还是没加相关模块。
qemu也能模拟USB-CDROM环境进行测试。

grub-mkimage -o bootx64.efi -c ~/grub-stub.cfg -p /EFI/grub -O x86_64-efi efi_gop efi_uga efinet all_video video video_bochs video_cirrus video_fb videoinfo serial terminfo terminal search search_fs_file search_fs_uuid search_label udf iso9660 ext2 fat exfat ntfs hfsplus part_gpt part_msdos msdospart lvm diskfilter parttool probe normal acpi ohci uhci ahci ehci cat ls chain configfile echo halt reboot ls lsefimmap lsefisystab lsmmap lspci lsacpi lssal linux

mkisofs -V "BOOTISO" -A "FirPE Boot ISO" -U -max-iso9660-filenames -D -R -J -joliet-long -hide-joliet boot.catalog -no-emul-boot -boot-load-size 4 -b grldr -eltorito-alt-boot -no-emul-boot -eltorito-platform efi -eltorito-boot efiboot.img -o ~/efiboot.iso .

2#
发表于 2023-1-30 13:41:44 | 只看该作者
因为你加载了本不应该加载的模块
ohci uhci ahci ehci 以及 usbms 等设备本应由固件自行驱动,你加载了grub2的驱动,就导致这些设备不能访问了。

点评

生成.efi的时候ohci uhci ahci ehci删掉就好了吗? 其他的不用动?  详情 回复 发表于 2023-1-30 17:32
不加载能够识别吗?  详情 回复 发表于 2023-1-30 15:08
回复

使用道具 举报

3#
 楼主| 发表于 2023-1-30 15:08:20 来自手机 | 只看该作者
wintoflash 发表于 2023-1-30 13:41
因为你加载了本不应该加载的模块
ohci uhci ahci ehci 以及 usbms 等设备本应由固件自行驱动,你加载了gru ...

不加载能够识别吗?

点评

你用grub-mkimage生成bootloader的时候加进去的模块,启动的时候会自动加载。所以不能加这些模块。  详情 回复 发表于 2023-1-30 15:34
回复

使用道具 举报

4#
发表于 2023-1-30 15:34:45 | 只看该作者
求道者 发表于 2023-1-30 15:08
不加载能够识别吗?

你用grub-mkimage生成bootloader的时候加进去的模块,启动的时候会自动加载。所以不能加这些模块。

点评

行,然后就是,那个修正链式加载的补丁没有用,而且此故障住出现在光盘文件系统上。  详情 回复 发表于 2023-1-30 15:36
回复

使用道具 举报

5#
 楼主| 发表于 2023-1-30 15:36:31 来自手机 | 只看该作者
本帖最后由 求道者 于 2023-1-30 15:37 编辑
wintoflash 发表于 2023-1-30 15:34
你用grub-mkimage生成bootloader的时候加进去的模块,启动的时候会自动加载。所以不能加这些模块。


行,然后就是那个修正链式加载的补丁没有用,而且此故障住出现在光盘文件系统上。

点评

怎么个“没有用”法? 那个补丁本来就和光盘没关系。 你是没办法在光盘上启动bootmgfw.efi的。  详情 回复 发表于 2023-1-30 15:38
回复

使用道具 举报

6#
发表于 2023-1-30 15:38:43 | 只看该作者
求道者 发表于 2023-1-30 15:36
行,然后就是,那个修正链式加载的补丁没有用,而且此故障住出现在光盘文件系统上。

怎么个“没有用”法?
那个补丁本来就和光盘没关系。
你是没办法在光盘上启动bootmgfw.efi的。

点评

老故障。  详情 回复 发表于 2023-1-30 15:55
回复

使用道具 举报

7#
 楼主| 发表于 2023-1-30 15:55:07 | 只看该作者
wintoflash 发表于 2023-1-30 15:38
怎么个“没有用”法?
那个补丁本来就和光盘没关系。
你是没办法在光盘上启动bootmgfw.efi的。


老故障。

点评

root是啥  详情 回复 发表于 2023-1-30 15:57
回复

使用道具 举报

8#
发表于 2023-1-30 15:57:00 | 只看该作者

root是啥

点评

回家我再测测。  详情 回复 发表于 2023-1-30 15:57
回复

使用道具 举报

9#
 楼主| 发表于 2023-1-30 15:57:40 来自手机 | 只看该作者
wintoflash 发表于 2023-1-30 15:57
root是啥

回家我再测测。

点评

打了补丁之后源码里面根本就没有这个报错的语句了。。。  详情 回复 发表于 2023-1-30 15:58
回复

使用道具 举报

10#
发表于 2023-1-30 15:58:30 | 只看该作者
本帖最后由 wintoflash 于 2023-1-30 16:01 编辑

打了补丁之后源码里面根本就没有这个报错的语句了。。。
-  if (! dp)
+  if (dp != NULL)
     {
-      grub_error (GRUB_ERR_BAD_DEVICE, "not a valid root device");
-      goto fail;
-    }

点评

行我到时候检查一下源码。  详情 回复 发表于 2023-1-30 16:46
回复

使用道具 举报

11#
 楼主| 发表于 2023-1-30 16:46:08 来自手机 | 只看该作者
wintoflash 发表于 2023-1-30 15:58
打了补丁之后源码里面根本就没有这个报错的语句了。。。
-  if (! dp)
+  if (dp != NULL)

行我到时候检查一下源码。
回复

使用道具 举报

12#
 楼主| 发表于 2023-1-30 17:32:51 来自手机 | 只看该作者
wintoflash 发表于 2023-1-30 13:41
因为你加载了本不应该加载的模块
ohci uhci ahci ehci 以及 usbms 等设备本应由固件自行驱动,你加载了gru ...

生成.efi的时候ohci uhci ahci ehci删掉就好了吗?
其他的不用动?

点评

删。  详情 回复 发表于 2023-1-30 17:40
回复

使用道具 举报

13#
发表于 2023-1-30 17:40:14 | 只看该作者
求道者 发表于 2023-1-30 17:32
生成.efi的时候ohci uhci ahci ehci删掉就好了吗?
其他的不用动?

删。

点评

[attachimg]518945[/attachimg] 这就是要对BOOTMGR.EFI进行处理的那部分吗? 是光盘文件系统大小写敏感的原因?  详情 回复 发表于 2023-1-30 18:40
回复

使用道具 举报

14#
 楼主| 发表于 2023-1-30 18:40:11 | 只看该作者



这就是要对BOOTMGR.EFI进行处理的那部分吗?
是光盘文件系统大小写敏感的原因?


点评

这就是我前面说过的,bootmgfw.efi内部bug。 bootmgfw.efi处理光盘上文件的路径有问题。 启动efi文件时,bootloader会向efi文件传递一个uefi设备路径,以使得该efi文件获知自己所在的位置。 比如假设bootmgfw.efi  详情 回复 发表于 2023-1-30 18:58
回复

使用道具 举报

15#
发表于 2023-1-30 18:58:18 | 只看该作者
求道者 发表于 2023-1-30 18:40
这就是要对BOOTMGR.EFI进行处理的那部分吗?
是光盘文件系统大小写敏感的原因?

这就是我前面说过的,bootmgfw.efi内部bug。
bootmgfw.efi处理光盘上文件的路径有问题。
启动efi文件时,bootloader会向efi文件传递一个uefi设备路径,以使得该efi文件获知自己所在的位置。
比如假设bootmgfw.efi位于某cdrom iso9660文件系统上,
正确的uefi设备路径应该为 USB1/CDROM0/boot/bootmgfw.efi (仅为示例)
但是,bootmgfw.efi 所期待的路径却是 USB1/CDROM0/ESP/boot/bootmgfw.efi (仅为示例)
虽然bootmgfw.efi不在ESP里面,但是却要求传递的路径里面包含ESP。
(上文中的ESP指的是ISO的El Torito FAT 软盘镜像 efiboot.img)

bootmgfw.efi还有一个bug,就是只认第一个光盘(CDROM0),有多个光盘的话就拉稀了。

点评

听起来手动设置一下文件夹大小写也可以把。  详情 回复 发表于 2023-1-30 19:10
回复

使用道具 举报

16#
 楼主| 发表于 2023-1-30 19:10:41 | 只看该作者
本帖最后由 求道者 于 2023-1-30 19:15 编辑
wintoflash 发表于 2023-1-30 18:58
这就是我前面说过的,bootmgfw.efi内部bug。
bootmgfw.efi处理光盘上文件的路径有问题。
启动efi文件时 ...

听起来手动设置一下文件夹大小写也可以把。

生成的这个.efi有点大,如果只希望在U盘上的udf iso9660 fat上用,以及必要之时能在救援模式下正常用。
哪些模块可以不用?

点评

你没看懂。  详情 回复 发表于 2023-1-30 19:26
回复

使用道具 举报

17#
发表于 2023-1-30 19:26:18 | 只看该作者
本帖最后由 wintoflash 于 2023-1-30 19:30 编辑
求道者 发表于 2023-1-30 19:10
听起来手动设置一下文件夹大小写也可以把。

生成的这个.efi有点大,如果只希望在U盘上的udf iso9660 f ...

你没看懂。
------
video_bochs video_cirrus serial hfsplus msdospart parttool lsefimmap lsefisystab lsmmap lspci lsacpi lssal 都删了。

不需要读lvm,删 lvm 和 diskfilter
不需要ext4,删 ext2
不需要exfat/ntfs,删exfat/ntfs

点评

[attachimg]518971[/attachimg] 一个一直都有的小问题。 内嵌菜单里我没有用insmod。 外置菜单清空了。 看起来有点像grub自己使用insmod的时候,insmod没有加载。  详情 回复 发表于 2023-1-30 23:20
还包括ESP啊。  详情 回复 发表于 2023-1-30 19:28
回复

使用道具 举报

18#
 楼主| 发表于 2023-1-30 19:28:59 | 只看该作者

还包括ESP啊。
回复

使用道具 举报

19#
 楼主| 发表于 2023-1-30 23:20:10 | 只看该作者
本帖最后由 求道者 于 2023-1-30 23:28 编辑
wintoflash 发表于 2023-1-30 19:26
你没看懂。
------
video_bochs video_cirrus serial hfsplus msdospart parttool lsefimmap lsefisyst ...


后面两个报错不用管了。
一个一直都有的小问题。
内嵌菜单里我没有用insmod。
外置菜单清空了。

看起来有点像grub自己使用insmod的时候,insmod没有加载。

说起来grub-mkimage里的ehci模组就是类似于grub4dos里的USB2驱动吧?

然后链式启动应该是修好了,不过是忘记把生成的efi塞到FAT里了。

点评

这个问题你自己想办法。  详情 回复 发表于 2023-1-31 08:14
回复

使用道具 举报

20#
发表于 2023-1-31 08:14:58 | 只看该作者
本帖最后由 wintoflash 于 2023-1-31 08:19 编辑
求道者 发表于 2023-1-30 23:20
后面两个报错不用管了。
一个一直都有的小问题。
内嵌菜单里我没有用insmod。

这个问题你自己想办法。insmod是在kernel里面的。估计你自己菜单写得有问题。
ehci是usb2.0驱动。grub2里面的ehci/ohci/uhci/ahci驱动都不怎么靠谱。你用官方grub2启动windows,这些驱动没意义。

点评

这是内嵌菜单。  详情 回复 发表于 2023-1-31 12:04
我内嵌菜单没用insmod指令,菜单已经清空了。 他还是报这个错误。 很多人也说这个usb2驱动根本没法用。 一用就不加载设备。  详情 回复 发表于 2023-1-31 09:15
回复

使用道具 举报

21#
 楼主| 发表于 2023-1-31 09:15:59 来自手机 | 只看该作者
本帖最后由 求道者 于 2023-1-31 10:06 编辑
wintoflash 发表于 2023-1-31 08:14
这个问题你自己想办法。insmod是在kernel里面的。估计你自己菜单写得有问题。
ehci是usb2.0驱动。grub2 ...


我内嵌菜单没用insmod指令,外置菜单已经清空了。
他还是报这个错误。

很多人也说这个USB2.0驱动根本没法用。
一用就不加载设备。
看主线自己能不能抢救一下。
主要是寻思如果grub2的usb2支持如果到位。
那么grub2替换grub4dos需要做的额外努力也会更少。
老机子的BIOS USB经常跑在1.1,超级慢。

然后NTBOOT有移植到主线的mod吗?

点评

没map,这些都是白扯,只能启linux,启不了windows。 没有。我写的ntboot就是wimboot套了个壳,根据wim/vhd路径自动修改bcd。  详情 回复 发表于 2023-1-31 10:31
回复

使用道具 举报

22#
发表于 2023-1-31 10:31:34 | 只看该作者
求道者 发表于 2023-1-31 09:15
我内嵌菜单没用insmod指令,外置菜单已经清空了。
他还是报这个错误。
主要是寻思如果grub2的usb2支持如果到位。
那么grub2替换grub4dos需要做的额外努力也会更少。
老机子的BIOS USB经常跑在1.1,超级慢。

没map,这些都是白扯,只能启linux,启不了windows。
然后NTBOOT有移植到主线的mod吗?

没有。我写的ntboot就是wimboot套了个壳,根据wim/vhd路径自动修改bcd。

点评

也没,你在USB1.1下用wimboot加载PE也非常慢,usb --init就快多了。  详情 回复 发表于 2023-1-31 10:36
回复

使用道具 举报

23#
 楼主| 发表于 2023-1-31 10:36:34 来自手机 | 只看该作者
wintoflash 发表于 2023-1-31 10:31
没map,这些都是白扯,只能启linux,启不了windows。

没有。我写的ntboot就是wimboot套了个壳,根据 ...

也没,你在USB1.1下用wimboot加载PE也非常慢,usb --init就快多了。
回复

使用道具 举报

24#
 楼主| 发表于 2023-1-31 12:04:44 | 只看该作者
wintoflash 发表于 2023-1-31 08:14
这个问题你自己想办法。insmod是在kernel里面的。估计你自己菜单写得有问题。
ehci是usb2.0驱动。grub2 ...
  1. set root='cd0'
  2. search --no-floppy --efidisk-only --label BOOTISO --set root
  3. search --no-floppy --label UFI --set root
  4. set prefix=($root)/BOOT/GRUB2

  5. configfile ($prefix)/grub.cfg
复制代码

这是内嵌菜单。

点评

这个显然不对吧。$prefix/grub.cfg  详情 回复 发表于 2023-1-31 12:11
回复

使用道具 举报

25#
发表于 2023-1-31 12:11:23 | 只看该作者
  1. configfile ($prefix)/grub.cfg
复制代码

这个显然不对吧。$prefix/grub.cfg

点评

我换掉试试。  详情 回复 发表于 2023-1-31 13:23
回复

使用道具 举报

26#
 楼主| 发表于 2023-1-31 13:23:03 来自手机 | 只看该作者
wintoflash 发表于 2023-1-31 12:11
这个显然不对吧。$prefix/grub.cfg

我换掉试试。
回复

使用道具 举报

27#
发表于 2023-7-18 09:22:41 | 只看该作者
学习学习了
回复

使用道具 举报

28#
发表于 2023-7-18 12:54:32 | 只看该作者
顶下
回复

使用道具 举报

29#
发表于 2023-12-9 06:17:39 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-23 16:09

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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