我想知道如何操作 Mac 上的启动菜单以添加“Ubuntu ISO”选项。为了 100% 清楚,因为我可以看到没有答案,我并不是想安装 Ubuntu,而是只想从 HD 启动 ISO。根据我的研究,我需要efibootmgr
从 Linux 发行版内部使用来操作启动选项。
例如,这将是我使用 Grub 所做的操作:
sudo nano /etc/grub.d/40_custom && sudo update-grub2
menuentry "Ubuntu ISO" {
set isofile="/home/isos/ubuntu.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject toram
initrd (loop)/casper/initrd.lz
}
但我需要这样的东西:
https://wiki.gentoo.org/wiki/Efibootmgr#Creating_a_boot_entry
efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l '\efi\boot\bootx64.efi' -u 'root=/dev/sda3 initrd=\efi\boot\initramfs.img quiet'
答案1
不确定 MacBook 如何与 EFI 配合使用,但 EFI 只能启动具体的在没有参数的情况下,无法在 EFI 分区上启动可执行文件。无法从 ISO 文件启动。以下是使用 grub 从 ISO 文件运行 Ubuntu 的方法:
- 创建一个 10GB 的救援分区。
- 将其格式化为 ext4。标签并输入名称“rescue”。
grub.cfg
在 Linux 中创建文件$HOME/grub.cfg
:menuentry "Rescue Ubuntu 18.04 LiveCD" { set isoname="/ubuntu-18.04.3-desktop-amd64.iso" search --label --set rescue rescue loopback loop ($rescue)$isoname linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isoname quiet splash initrd (loop)/casper/initrd }
创建一个独立
grubx64.efi
以及memdisk
所需的模块创建带有模块和
grub.cfg
嵌入的二进制文件:grub-mkstandalone --modules="minicmd normal search search_fs_file search_fs_uuid search_label ext2 echo cat ls disk part_gpt part_msdos" \ -o grubx64.efi \ -O x86_64-efi --compress=xz \ "/boot/grub/grub.cfg=$HOME/grub.cfg"
在 EFI 启动管理器中创建一个条目,并将其放置
grubx64.efi
在新条目内。添加所有其他EFI 需要的文件(BOOTX64.CSV
,,shimx64.efi
)mmx64.efi
。