我的笔记本电脑已经在 UEFI 中安装了 Windows 10,但我错误地在传统模式下双启动了 Ubuntu 操作系统。因此,每次我都必须将 BIOS 设置更改为 Windows 的 UEFI 和 Ubuntu 的传统设置和传统设置。因此,当我启动 PC 时,它会询问我使用哪个操作系统(它也会询问当前操作系统,但根据 BIOS 设置不会运行另一个操作系统)
答案1
在 Ubuntu 中从传统启动切换到 UEFI 启动应该相当容易,只需要几个步骤。
首先确保 Windows 已完全关闭,WindowsFast-startup
功能应被禁用。启动您当前的 Ubuntu 安装。
您需要知道哪个分区是您的 EFI-System-Partition (ESP)。您可以使用该命令lsblk -f
获取 ESP 的设备名称和 UUID。ESP 格式为 FAT,通常大小为几百 MB,大多数分区都会被标记,您可以轻松找到它。
使用以下命令创建一个目录作为 ESP 的挂载点
sudo mkdir /boot/efi
现在在 /etc/fstab 中添加一行,内容如下:
UUID=XXXXXXXXX /boot/efi vfat umask=0077 0 1
使用之前找到的UUID。
使用以下方式安装 ESPsudo mount-a
现在安装grub-efi-amd64
-package:
sudo apt install grub-efi-amd64
这将自动删除grub-pc
(Grub 的旧启动模式版本)。
grub-install or update-grub
不需要其他命令,安装grub-efi-amd64
将在软件包安装期间将引导加载程序安装到 ESP。您已准备好重新启动。
进入 UEFI 设置并检查您的启动顺序。我还建议在 UEFI 设置中禁用 CSM 以加快启动过程。
答案2
我建议您在 UEFI 模式下重新安装 Ubuntu,因为从传统模式迁移到 UEFI 并不那么简单。您应该:
- 从 Live-USB 启动;
- 创建 FAT32 分区(大小最小为 33MB)并用启动标志标记它;
- 通过以下方式进入 chroot 模式:
sudo mount -o /dev/sdxX /mnt
其中 xX 是您的驱动器和根分区所在的分区号;sudo mount /dev/sdxX /mnt/boot/efi
for i in /dev /dev/pts /proc /run /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
for i in /dev /dev/pts /proc /run /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
现在安装 grub:
apt-get install --reinstall grub-efi-amd64
grub-install --recheck /dev/sdX
要不就:
dpkg-reconfigure grub-efi-amd64
它应该在 UEFI 中创建“ubuntu”菜单项。
现在编辑你的 fstabsudo nano /etc/fstab
并添加以下内容:
UUID=bla-bla /boot/efi vfat umask=0077 0 1
您应该运行blkid
来识别您的 efi 分区具有哪个 UUID。
检查安装了哪些软件包dpkg --get-selections | grep grub
grub-common install
grub-efi install
grub-efi-amd64 install
grub-efi-amd64-bin install
grub2-common install
这些是应该为 UEFI 启动安装的软件包。其他的都应该删除。
还请检查/EFI/ubuntu/grubx64.efi
文件是否存在。
Ctrl按+退出 chroot D。卸载所有/mnt
并尝试重新启动。