Windows 10 处于 UEFI 模式,Ubuntu 处于传统模式

Windows 10 处于 UEFI 模式,Ubuntu 处于传统模式

我的笔记本电脑已经在 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并尝试重新启动。

相关内容