是否可以使用用于 UEFI 和传统 BIOS 的混合 Linux USB 棒?

Joo*_*ook 15 bios linux usb boot uefi

我的想法是用 Lubuntu 创建一个 USB 引导棒,它能够在较旧的 BIOS 笔记本电脑和较新的 UEFI 系统上启动。

当 Stick 设置为传统引导设备时,这将非常容易,但我希望它成为支持 UEFI 的设备。

  1. 这还有道理吗?!还是我对 UEFI 概念的理解大错特错?
  2. 如有必要,可以有两种不同的 Linux 安装(一种用于 UEFI,一种用于旧版,但都在同一驱动器上)
  3. 在旧版 Bios 上启动 GPT 设备 - 这会起作用吗?

我看不清楚,拥有一个单独的传统 Linux 引导棒可能只是一个更好的主意,但我很想探索边界:)

那么,我对可以与旧版 bios 一起使用的混合 linux-uefi-boot-usb-stick 的想法是否可行?


(3) linux 似乎可以使用 grub http://www.rodsbooks.com/gdisk/booting.html

此外,除了一个 Swap、Fat32 和两个 Ext4 分区之外,我确实在该棒上准备了一个 EF00 分区。


(1) 似乎也是可能的http://www.rodsbooks.com/bios2uefi/

然而,这个说明是从 2012 年开始的,一段时间过去了 - 有没有人有一个更容易的工作示例?


对于该主题的其他研究人员:

从非 EFI 主板上的 GPT 磁盘启动 Windows 7 有没有办法在 GPT 上使用 BIOS 启动 Windows 7/8?

http://www.borncity.com/blog/2012/07/25/uefi-emulation-auf-pcs/


更新:

我已经设法使用 rEFInd 创建了 UEFI 部分,包括安全启动设置。

按照给定的建议,我曾经dd复制gptmbr.bin到我的驱动器,现在它似乎至少可以在 BIOS 系统上执行某些操作:“这不是可启动磁盘”

但是,我已经按照建议设置了pmbr磁盘legacy boot标志和 gpt标志 - 仍然出现这个错误,有什么想法吗?

我的 ESP 分区是磁盘上的第二个分区,并使用 efi 文件进行设置。

设置:

  • 64GB 空间
  • GPT 分区表
  • 磁盘设置了 pmbr 标志
  • 第一个分区从 16MiB 开始,大约 45GB,一个用于数据的 fat32 主分区
  • 第二个分区大约 45GB 开始,是 EFI 系统(fat32)与一个有效的 rEFInd 设置
  • 3rd - 5th 分区是我工作的 Lubuntu 14.04.1 的 home (ext4)、swap 和 root(ext4)

使用dd我已将gptmbr.bin编译的 6.02 Syslinux复制到前 440 字节。

在 parted 3.2 下,我可以看到我的分区 2 有一个bootlegacy_boot标志。

在引导过程中,我得到没有启动盘发现-如果我把我的第5,而不是第二个分区的是legacy_boot我得到缺少OS

它还活着!

(因为我的旧问题被删除了https://askubuntu.com/q/516730/319747


我的猜测是,我必须将一些*.c32文件和其他文件复制到我的 EFI(在哪里?!)或我的根分区(?!)上的syslinux文件夹中/boot/syslinux,才能让它工作 - 我对吗?哪些文件是必不可少的?

此外,我想我也需要那个syslinucx.cfg文件 - 对吗?


我的目标至少是在根 ext4 分区上直接启动 lubuntu 系统。

更新:

虽然我不知道为什么,但我让它工作了 - 但不是手动安装。

  • pmbr标志是坏的,并从引导棒作为UEFI禁止我的UEFI系统
  • legacy_boot我的第 5 个分区(linux root)需要该标志
  • 我不得不使用 extlinux --install /path/to/root/parition
  • 我必须syslinux.cfg在我的根分区引导下的 syslinux 文件夹中创建一个

我在第二个较小的棒上完成了所有这些,然后尝试只复制 syslinux 文件夹,但没有运气 - 这extlinux --install似乎是强制性的。

有谁知道具体是extlinux --install做什么的?是否可以手动完成,或者您如何安装较新版本(如 6.02)而不将其安装到您的系统上?

让我的坚持与 BIOS、UEFI 和 UEFI SecureBoot 上提到的分区一起工作,一路走来,学到了很多东西,用 parted 几乎杀死了 2TB,小心并祝你好运。

use*_*686 11

这是可能的,而且经常使用外部 USB 记忆棒和内部驱动器来完成。

关于分区表类型:

  • BIOS 通常不需要任何分区表。它只对引导代码部分感兴趣,即 MBR 的前 440 个字节。(虽然也有例外。如果某些 BIOS 实现无法找到具有常用分区类型之一的 MBR,它们实际上会中断。希望这些很少见。)

    GPT 分区表不会在物理上取代 MBR——它总是从扇区 1 开始,而 MBR 位于扇区 0——因此磁盘可能同时拥有这两者。事实上,大多数 GPT 磁盘确实有一个“保护性 MBR”,其中只包含一个覆盖整个磁盘的分区,以防止旧的 MBR-only 分区工具意外破坏数据。

    例如,您可以将 Syslinux 引导扇区安装到您的 MBR 中,然后它就会启动。(该 syslinux-install_update脚本会为您执行此操作,但您可以gptmbr.bin在 syslinux 包中手动查找。)

    与 MBR 分区上的“活动”标志非常相似,Syslinux 将在 GPT 分区上寻找“传统 BIOS 可引导”标志(位 2 – UEFI 规范 2.4 部分 5.3.3 表 20);如果您安装了sgdisk(来自 gptfdisk),上述脚本还会自动设置该标志。

    也可以使用 GRUB,但也比较烦人。由于 GRUB 2 想要将自身的一部分“嵌入”到传统上未使用的扇区 1-62,它会覆盖存储在同一位置的 GPT。因此,您可能需要创建一个 2-4 MB 的专用分区并将其标记为 BIOS 可引导,这样grub-install就会发现自己是一个嵌入位置。

  • 另一方面,UEFI 规范确实要求支持 MBR 分区类型(第 12.3.1 节)并将 MBR 分区类型分配给0xEFEFI 系统分区(第 5.2.2 节)。

    因此,如果由于某种原因您的磁盘无法使用 GPT,您仍然可以在 MBR 上创建一个 EFI 系统分区,只要它具有正确的文件系统和所有必需的文件(第 12.3.1.3 节),它就会被使用:

    对于可移动媒体设备,必须只有一个符合 UEFI 的系统分区,并且该分区必须在根目录中包含一个 UEFI 定义的目录。该目录将被命名为EFI. 所有操作系统加载程序和应用程序都将存储在下面EFI名为BOOT. 对于BOOT目录中每个受支持的处理器架构,必须只有一个可执行的 EFI 映像。对于可在 EFI 下启动的可移动媒体,它必须按照第 3.4.1.1 节中列出的规则构建。

关于操作系统,Linux 通常一点也不关心它是从今天的 BIOS 启动还是明天从 UEFI 启动。我不得不将我的笔记本电脑从 UEFI 模式重新启动到“BIOS 兼容”模式,然后在本周重新启动一百次,同时试图找到 3.17 UEFI 支持中的错误...


请注意,“BIOS 到 UEFI 转换”一文是关于完全不同的事情。它描述了如何安装UEFI 本身——一种称为“DUET”的 UEFI 实现——从仅 BIOS 的系统启动。它与直接从 BIOS 引导操作系统无关。