首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将另一个NVME驱动器中的Windows 10添加到系统引导加载程序项中?

如何将另一个NVME驱动器中的Windows 10添加到系统引导加载程序项中?
EN

Unix & Linux用户
提问于 2020-07-10 16:14:46
回答 1查看 2.8K关注 0票数 1

我尝试根据以下内容更新systemd-boot配置:https://wiki.archlinux.org/index.php/systemd-boot

我正在尝试将Windows 10添加到我的启动菜单中。这是我的驱动器:

代码语言:javascript
复制
    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)。

分区2中的/EFI/Microsoft/Boot/bootmgfw.efi驱动器中有nvme0n1引导加载程序(我检查过)。

所以我创造了这个:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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

这是我的装载机目录:

代码语言:javascript
复制
kaisellgren@pop-os:~$ sudo cat /boot/efi/loader/loader.conf
default Pop_OS-current
timeout 5

当我启动我的电脑,我看到启动菜单有两个选项: PopOS当前和旧。我在列表中没有看到Windows条目。我做错了什么?如果我更改超时值参数,它会影响启动菜单,因此我肯定是在编辑正确的配置文件。

感谢所有的帮助,提前!

EN

回答 1

Unix & Linux用户

发布于 2021-10-13 11:56:22

很长一段时间后,我找到了一个解决方案,引导到您的Linux分区,将您的windows EFI分区挂载到一个文件夹中,将Microsoft文件夹复制到/boot/EFI/ (在您的linux机器上),这样就可以了。

在手动将windows.conf添加到加载器条目的问题中描述的过程对我来说不是必要的。

这是最初提到的详细复制过程:

代码语言:javascript
复制
sudo fdisk -l

查找大小为100M并键入EFI System的分区。如果它位于具有大小为499M并键入Windows recovery environment的另一个分区的同一磁盘上,则可以判断它是正确的。注意EFI分区的设备名称,例如/dev/nvme0n1p2 (将其与挂载命令一起使用)。

创建一个目录并将Windows分区挂载到其中:

代码语言:javascript
复制
sudo mkdir /mnt/winefi
sudo mount /dev/nvme0n1p2 /mnt/winefi

将启动-配置-数据(BCD)复制到systemd-boot EFI菜单并卸载windows-分区:

代码语言:javascript
复制
sudo cp -R /mnt/winefi/EFI/Microsoft/ /boot/EFI/Microsoft
sudo umount /mnt/winefi
sudo rm -rf /mnt/winefi

这一切只有当GPT/MBR/UEFI/BIOS星座的拱门是相同的视窗,例如Arch = GPT/UEFI不能链式加载Windows=Bios/MBR与系统引导。见维基

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/597788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档