我如何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 将“神奇地”工作。非常烦人,似乎是一个老错误。