我在预装的 Windows 旁边安装了最新的 ubuntu,并采用了标准双启动程序。
最终的分区结果为:
Disk /dev/nvme0n1: 238.5 GiB, 256060514304 bytes, 500118192 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
Disklabel type: gpt
Disk identifier: 1FD93AC5-481F-46E4-8743-4C1B0493E4D3
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 206847 204800 100M EFI System
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved
/dev/nvme0n1p3 239616 217887637 217648022 103.8G Microsoft basic data
/dev/nvme0n1p4 498020352 500117503 2097152 1G Windows recovery environment
/dev/nvme0n1p5 217888768 498020351 280131584 133.6G Linux filesystem
Partition table entries are not in disk order.
我首先使用 ubuntu(grub)在 UEFI 中配置了启动顺序。
最终的 EFI 配置为:
Timeout: 0 seconds
BootOrder: 0001,0002,2001,2002,2003
Boot0001* ubuntu
Boot0002* Windows Boot Manager
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network
启动时,grub 通常会显示默认选项“ubuntu”。另一个选项是“Windows Boot Manager”。
ubuntu 启动正常,如果我关闭系统并稍后重新启动,一切都会继续工作。但是,如果我尝试从 ubuntu 重新启动,则会出现“无启动设备”屏幕,我必须使用电源按钮强制关闭。下次启动时,Windows 将直接启动(不经过 grub)。如果我进入 UEFI Bios,启动顺序将颠倒过来,Windows 优先。我必须重新颠倒它才能再次启动 ubuntu,这很烦人。
Windows 中已禁用 Fastboot。当我从 grub 启动 Windows,然后从 Windows 重新启动时,机器现在正常转到 grub。因此,唯一不起作用的是从 ubuntu 重新启动。
让我困惑的是,efibootmgr 没有显示分区 Boot0000,而我见过的所有示例中都是这样。也许这与我的问题无关,但我认为这是唯一的区别。
我只能假设,在 ubuntu 重启时,系统会尝试直接从 /dev/nvme0n1p5(linux 文件系统)启动,而这个文件系统根本没有被标记为可启动。但我找不到任何影响此行为的设置。
还有其他想法吗?提前谢谢。
更多细节:
root@JensNewLap:/boot/efi/EFI# ls -la
insgesamt 7
drwx------ 7 root root 1024 Jun 9 13:02 .
drwx------ 4 root root 1024 Jan 1 1970 ..
drwx------ 2 root root 1024 Jun 13 19:25 Boot
drwx------ 2 root root 1024 Jun 9 13:02 Insyde
drwx------ 4 root root 1024 Mär 28 15:48 Microsoft
drwx------ 4 root root 1024 Jun 10 15:50 OEM
drwx------ 3 root root 1024 Jun 6 23:33 ubuntu
root@JensNewLap:/boot/efi/EFI# ls Boot/
bootx64.efi fbx64.efi
root@JensNewLap:/boot/efi/EFI# ls Insyde
root@JensNewLap:/boot/efi/EFI# ls Microsoft
Boot Recovery
root@JensNewLap:/boot/efi/EFI# ls OEM
Boot Recovery
root@JensNewLap:/boot/efi/EFI# ls ubuntu
BOOTX64.CSV fw fwupx64.efi grub.cfg grubx64.efi mmx64.efi shimx64.efi
root@JensNewLap:/boot/efi/EFI#
答案1
似乎有一个解决方法。我需要指定内核启动参数“reboot=pci”。为此,您可以编辑 /etc/default/grub:
GRUB_CMDLINE_LINUX="reboot=pci"
并更新 grub:
sudo update-grub
就是这样。重启似乎要花很长时间,但至少有效。
也许有必要向 Linux 内核提交一个 bug,以便将一个条目添加到重启dmi_table?