如何安装 archlinux EFI grub with MBR (msdos) 分割表?



众所周知,EFI 引导不仅限于 GPT 分区表,MBR 还可以。

我有一个带有 msdos 分区表的旧磁盘,我想将其重新安装到 archlinux 中。

在维基中:

https://wiki.archlinux.org/index.php/GRUB#UEFI_systems

它还说GPT不是必需的。

GPT 不是绝对必需的,但强烈建议这样做,并且是本文当前支持的唯一方法。

使用MBR分区表将grub EFI引导安装到我的硬盘驱动器的方法是什么? 谢谢。

假设:

/
  • dev/sda1 是你的 efi 分区
  • /
  • dev/sda2 是你的根分区(也包含/boot(
  • 您的 linux
  • 内核文件是/boot/vmlinuz-linux
  • 您的 initrd 文件是/boot/initrd.img

刻录带有 amd64 架构的 ubuntu 16.04 的实时 USB,在其上启动并粘贴以下命令:

sudo os-prober
efibootmgr

安装os-prober 或 efibootmgr(如果尚未安装(:

sudo apt-get install os-prober
sudo apt-get install efibootmgr

efi 模式下的 Grub 可能没有安装,也安装它

sudo apt-get install grub-efi-amd64-signed

然后,安装 grub:

sudo mount -t ext4 /dev/sda2 /mnt
sudo mount -t vfat /dev/sda1 /mnt/boot/efi
grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --boot-directory=/mnt/boot --bootloader-id=grub

不要尝试使用 grub-mkconfig,它不起作用。 相反,从新的 grub 引导加载程序启动,你将有一个 grub shell,粘贴以下命令:

set root=(hd0,2)
linux /boot/vmlinuz-linux root=/dev/sda2
initrd /boot/initrd.img
boot

之后,你应该在 linux 上,挂载你的 efi 分区(到/boot/efi !(,如果还没有,安装 grub/os-prober/efibootmgr,然后运行以下命令:

sudo os-prober
grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg

重新启动,grub 恢复并正常工作

相关内容

  • 没有找到相关文章

最新更新