我在带有 efi 分区的 nvme ssd 上安装了 Windows,并在一个干净的 ssd 上安装了 Ubuntu 22.04。我按照以下方法做了一切在这里建议即关闭boot
并esp
标记 windows efi 分区,然后安装 Ubuntu,安装 gparted(无论出于什么原因它都没有包括在内),检查两个标志,运行sudo update-grub
但重启后什么也没发生,它直接启动到 ubuntu。Windows 安装在 uefi 模式下。我运行它sudo os-prober
,它确实看到了 windows。我也sudo grub-install
按照一个答案中的建议运行update
,但也没有帮助。我关闭了 Windows 中的快速启动并再次运行install
,update
没有帮助。可能是什么问题?这是我的磁盘分区lsblk
:
sda 8:0 0 232,9G 0 disk
├─sda1 8:1 0 18,6G 0 part [SWAP]
├─sda2 8:2 0 954M 0 part /boot
├─sda3 8:3 0 286M 0 part /boot/efi ###idk, maybe it's because I placed efi right after /boot partition when installing?
├─sda4 8:4 0 27,9G 0 part /home
└─sda5 8:5 0 185,1G 0 part /var/snap/firefox/common/host-hunspell
/
nvme0n1 259:0 0 476,9G 0 disk
├─nvme0n1p1 259:1 0 100M 0 part ### this is efi windows
├─nvme0n1p2 259:2 0 16M 0 part
├─nvme0n1p3 259:3 0 476,3G 0 part
└─nvme0n1p4 259:4 0 533M 0 part
现在,如果我进入/boot
文件夹,里面有/efi
和/grub
文件夹,里面/grub
有grub.cfg
,但里面/efi/efi/ubuntu/
也grubx64.efi
有grub.cfg
文件,这正常吗?我错过了什么?任何帮助都非常感谢,谢谢!
现在 grub 甚至没有启动,只是直接启动到 ubuntu。sudo grub-probe -t device /boot/grub
显示/dev/sda2
但sudo debconf-show grub-pc
行中显示为空,grub-pc/install_devices
因为它说这里。我也尝试运行sudo grub-install dev/sda
,它没有返回任何错误,但也没有帮助。输出sudo update-grub
:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.2.0-32-generic
Found initrd image: /boot/initrd.img-6.2.0-32-generic
Found linux image: /boot/vmlinuz-5.19.0-32-generic
Found initrd image: /boot/initrd.img-5.19.0-32-generic
Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done
答案1
好的,经过一些研究后我发现:
/efi/efi/ubuntu/grub.cfg
仅供参考/boot/grub/grub.cfg
- 问题是 grub 没有检测到窗口,因为默认情况下,
os-prober
无论出于什么原因,现在都不使用窗口。
因此,为了解决这个问题,您需要添加:GRUB_DISABLE_OS_PROBER=false
到/etc/default/grub
文件,然后运行sudo update-grub
,之后 Windows 就会出现,并且 grub 菜单也会显示。