我尝试根据以下内容更新 systemd-boot 配置:https://wiki.archlinux.org/index.php/systemd-boot
我正在尝试将 Windows 10 添加到我的启动菜单。这是我的驱动器:
kaisellgren@pop-os:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931,5G 0 disk
├─sda1 8:1 0 128M 0 part
└─sda2 8:2 0 931,4G 0 part
sdb 8:16 0 931,5G 0 disk
├─sdb1 8:17 0 16M 0 part
├─sdb2 8:18 0 600M 0 part /boot/efi
└─sdb3 8:19 0 930,9G 0 part /
nvme0n1 259:0 0 465,8G 0 disk
├─nvme0n1p1 259:1 0 499M 0 part
├─nvme0n1p2 259:2 0 99M 0 part
├─nvme0n1p3 259:3 0 16M 0 part
└─nvme0n1p4 259:4 0 465,2G 0 part
正如你所看到的,我的启动SATA3驱动器是sdb(分区sdb2)。
我的/EFI/Microsoft/Boot/bootmgfw.efi
引导加载程序位于分区 2 的 nvme0n1 驱动器中(我检查过)。
所以我创建了这个:
kaisellgren@pop-os:~$ sudo cat /boot/efi/loader/entries/windows.conf
title Windows
efi /EFI/Microsoft/Boot/bootmgfw.efi
options root=UUID=4C58-E6DF
我从这里获得了根驱动器 UUID:
kaisellgren@pop-os:~$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Jul 10 18:53 02165C56165C4D33 -> ../../sda2
lrwxrwxrwx 1 root root 15 Jul 10 18:53 160469B004699391 -> ../../nvme0n1p4
lrwxrwxrwx 1 root root 15 Jul 10 18:53 3C025449025409F2 -> ../../nvme0n1p1
lrwxrwxrwx 1 root root 15 Jul 10 18:53 4C58-E6DF -> ../../nvme0n1p2
lrwxrwxrwx 1 root root 10 Jul 10 18:53 5B44-2C7F -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jul 10 18:53 646d95a4-1bb4-45c0-96bc-3ee20c4b4211 -> ../../sdb3
这是我的加载器配置:
kaisellgren@pop-os:~$ sudo cat /boot/efi/loader/loader.conf
default Pop_OS-current
timeout 5
当我启动电脑时,我会看到启动菜单有两个选项:当前的 PopOS 和旧的 PopOS。我在列表中没有看到 Windows 条目。我究竟做错了什么?如果我更改超时参数,它会影响启动菜单,因此我肯定会编辑正确的配置文件。
感谢您提前提供的所有帮助!
答案1
很长一段时间后,我找到了一个解决方案,启动到你的 Linux 分区,将你的 Windows EFI 分区挂载到一个文件夹中,将 Microsoft 文件夹复制到/boot/EFI/
(在你的 Linux 机器上),这样就可以了。
手动将 windows.conf 添加到加载器条目的问题中描述的过程对我来说不是必需的。
这是最初提到的详细复制过程:
sudo fdisk -l
查找大小100M
和类型为 的分区EFI System
。如果它与大小499M
和类型为 的另一个分区位于同一磁盘上,则可以判断它是正确的Windows recovery environment
。记下 EFI 分区的设备名称,例如/dev/nvme0n1p2
(将其与下面的 mount 命令一起使用)。
创建一个目录并将Windows-EFI分区挂载到其中:
sudo mkdir /mnt/winefi
sudo mount /dev/nvme0n1p2 /mnt/winefi
将 boot-configuration-data (BCD) 复制到 systemd-boot EFI 菜单并卸载 windows 分区:
sudo cp -R /mnt/winefi/EFI/Microsoft/ /boot/EFI/Microsoft
sudo umount /mnt/winefi
sudo rm -rf /mnt/winefi
仅当 Arch 的 GPT/MBR/UEFI/BIOS 星座与 Windows 相同时,这一切才有效,例如Arch = GPT/UEFI
无法链式加载Windows=Bios/MBR
systemd-boot 进行链式加载。请参阅维基百科。