[ventoy/Ventoy]USB-HDD 安装 Ventoy 出现的问题

2023-12-08 981 views
9

发生错误!我把Ventoy安装到1TB的USB机械硬盘里,不是U盘。

启动按F2,选择USB设备,默认加载的VTOYEFI:/EFI/BOOT/grubx64.efi,启动失败。

把 grubx64_real.efi 复制并重命名到 VTOYEFI:/EFI/VENTOY/BOOTX64.EFI,才可以启动成功。

USB机械硬盘安装Ventoy,BIOS并没有使用U盘,未默认加载VTOYEFI:/EFI/BOOT/BOOTX64.EFI,会出现Linux的grub,默认自动加载grubx64.efi(不过黑屏没有进入图形界面) ,以及BOOT文件夹旁边的同级文件夹里面的引导文件(没有grubx64.efi文件,才默认加载BOOT.EFI)。

即BIOS加载的优先级是 grubx64.efi > BOOT.EFI > grubx64_real.efi 。然而,grubx64.efi启动失败。

不能添加可以添加VTOYEFI:/EFI/VENTOY/BOOTX64.EFI文件,方便使用硬盘的用户能够方便地启动Ventoy,否则还要自己手动修改VTOYEFI分区。

回答

6
  1. 换一台电脑也这样吗?

  2. 其他不动,直接把 VTOYEFI 分区内的 BOOT 目录改名为 VENTOY 目录能正常启动吗?

  3. 安装Ventoy时安全启动支持这个选项勾选和不勾选有区别吗?

0

1.旧电脑没这个问题(BOOTX64.EFI 优先级> grubx64.efi),偏新的电脑有(BOOTX64.EFI 优先级< grubx64.efi)。2.尚未试。3.大同小异。

7

这电脑BIOS不标准啊,EFI/BOOT/BOOTX64.EFI是UEFI标准里定义的启动文件,grubx64.efi不是UEFI标准里面定义的,不应该启动默认你的grub。而且这样的话就无法支持安全启动了,所有的grub.efi都是不能直接支持安全启动的。

2

有可能是因为,内置硬盘的 ESP 已经有 /EFI/BOOT/BOOTX64.EFI 了吧。硬盘已经有默认引导项了,不能再让 VTOYEFI 成为默认引导项。Ventoy 出现非默认引导项,被默认类Linux处理,默认加载grubx64.efi。

那么,在此基础上,其他的文件夹都是 grubx64.efi 优先级大。

grubx64.efi 又引用 shimx64.efi

Manjaro安装以后,就只有 /EFI/manjaro/grubx64.efi 这一个文件,其他都在 /boot 里。

Manjaro只有grubx64.efi这一个文件,而且可以启动。

Linux的,要求是默认grubx64.efi。

1

第一块硬盘的第一个 ESP 的 /EFI/BOOT 的路径下的优先级是 BOOTX64.EFI > grubx64.efi 等。

若【第一块硬盘的第一个ESP的/EFI/BOOT/BOOTX64.EFI】存在,

其他则ESP的/EFI/BOOT的路径的优先级:grubx64.efi>BOOTX64.EFI。

5

BIOS自动生成了临时启动项。

名称:linpus lite 路径:VTOYEFI:/EFI/BOOT/grubx64.efi

如果把grubx64_real.efi复制并重命名到VTOYEFI:/EFI/VENTOY/BOOTX64.EFI

会出现新的临时启动项

名称:USB-HDD 路径:VTOYEFI:/EFI/VENTOY/BOOTX64.EFI

9

grubx64.efi 又引用 shimx64.efi

这个说的不对。是shimx64.efi来启动grubx64.efi,没有反过来的。对于支持安全启动的发行版,一般bootx64.efi和shimx64.efi是同一个文件,对于不支持安全启动的发行版一般bootx64.efi和grubx64.efi是同一个文件。

Manjaro只有grubx64.efi这一个文件,而且可以启动。

因为Manjaro不支持安全启动,所以它也没有shimx64.efi,就只有grubx64.efi。原来如果你开启了启动,Manjaro是不能安全启动的。

4

不好意思,那就是前面的理解错了。grubx64.efi直接启动成功了,而没有使用shimx64.efi是因为关闭了安全启动。

可内置硬盘已有默认启动项 ESP:/EFI/BOOT/BOOTX64.EFI 并且有启动名称。

扫描VTOYEFI的时候,是直接给VTOYEFI:/EFI/BOOT/grubx64.efi创建临时启动项的。

3

IMG_1670985348587.jpg 为什么不弄成这样的呢?

可以把 grubx64_real.efi 重命名成 ventoyx64.efi。这样,看起来更有感觉。

4

EFI/BOOT/BOOTX64.EFI文件实际上是shimx64.efi文件,它是微软签名过的,它只认自己当前目录。它不会从你的VENTOY目录下找文件启动的。

1

按照这种逻辑的话,你用其他一般的制作启动盘的工具,在你这个盘上制作一个Manjaro ISO文件的可启动盘,插上去是不能启动的。以后制作就因为只有一个/efi/boot/ bootx64.efi,其他都没有,整个 /efi 目录下也只有一个 boot 目录。

7

首先你BIOS里面关闭了安全启动,你也尝试在Ventoy安装时不要勾选安全启动支持,这样尝试能不能启动。你前面说也不能启动,请你再确认一下。如果安装Ventoy时不勾勾选安全启动,整个/EFI/BOOT目录下就只有一个BOOTX64.EFI,没有grubx64.efi(当前还有一个grub.efi文件,后面版本会删掉)。

6

之前也遇到过很多人的电脑启动时Linpus Lite,无法正常启动的情况。但只要BIOS里面关闭安全启动,同时安装Ventoy时也不勾选安全启动支持,这两个条件都满足的情况下都是可以启动的。

5

IMG_1670986791006.jpg

反常情况令人头疼到逆向推理。

IMG_20221214_110331.jpg

9

这样你就得自己造一个 BOOTX64.EFI,但是你造的 BOOTX64.EFI 文件微软不给你签名,不能用。

6

现在的 BOOTx64.efi 文件实际上是 shimx64.efi 文件,它是直接从 Fedora 发行此类版本镜像里提出来的。 个人制作的 BOOTx64.EFI 微软是不会给你签名的。

7

啊?什么?签名是发行版的?我以为是你们自己找微软签的。

1

一般没有公司背书的项目,微软是很难给你进行安全启动签名的。如果有签名的话,启动的时候就不需要再导入key了。

9

IMG_1670989230973.jpg

又又发生了一次,这样呢?

虽然,有可能会出现两个临时启动项,但至少有一个可以正常启动。

临时启动项,没关系,毕竟两个都是临时的。

有的BIOS很奇怪,比如技嘉的,还给一个Windows创建两个Windows Boot Manager的启动项,删掉了,又自动生成。

8

BOOTx64.efi ---> grubx64.efi ---> grubx64_real.efi 这个启动链是固定的,包括名字都是改不了。所以 efi/boot 目录必须维持现状,不能实在。

你的BIOS比较特殊,只能你自己增加一个VTOY目录,在里面你想怎么放都行。但是这个我目前不会放到正式版本里面。这种情况我还没见过别人反馈过,应该比较少见。当然后面如果越来越多的人都遇到这个问题,到时候再考虑一下。或者说不定过主板产生新的BIOS版本之后问题就没有了呢。

4

另外,你不是确认同一台电脑上,同样的Ventoy安装方式,普通U盘没有问题,你这个USB硬盘有这个问题吗?

0

我尝试把grubx64.efi重命名fbx64.efi成果没有浪费的Linpus Lite了,只有一个USB选项,直接进。

shimx64.efi在搜索不到grubx64.efi的时候,会去启动fbx64.efi,而 UEFI 固定不会为fbx64.efi创建启动项。

问题就能够完美解决。建议把更高版本的 PreLoader 都重命名成fbx64.efigrubx64.efi的文件名不太好,会导致某些 UEFI 巩固创建一个进不去的启动项。 @ventoy