我在一个驱动器 (m.2) 上运行 Ubuntu 20.04,在另一个驱动器 (3.5" SSD) 上运行 Win10。我最近在我的系统中添加了另一个 m.2 驱动器并将我的 Win10 系统克隆到它上面。所以这就是我的驱动器的样子现在,其中 sda1 和 nvme1n1p1 是克隆:
root@cantankerous:~# lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sda
└─sda1 ntfs 9638B89D38B87E35
nvme1n1
└─nvme1n1p1 ntfs 9638B89D38B87E35
nvme0n1
├─nvme0n1p1 vfat 23FD-2B75 478.1M 6% /boot/efi
└─nvme0n1p2 LVM2_member cKt344-wOPa-y34D-j0Wg-y3wq-ZlFz-fIGpnr
├─vgkubuntu-root ext4 27945eb2-45c3-48da-b887-6391111416e3 328.4G 23% /
└─vgkubuntu-swap_1 swap 9bdb7f2f-ac7b-4322-ae8e-38c870a190cc [SWAP]
我现在想摆脱 /dev/sda 。
我相信我接下来需要做的是使用efibootmgr来修改我的可启动驱动器。现在我的 EFI 文件位于 Ubuntu 所在的 nvme0n1 驱动器上。这是efibootmgr的输出:
root@cantankerous:~# efibootmgr -v
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0002,0008,0001
Boot0000* ubuntu HD(1,GPT,9ab61c6d-62f6-474f-99c4-64eae4e5b595,0x800,0x100000)/File(\EFI\UBUNTU\SHIMX64.EFI)
Boot0001* Windows Boot Manager HD(1,GPT,9ab61c6d-62f6-474f-99c4-64eae4e5b595,0x800,0x100000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot0002* Hard Drive BBS(HD,,0x0)..GO..NO........q.S.a.m.s.u.n.g. .S.S.D. .9.7.0. .E.V.O. .5.0.0.G.B....................A...........................%8Z.........4..Gd-.;.A..MQ..L.S.4.6.6.N.X.0.K.A.6.2.1.5.9.H........BO..NO........u.S.H.G.P.3.1.-.5.0.0.G.M.-.2....................A.......................................8..Gd-.;.A..MQ..L.C.S.0.9.N.5.2.4.9.1.0.2.0.9.G.3.K........BO..NO........u.S.a.m.s.u.n.g. .S.S.D. .8.5.0. .E.V.O. .2.5.0.G.B....................A.................................>..Gd-.;.A..MQ..L.2.S.5.R.X.N.H.A.0.3.4.9.1.2. .Z. . . . ........BO
Boot0008* Windows m.2 HD(1,GPT,2aba441a-2647-48c4-868c-b4ca31d4f5a3,0x800,0x3a385800)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)
我尝试使用efibootmgr创建一个新的可启动条目,但我不知道该怎么做是指定,虽然 EFI 映像位于“nvme0”上,但我需要它启动到“nvme1”。我看到这是通过 /dev/sda 使用“bcdobject=([uuid])”完成的,但我找不到任何关于如何完成的信息。
那就是,当然,假设我在正确的轨道上!
完成后,我假设os-probe将选择新驱动器,并且可以将其与grub-mkconfig集成。
谢谢你的帮助!
您不能拥有 efibootmgr 使用的重复 UUID 或 GUID/partUUID。
在尝试任何更新之前断开 sda,以避免混淆哪个设备是哪个。一些示例 efibootmgr 条目:Sony、HP 和其他解决方法:
双启动 Win 8 / Ubuntu 仅加载 Win
您必须使用 /dev/nvme 和正确的驱动器、分区。像这样,但检查驱动器/分区是否正确,比较 UEFI 引导条目中的 GUID 和 lsblk 中的 partUUID。这将告诉您使用哪个 ESP 启动。
Grub 只能引导工作的 Windows。Windows 将重新打开快速启动,然后 grub 将无法启动它,因此最好修复 UEFI 启动项以直接启动 Windows。
Grub2 的 os-prober 在 ESP 中查找 .efi 引导文件以查找其他要引导的安装。它不使用 UEFI 条目。