我有一台带有 500GB SSD 的双启动 (Windows/Linux Mint) 笔记本电脑,并使用下面描述的过程将 SSD 更换为 1TB SSD。当我重新启动时,它直接启动到 Windows,没有 grub 菜单。为什么会发生这种情况?如何恢复 grub 菜单?
这就是我所做的:
- 从实时启动棒启动笔记本电脑(运行 Linux Mint)
- 使用 dd 将整个 500GB SSD 复制到网络驱动器
- 关闭笔记本电脑并将 SSD 更换为 1GB SSD。
- 使用实时启动棒再次启动,并使用 dd 将网络驱动器上的文件复制回 SSD。
- 无需实时启动棒即可重新启动
我知道这会使我的新 SSD 的一半未使用;我希望稍后能解决这个问题。
dd 工作正常,或者至少我可以从实时启动棒挂载所有分区,包括实时分区。
以下是一些硬件详细信息:
笔记本电脑:戴尔 XPS 15 (9550)
旧SSD:PM951 NVMe SAMSUNG 512GB
新款固态硬盘:金士顿科技 KC2500 M.2 1000 GB PCI Express 3.0 3D TLC NVMe
Pastebin 链接,来自 Boot-Repair:http://paste.ubuntu.com/p/DkMGvNXdYq/
万一重要的是:当我克隆磁盘时,Windows 快速启动被禁用。
答案1
使用任何 LiveCD 启动,然后参考以下教程:
- https://www.linuxbabe.com/command-line/how-to-use-linux-efibootmgr-examples
- https://wiki.gentoo.org/wiki/Efibootmgr
这可以在 Windows 上使用 EasyUEFI 和其他类似工具来完成。
答案2
在这种情况下,问题是 Bios 在没有告诉我的情况下认为,考虑到新的 SSD,选择 Windows 引导加载程序而不是 Grub 是个好主意。
我了解到 UEFI 有一个单独的 FAT32 分区,其中可以包含多个引导加载程序,这些引导加载程序是带有.efi
扩展名的可执行文件,并且我的戴尔 XPS15 笔记本电脑的 BIOS 具有隐藏良好的设置来选择使用哪个引导加载程序。对我来说正确的一个是 ubuntu/shimx64.efi (用于安全启动)或 grubx64.efi (非安全),而不是 EFI/Microsoft/Boot/bootmgfw.efi (Windows)。
efibootmgr
(来自 @Artem S. Tashkinov 的一个非常有用的提示)也可以解决这个问题。
答案3
将 UEFI 值重置为默认值后,我在双引导笔记本电脑上引导至 GRUB 时也遇到问题。我能够使用efibootmgr
这样的方法重新创建丢失的 UEFI 启动选项。请注意,我启用了安全启动,因此我使用 shimx64.efi 作为加载程序。
# Create a new boot option
efibootmgr -c -d /dev/nvme0n1 -L Fedora -l \\EFI\\fedora\\shimx64.efi
# Check the result - compare with the Windows entry
efibootmgr -v