为已安装的 Linux 创建 EFI 启动

为已安装的 Linux 创建 EFI 启动

这个问题有两个方面:

  • 该项目及其软件需要 Scientific Linux 6.8,它仅支持在安装期间设置 MBR 启动。(除非我错过了什么)
  • 该笔记本电脑不支持传统启动,因此需要 EFI。

现在我手头有一个 200Mb 的分区,上面有 boot 和 esp 标志,但我却不知所措:下一步该怎么做?如何设置此分区以引导至 SL6.8?操作系统本身是否需要进行任何更改?

分区详细信息:

/dev/sda1       /home (ext4)
/dev/sda2       /     (ext4)
/dev/sda3       swap
/dev/sda4       /mnt/shared (vfat partition)
/dev/sda5       ? (EFI partition, leftover from a linux distro that supported this during installation for testing.)

附言:我知道这个组合是如何工作的,因为在硬盘坏掉之前,它曾经同时具有 SL6.8 和 EFI 启动。不知道是谁设置的,​​也不知道是怎么设置的。

PS:重新安装 Linux 发行版是一种选择,但我认为没有必要?

如果需要的话我会很乐意发布更多详细信息。

答案1

Grub2 支持 efi。您可以安装 grub2。这是来自 ubuntu 的有关它的详细 wiki 帖子。 https://help.ubuntu.com/community/UEFIBooting

#

在 (U)EFI 系统中安装 GRUB2

最好以 UEFI 模式启动 Linux(任何实时 ISO)。

确定您的 EFI 系统分区或创建它(>=100 MiB FAT32 分区 - GPT fdisk 类型代码 EF00 或 GPT 中的 GNU Parted‘boot’标志)。

将分区挂载到 /mnt/EFISYS(或您希望的任何挂载点)。以下代码假定 /dev/sda1 为 EFISYS 分区。

sudo mkdir -p /mnt/EFISYS # if the mount-point does not exist
sudo modprobe dm-mod # required to make grub-probe stop complaining
sudo mount -t vfat -o rw,users /dev/sda1 /mnt/EFISYS
sudo mkdir -p /mnt/EFISYS/efi/grub

然后,为 GRUB 构建一个 EFI 应用程序并复制它和其他模块:

cd <grub2_compiled_source_dir>/grub-core
../grub-mkimage -O ${EFI_ARCH}-efi -d . -o grub.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot
sudo cp grub.efi *.mod *.lst /mnt/EFISYS/efi/grub

注意:-p“”选项对于创建便携式 grub.efi 应用程序很重要。现在在 /mnt/EFISYS/efi/grub 中创建一个 grub.cfg:

sudo touch /mnt/EFISYS/efi/grub/grub.cfg

相关内容