如何将 GRUB 安装到与 /EFI/ubuntu 不同的文件夹?

如何将 GRUB 安装到与 /EFI/ubuntu 不同的文件夹?

我如何grub-install从 Ubuntu 调用,将其文件安装到自定义目录并不是,例如,到/EFI/ubuntu?我尝试的每种方法最终都会(仍然)将一些.efi文件放入文件夹.cfg/EFI/ubuntu。我想将此文件夹重定向到其他地方(正确)。

答案1

在所有具有基于 UEFI 的 BIOS 的计算机上,引导加载程序必须安装在一个单独的 EFI 分区上,该分区被挂载/boot/efi,这是所有操作系统存储其引导加载程序的默认位置。自己的引导加载程序。如果您尝试更改它,操作系统将无法启动。

示例(在 fedora 操作系统上,引导加载程序安装到文件夹中/EFI/fedora):

$ sudo ls -l /boot/efi
total 4
drwx------. 4 root root 4096  6. Apr 12:51 EFI
$ sudo ls -l /boot/efi/EFI
total 8
drwx------. 2 root root 4096  6. Apr 13:14 BOOT
drwx------. 4 root root 4096 30. Jun 09:02 fedora
$ sudo ls -l /boot/efi/EFI/fedora
total 5820
-rwx------. 1 root root     104 15. Aug 2016  BOOT.CSV
drwx------. 2 root root    4096  6. Apr 13:14 fonts
drwx------. 2 root root    4096 28. Sep 2016  fw
-rwx------. 1 root root   70864 28. Sep 2016  fwupx64.efi
-rwx------. 1 root root  997192  8. Dez 2016  gcdx64.efi
-rwx------. 1 root root    5901 30. Jun 09:02 grub.cfg
-rwx------. 1 root root    1024 30. Jun 09:02 grubenv
-rwx------. 1 root root  997192  8. Dez 2016  grubx64.efi
-rwx------. 1 root root 1276192 15. Aug 2016  MokManager.efi
-rwx------. 1 root root 1293304 15. Aug 2016  shim.efi
-rwx------. 1 root root 1287000 15. Aug 2016  shim-fedora.efi

当您安装 Ubuntu 时,启动它的启动加载程序必须安装到子文件夹中乌班图。安装程序会创建此文件夹并自动在其中安装引导加载程序 - 不要修改它!

针对您的评论的其他信息:如果我想从 Ubuntu 安装内部为 Fedora 安装安装 GRUB 引导管理器,该怎么办?我怎样才能做到这一点?

您无法将 GRUB 引导加载程序从一个系统安装到另一个系统,正如我所说,每个操作系统都会将自己的引导管理器安装到自己的子文件夹中。更新 GRUB 引导配置后,所有已安装的系统都会被检测到,并且可以从每个已安装的加载程序引导。

有关使用不同系统时如何管理引导加载程序的更多信息:

您可以使用该工具选择哪个引导加载程序作为默认引导加载程序efibootmgr

$ sudo efibootmgr
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0001
Boot0000* fedora
Boot0001* UEFI OS

在此示例中,fedora 的引导加载程序被设置为默认加载程序...如果您另外安装 ubuntu,Boot0002* ubuntu则会出现一个新条目,如果您想使用该条目,请执行:sudo efibootmgr -o 0002,0000,0001

答案2

grub-install --bootloader-id=customfoldername # <-- this is what you want

一开始它对我不起作用,但后来我发现Ask Ubuntu 中的这个答案

使用 运行 grub-install 后,不带任何参数--bootloader-id运行。grub-install它将创建一个 ubuntu 条目。如果你愿意的话可以删除它,但现在你的 id 将“神奇地”工作。非常烦人,似乎是一个老错误。

相关内容