无忧启动论坛

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

[求助] 怎么定位第二块硬盘的esp分区

[复制链接]
跳转到指定楼层
1#
发表于 2024-1-26 08:05:35 来自手机 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
uefi两块硬盘,都有esp分区,我想从第二块硬盘的esp分区搜索efi文件启动,请问应该怎么写
2#
 楼主| 发表于 2024-1-28 18:56:43 | 显示全部楼层
感谢各位的回复,我是通过vm虚拟机测试的,uefi模式的两个硬盘,第一个硬盘是windows,第二个是deepin,通过测试,xorbootu和grub4dos uefi,这两个作为引导,引导文件放置在第一块硬盘的efi分区,去启动第二块硬盘esp分区上的efi文件都无法启动
这是menu.lst的内容
timeout 15
default 0
graphicsmode -1 640:800 480:600 24:32 || graphicsmode -1 -1 -1 24:32
font --font-high=16 /efi/grub/menu16.hex

title 启动Windows
find --set-root /efi/microsoft/boot/bootmgfw.efi
chainloader /efi/microsoft/boot/bootmgfw.efi

title 启动Deepin
find --set-root /efi/deepin/grubx64.efi
chainloader /efi/deepin/grubx64.efi

title 关机
halt

title 重启
reboot
这样启动deepin,就会提示找不到文件,无法启动
又试了一下grub2 file manager也只能显示第一块硬盘,第二块不显示
后来看到了这个帖子
http://wuyou.net/forum.php?mod=viewthread&tid=427925
找到了解决方案,就是定制grub4dos uefi的BOOTX64.efi,让他加载NvmExpressDxe.efi驱动
我是按照第二种方法,下载了最新的grub4dos uefi,进行制作,nvme驱动没有帖子里提供的,用的clover里的驱动文件
最终/efi/grub/目录如下

bootx64.efi是引导文件
menu.lst内容如下
timeout 15
default 0
graphicsmode -1 640:800 480:600 24:32 || graphicsmode -1 -1 -1 24:32
font --font-high=16 /efi/grub/menu16.hex

title 启动Windows
find --set-root /efi/microsoft/boot/bootmgfw.efi
chainloader /efi/microsoft/boot/bootmgfw.efi

title 启动Deepin
find --set-root /efi/deepin/grubx64.efi
chainloader /efi/deepin/grubx64.efi

title 启动grubfm
find --set-root /efi/grubfm/grubfmx64.efi
chainloader /efi/grubfm/grubfmx64.efi


title 启动xorboot
find --set-root /efi/xorboot/bootx64.efi
chainloader /efi/xorboot/bootx64.efi


title 关机
halt

title 重启
reboot
G4DEX64.EFI是加载了NvmExpressDxe.efi驱动
通过G4DEX64.EFI,去启动第二块硬盘上的efi文件就可以正常启动了
通过G4DEX64.EFI,去加载xorbootu的bootx64.efi,也可以正常启动第二块硬盘了
通过G4DEX64.EFI,去加载grubfmx64.efi,也可以正常显示第二块硬盘了

点评

你好,我现在也是启动找不到第二块nvme硬盘,我看你的menu.lst里并没有NvmExpressDxeX64.efi和G4DEX64.efi,这个是BOOTX64.efi会自动加载的吗  详情 回复 发表于 2024-3-13 21:17
回复

使用道具 举报

3#
 楼主| 发表于 2024-3-14 16:15:23 | 显示全部楼层
xxxyyy1 发表于 2024-3-13 21:17
你好,我现在也是启动找不到第二块nvme硬盘,我看你的menu.lst里并没有NvmExpressDxeX64.efi和G4DEX64.ef ...

我是按照那个教程重新定制的BOOTX64.efi,不是原版的,里面有个内置的菜单,in_menu.lst,他加载的是这个

pxe detect
default 0
timeout 0

title NvmExpressDxe.efi+G4DEX64.EFI
        find --set-root /efi/grub/NvmExpressDxe.efi
    load /efi/grub/NvmExpressDxe.efi
        find --set-root /efi/grub/G4DEX64.EFI
        chainloader /efi/grub/G4DEX64.EFI

然后再通过G4DEX64.EFI去加载menu.lst,你可以看看这个帖子,里面有详细的解释和制作方法,也有制作好的成品,把这些文件放一起,改menu.lst就行
http://wuyou.net/forum.php?mod=viewthread&tid=427925

点评

哦,看他那个帖子,是要把bootx64.efi复制到/efi/boot目录里,替换掉windows原版的bootx64.efi吧  详情 回复 发表于 2024-3-14 16:50
回复

使用道具 举报

4#
 楼主| 发表于 2024-3-14 17:30:40 | 显示全部楼层
xxxyyy1 发表于 2024-3-14 16:50
哦,看他那个帖子,是要把bootx64.efi复制到/efi/boot目录里,替换掉windows原版的bootx64.efi吧

不替换也行,你在esp分区efi文件夹新建个grub文件夹,文件全放在grub文件夹里,通过DiskGenius增加一个uefi的启动项,对应到grub的bootx64.efi,把这个启动项移到最上面

点评

我发现我的grub区分大小写,他那个隐藏菜单的efi文件夹是小写,而我的EFI文件夹是大写,结果提示找不到那两个nvme文件  详情 回复 发表于 2024-3-15 01:22
回复

使用道具 举报

5#
 楼主| 发表于 2024-3-15 08:19:59 | 显示全部楼层
xxxyyy1 发表于 2024-3-15 01:22
我发现我的grub区分大小写,他那个隐藏菜单的efi文件夹是小写,而我的EFI文件夹是大写,结果提示找不到那 ...

你可以试下我根据那个教程自己做好的,https://wwm.lanzout.com/iQZol1rgl8wb,把grub文件夹放efi文件夹下,改menu.lst的title就行,里面还有两个字体,一个16,一个40,40的字体适合大屏幕

点评

其实我原来/efi/boot目录里是有能启动第二块硬盘的efi文件的,我发现需要经过两重菜单加载efi,才能加载好驱动来启动系统  详情 回复 发表于 2024-3-15 12:57
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-9 14:41

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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