无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3989|回复: 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 15:08:20 来自手机 | 显示全部楼层
wintoflash 发表于 2023-1-30 13:41
因为你加载了本不应该加载的模块
ohci uhci ahci ehci 以及 usbms 等设备本应由固件自行驱动,你加载了gru ...

不加载能够识别吗?

点评

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

使用道具 举报

3#
 楼主| 发表于 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
回复

使用道具 举报

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


老故障。

点评

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

使用道具 举报

5#
 楼主| 发表于 2023-1-30 15:57:40 来自手机 | 显示全部楼层
wintoflash 发表于 2023-1-30 15:57
root是啥

回家我再测测。

点评

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 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
回复

使用道具 举报

9#
 楼主| 发表于 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
回复

使用道具 举报

10#
 楼主| 发表于 2023-1-30 19:28:59 | 显示全部楼层

还包括ESP啊。
回复

使用道具 举报

11#
 楼主| 发表于 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
回复

使用道具 举报

12#
 楼主| 发表于 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
回复

使用道具 举报

13#
 楼主| 发表于 2023-1-31 10:36:34 来自手机 | 显示全部楼层
wintoflash 发表于 2023-1-31 10:31
没map,这些都是白扯,只能启linux,启不了windows。

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

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

使用道具 举报

14#
 楼主| 发表于 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
回复

使用道具 举报

15#
 楼主| 发表于 2023-1-31 13:23:03 来自手机 | 显示全部楼层
wintoflash 发表于 2023-1-31 12:11
这个显然不对吧。$prefix/grub.cfg

我换掉试试。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-7 01:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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