当您要求清楚地说明如何操作时,它就在这里。我假设您已经启动了实时 Linux。
对 U 盘进行分区
我推荐命令行工具gdisk。它产生非常干净的结果。或者,您可以使用gparted.
创建一个新的分区表。使用带有保护性 MBR 的 GPT。
定义这些分区:
示例:在我的 64GB 拇指驱动器上,结果如下所示:
Number Start (sector) End (sector) Size Code Name
1 2048 107632639 51.3 GiB 0700 DATA
2 107632640 124411903 8.0 GiB 8300 Linux filesystem
3 124411904 124413951 1024.0 KiB EF02 BIOS boot partition
4 124413952 124822453 199.5 MiB EF00 EFI System
Run Code Online (Sandbox Code Playgroud)使用任何方法将 Linux 安装到 U 盘。
在此过程中,使用您选择的文件系统格式化 Linux 分区,最好是ext4. 将此分区用作 root /。
使用 FAT16 格式化 EFI 系统分区。
BIOS 引导分区保持未格式化。
安装 GRUB 两次
最后一步,为两种引导方法、UEFI 风格引导和传统 BIOS 引导安装 GRUB。
grub-install --target=x86_64-efi --removable /dev/sdx
grub-install --target=i386-pc /dev/sdx
Run Code Online (Sandbox Code Playgroud)
/dev/sdx显然,您的 USB 拇指驱动器在哪里。
这--removable很重要。我花了三个小时才意识到我需要它在一个可移动的 USB 拇指驱动器上......
如果从“外部”将 GRUB 安装到 U 盘(未从 U 盘启动 Linux),则需要先挂载 Linux 分区。也许你将它安装到/mnt. 然后将 EFI 系统分区挂载到 Linux 分区/mnt/boot/efi目录中。使用--root=/mnt的参数grub-install。只有这样才能grub-install找到所有必需的目录。
完毕。
进一步阅读:
我们并没有真正在 MBR 中定义分区。所以你可能会问,为什么它可以在传统的 BIOS 机器上工作。请记住,我们将 GRUB 安装到 MBR 中。在传统 BIOS 引导过程中,会执行存储在 MBR 中的引导加载程序。这将加载 GRUB 的第 1 阶段,然后从传统 BIOS 引导分区继续加载第 2 阶段。但是此时,GRUB 实际上并不了解分区 MBR 或其他任何信息。为此,在 GRUB 阶段 1 中嵌入了 BIOS 启动分区的位置信息。因此,如果 BIOS 启动分区被移动,则需要重新安装 GRUB。加载 GRUB 阶段 2 后,GRUB 理解 GPT 并可以继续引导 Linux 内核。
| 归档时间: |
|
| 查看次数: |
3445 次 |
| 最近记录: |