记一次修复Ubuntu UEFI引导过程

今天在VMware Workstation中使用UEFI模式安装Ubuntu16.04.3(64bit),安装完成重启后停留在引导界面。从屏幕上显示的信息可以看出没有找到启动项。写这篇文章记录下解决过程。

EFI shell

发现是引导问题后,我首先从 BIOS 进入 EFI shell 尝试手动引导。
进入 efi shell 后会显示 Device mapping table,根据路径信息,找的硬盘的 EFI 分区为 fs0,输入

fs0:

进入启动分区,然后输入

ls

列出文件,发现分区为空,因此猜测安装过程中Grub安装出了问题。

Live OS

发现问题后,尝试使用Live OS手动重新安装 Grub。
再次挂载ISO镜像,选择 Try Ubuntu without installing 进入Live OS。
进入系统后打开终端(快捷键Ctrl+Alt+T)

查看系统分区情况:

sudo fdisk -l  
sudo blkid  
df -Th  

我的系统只有一块硬盘 /dev/sda ,两个分区,/dev/sda1 为 EFI 分区,/dev/sda2 为系统分区。

挂载分区

sudo mount /dev/sda2 /mnt  
sudo mount /dev/sda1 /mnt/boot/efi

挂载 EFI 分区前可以查看 /mnt/etc/fstab 查看分区挂载表,确定挂载点

挂载虚拟文件系统

挂载系统关键的虚拟文件系统

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

chroot

切换系统根目录

sudo chroot /mnt

修复引导项

apt update
apt install grub-efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi
update-grub

--target 指定系统结构
--efi-directory 指定 EFI 分区挂载点

Grub重新安装后,重启成功。

reference

https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot

0%