众所周知,EFI引导不限于GPT分区表,MBR也可以。
我有一个带有 msdos 分区表的旧磁盘,我想将它重新安装到 archlinux 中。
在维基:
https://wiki.archlinux.org/index.php/GRUB#UEFI_systems
它还说GPT不是必需的。
GPT 不是绝对必要的,但强烈推荐它,并且是本文当前支持的唯一方法。
使用 MBR 分区表将 grub EFI 引导安装到我的硬盘驱动器的方法是什么?谢谢。
众所周知,EFI引导不限于GPT分区表,MBR也可以。
我有一个带有 msdos 分区表的旧磁盘,我想将它重新安装到 archlinux 中。
在维基:
https://wiki.archlinux.org/index.php/GRUB#UEFI_systems
它还说GPT不是必需的。
GPT 不是绝对必要的,但强烈推荐它,并且是本文当前支持的唯一方法。
使用 MBR 分区表将 grub EFI 引导安装到我的硬盘驱动器的方法是什么?谢谢。
假设:
使用 amd64 架构刻录 ubuntu 16.04 的 live 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 又回来了并开始工作