如何为 DIY 多重启动 USB 安装 rEFInd

如何为 DIY 多重启动 USB 安装 rEFInd

我打算创建一个双引导持久USB。我想尝试创建一个可以启动 macOS High Sierra 和 WIndows 10 的 USB。根据我对 LVM 的了解,我可以创建 2 个 VG、1 个 APFS 和 1 个 NTFS。这将允许我在 PC 上启动 Windows10,在 Mac 上启动 Windows10/macOS。我知道解决方法包括使用 2 个 USB 或使用 bootcamp,但我想尝试一下。 rEFInd 能够为我提供所需的选项,并在其自己的 VG 中包含单独的 /boot 文件。

我没有使用 GUI,而是利用这个机会来学习基础知识。这些是我已采取的步骤。

第 1 步:我用以下命令擦拭了 USB

sudo dd if=/dev/zero of=/dev/sdb bs=4k && sync

步骤2:添加GPT。

sudo gdisk /dev/sdb

o         # Create new empty GPT

第三步:创建EFI分区

n         # new partition
1         # 1st partition
<enter>   # suggested/default start sector 
+512M     # Internet wisdom on EFI size
ef00      # EFI system

第四步:创建LVM分区

n         # new partition
4         # 2nd partition
+128M     # Internet wisdom on good practice
-128M     # Internet wisdom to create buffer space
8e00      # LVM file system

打印最终结果:

Disk /dev/sdd: 242614272 sectors, 115.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): FE8B1928-7122-4004-9CF6-D5D47C08999E
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 242614238
Partitions will be aligned on 2048-sector boundaries
Total free space is 526302 sectors (257.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1050623   512.0 MiB   EF00  EFI System
   2         1312768       242352094   114.9 GiB   8E00  Linux LVM

这就是我迷路的地方。我不知道如何将引导加载程序安装到 EFI 分区中。我关注了罗德·史密斯的管理 Linux 的 EFI 引导加载程序:EFI 引导加载程序安装rEFInd 引导管理器:安装 rEFInd但我迷失了这/boot/efi部分。我的 Ubuntu 机器没有 /boot/efi,而是 /boot/grub。

任何人都可以建议在外部 USB 上实现 rEFInd 的实际步骤吗?

答案1

EFI 系统分区只是一个 FAT32 格式的分区(在 GPT 分区表上设置了 ESP 引导标志)。一些 UEFI 系统会很乐意从标准 MBR 分区上的 FAT32 分区加载引导加载程序。在我看来,您已经正确创建了它,但缺少格式。格式化后,您将通过复制 rEFInd 文件来“安装”rEFInd。

  1. 格式:mkfs.vfat -F 32 /dev/sdd1
  2. 山:mkdir /tmp/usbboot && mount /dev/sdd1 /tmp/usbboot
  3. 准备目标文件夹:mkdir /tmp/usbboot/EFI
  4. 复制rEFInd的文件:(cp -a /path/to/refind /tmp/usbboot/EFI/或使用refind-install脚本refind-install --root /tmp/usbboot:)
  5. 编辑rEFInd配置以品味 ( /tmp/usbboot/EFI/refind/refind.conf)

在 UEFI 系统上完全安装引导加载程序的最后一步是使用 UEFI 固件efibootmgr或类似方法将其注册。可启动 USB 驱动器通常会跳过此步骤;它只会影响当前系统。要在其他系统上启动,您可以使用固件的启动菜单。 (如果没有插入其他驱动器,并且 USB ESP 上没有其他引导加载程序,则固件应该自动检测rEFInd并自动加载它。)

答案2

在可移动磁盘上,最好将引导加载程序 ( refind.efi) 复制/重命名为/tmp/usbboot/EFI/boot/bootx64.efi(使用 quixotic 的说明中的路径名)。这是 UEFI 固件查找的特殊文件名:如果存在,则磁盘将被检测为 UEFI 可启动。

如果您为引导加载程序使用任何其他路径或文件名,那么您需要使用efibootmgr或 类似的内容来指定引导路径,如 quixotic 所说。这对于永久安装来说很好,但如果您的目的是拥有一个可以插入任何系统来启动您自己的操作系统的 USB 设备,那就不太方便了。

但是,您似乎计划在 USB 设备上使用 Linux LVM - 这不太适合您。如果没有额外的软件(或根本不支持),Windows 和 macOS 都无法理解 Linux LVM,并且绝对不会接受它作为系统分区的位置。

您在这里不需要 Linux LVM:这只会使您的计划变得更加复杂。只需使用 GPT 分区表创建一个 NTFS 分区和一个 APFS 分区即可。

相关内容