在 BIOS 系统中启动 EFI 磁盘

在 BIOS 系统中启动 EFI 磁盘

我有一个基于 Debian 的系统,其中有三个驱动器。所有三个驱动器均具有以下分区布局:

Model: ATA ST4000DM000-1F21 (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  99.6MB  98.6MB  fat32              boot
 2      99.6MB  40.1GB  40.0GB                     raid
 3      40.1GB  4001GB  3961GB                     raid

第一个分区是 EFI 系统分区。第二和第三个分区构成两个软件 RAID 阵列:一个包含 的 40GB RAID 1 阵列/和一个存储数据的 ~8TB RAID 5 阵列(作为单个用户的主目录安装)。

该系统的主板出现故障,我需要让这些驱动器在另一个系统中启动。提取数据是不够的;我需要真正让驱动器启动。

我已将这三个驱动器连接到另一台机器,并确认它检测到了这些驱动器。实时启动到 Ubuntu 时,我可以确认 RAID 阵列完好无损:mdadm --assemble --scan检测和重新组装两个阵列没有问题,我可以挂载和访问它们的内容。我还可以成功挂载这三个驱动器上的 ESP 分区,但由于配置错误或我的某些误解,只有第一个驱动器上的 ESP 分区包含任何内容(一个 128KB 的文件:)/EFI/debian/grubx64.efi

但是,我无法启动驱动器。新主机是第一代 i7(X58 芯片组),不支持 EFI。我该怎么做才能启动它?我希望能够以某种方式从 USB 拇指驱动器启动 GRUB,然后从那里继续从驱动器启动,但我不知道如何设置类似的东西 - EFI 对我来说有点神秘,而且我怀疑/在 RAID 上也不容易。有人能告诉我从这里该怎么做吗?

答案1

它实际上没有什么特别之处。BIOS 无法启动为 UEFI 配置的系统。但是,在仅 BIOS 的系统上启动 GPT 磁盘是完全有可能的。您所需要的只是一个与 GPT 兼容的启动管理器,例如 Grub 2。

您需要一个 BIOS 启动分区 (ID EF02),最好将其作为磁盘的第一个分区。它不必很大,1MB 就足够了。但是,这意味着 ESP 会妨碍操作,必须将其移除。反正现在也不再需要它了。

grub-install /dev/sda将自动查找并使用 BIOS 启动分区。有时,需要明确指定体系结构,如下所示:grub-install --target=i386-pc /dev/sda。由于您的系统当前无法启动,因此您需要从chroot环境中执行此操作。我相信 Debian 有关于此主题的说明。

相关内容