使用 UEFI 安装 Windows 10 和 Linux 的问题

使用 UEFI 安装 Windows 10 和 Linux 的问题

我想在新的 SSD(480 GB)中安装 Windows 10 和 Linux(ubuntu 21 或 debian 11)。但我遇到了一些问题,首先我安装了 Windows 10,它创建了一些分区:sda1(100 MB -> EFI 系统)、sda2(16 MB -> Microsoft 保留)、sda3(194.7 GB -> Microsoft 基本数据)和 sda4(518 MB -> Windows 恢复环境)。然后我安装了 ubuntu 21,在安装过程中无法识别 Windows 安装。

当我启动时,它会转到 Windows SO,当我在 BIOS 中选择 ubuntu 时,出现了关于 /boot/vmlinuz 的错误。

现在我启动了一个实时的 ubuntu,这是使用 fdisk 的信息:

kubuntu@kubuntu:~$ sudo fdisk -l

Disk /dev/loop0: 2,03 GiB, 2181812224 bytes, 4261352 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 447,13 GiB, 480103981056 bytes, 937703088 sectors
Disk model: KINGSTON SA400S3
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C3887667-AC2B-42B3-9E9E-39558477EDA8

Device         Start       End   Sectors   Size Type
/dev/sda1       2048    206847    204800   100M EFI System
/dev/sda2     206848    239615     32768    16M Microsoft reserved
/dev/sda3     239616 408535333 408295718 194,7G Microsoft basic data
/dev/sda4  408537088 409597951   1060864   518M Windows recovery environment
/dev/sda5  409597952 761942015 352344064   168G Linux filesystem
/dev/sda6  761942016 927956991 166014976  79,2G Linux filesystem
/dev/sda7  927956992 937701375   9744384   4,6G Linux swap
The backup GPT table is corrupt, but the primary appears OK, so that will be used.

当我想恢复 grub 时执行以下操作:

sudo mount /dev/sda5 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sda

答案是:

Installing for i386-pc platform. grub2-install: warning: this GPT
partition label contains no BIOS Boot Partition; embedding won't be
possible. grub2-install: warning: Embedding is not possible.  GRUB can
only be installed in this setup by using blocklists.  However,
blocklists are UNRELIABLE and their use is discouraged..
grub2-install: error: will not proceed with blocklists.

我尝试了几种 BIOS 配置方法(华硕 Maximus VII Hero)。识别安装 USB 时出现一些问题,所以我不得不使用 DVD。

答案1

一般来说,您不需要 GRUB 来识别 Windows - 您可以直接从固件启动菜单中选择“Windows 启动管理器”。这两个引导加载程序可以在 UEFI 中共存。(不通过 GRUB 启动 Windows 也可以为 BitLocker 带来好处。)

Installing for i386-pc platform. grub2-install: warning: this GPT

这表示您正在尝试安装 BIOS 版本的 grub2,而不是 UEFI 版本。尝试明确指定 UEFI,并手动指定文件系统路径:

grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --boot-directory=/mnt/boot

(对于 UEFI,引导加载程序安装到已挂载的文件系统中,而不是磁盘上,因此您不需要指定“/dev/sda2”。)

您的实时 Kubuntu 系统可能安装了错误的“grub2”包。在 Debian 和 Ubuntu 中,不同的 GRUB“目标系统”文件(i386-pc用于 BIOS、x86_64-efi用于 UEFI)被分成单独的包,而不是所有文件同时可用。如果需要,请尝试:

apt install grub-efi-amd64{,-bin,-signed}

注意:如果您以 BIOS 模式启动了 Kubuntu live 系统,它将无法创建指向新安装的 grub2 的 UEFI NVRAM 条目。检查是否/sys/firmware/efi/efivars存在;如果不存在 – 重新启动并在主板的启动菜单中仔细选择“UEFI:”选项。

(如果这没有帮助,您有时可以通过安装两次 grub2 来解决该问题,并添加--removable第二次尝试的选项。)

相关内容