可能是在更新后,或者可能是在 Windows 启动过程中突然关闭后,启动菜单中突然缺少 Windows。
os-prober
输出:
/dev/sdb1@/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
/dev/sdb3:Ubuntu 18.04.2 LTS (18.04):Ubuntu:linux
efibootmgr -v
输出:
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0001,0008,0000,0007,0009
Boot0000* Windows Boot Manager HD(1,GPT,93828d50-bca4-01d4-a842-c149525eea00,0x800,0x145000)/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.}...3................
Boot0001* manjaro HD(1,GPT,65c82838-e33c-4e92-9be0-c427de042756,0x800,0x145000)/File(\EFI\manjaro\grubx64.efi)
Boot0007* UEFI: WDC WD10SPZX-75Z10T1, Partition 1 HD(1,GPT,93828d50-bca4-01d4-a842-c149525eea00,0x800,0x145000)/File(EFI\boot\bootx64.efi)..BO
Boot0008* ubuntu HD(1,GPT,93828d50-bca4-01d4-a842-c149525eea00,0x800,0x145000)/File(\EFI\ubuntu\shimx64.efi)
Boot0009* UEFI: Micron 1100 SATA 256GB, Partition 1 HD(1,GPT,65c82838-e33c-4e92-9be0-c427de042756,0x800,0x145000)/File(EFI\Microsoft\Boot\bootmgfw.efi)..BO
lsblk
输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 650M 0 part
├─sda2 8:2 0 651G 0 part
└─sda3 8:3 0 279.9G 0 part /run/media/user/lincom
sdb 8:16 0 238.5G 0 disk
├─sdb1 8:17 0 650M 0 part /boot/efi
├─sdb2 8:18 0 70.2G 0 part /run/media/user/6A5E35815E35475B
├─sdb3 8:19 0 27.9G 0 part /run/media/user/43f98f19-cd98-403a-96bd-6bac85
├─sdb4 8:20 0 51G 0 part /
├─sdb5 8:21 0 33.3G 0 part /run/media/user/vms
└─sdb6 8:22 0 55.5G 0 part /home
我使用以下命令重新安装 grub:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
sudo update-grub
但它仍然没有找到Windows(或Ubuntu)。
所有操作系统均以 UEFI 模式安装,并使用相同的 efi 分区进行引导。
~/# uname -r
5.4.101-1-MANJARO
~/$ grub-install --version
grub-install (GRUB) 2.04~19~manjaro
答案1
实际答案
扩展于@贾希德回应如果您最近更新了 grub,并且您的启动菜单或整个启动菜单消失了,您将需要编辑/etc/default/grub
和添加/编辑以下一行或多行:
如果您的启动菜单未显示
GRUB_TIMEOUT=10
GRUB_TIMEOUT_STYLE=menu
如果缺少其他操作系统(适用于 Linux 或 Windows、同一磁盘或另一磁盘、HDD、SSD 或 NVMe)。
GRUB_DISABLE_OS_PROBER=false
现在很重要确保编辑此文件后运行sudo update-grub
以使更改生效。/etc/default/grub
单独编辑没有任何作用。
附加信息
问题中列出了您可能会发现有用的其他一些命令,lsblk
将列出磁盘和分区,fdisk -l
将为您提供更多信息(例如 Windows 位于哪个磁盘上),sudo os-prober
将列出可以找到的所有其他操作系统(Linux 和 Windows,但不包括您当前正在运行的那个)。
如果上述方法都没有帮助,您可能感兴趣的文件和文件夹如下:
/boot/grub/grub.cfg
/etc/grub.d/
/etc/default/grub
Grub 文档(供参考)的“编写您自己的配置文件”部分列出了您可以在/etc/default/grub
文件中添加的选项。
答案2
由于某种原因,新版本grub
不再默认探测其他操作系统。您需要添加:
GRUB_DISABLE_OS_PROBER=false
在/etc/default/grub
编辑:
忘了提及,您需要 update-grub 才能应用此更改。