这是一个关于 Windows 10 和 Ubuntu 18.04 的双启动系统的问题。双引导是用wubiuefi设置的。
我将启动盘克隆到一个新磁盘,然后用新磁盘替换它。之后 Ubuntu 停止启动。我想让它回到正轨。
当我启动我的电脑时,我会看到一个带有 4 个选项的 grub 菜单:
- Ubuntu
- Ubuntu 的高级选项
- Windows 启动管理器(在 /dev/sdb2 上)
- 系统设置
如果我选择 Ubuntu 选项,我会得到以下文本:
Booting a command list
error: no such device: B0ACCB58ACCB17AC
Press any key to continue..
在按下任何键系统挂起。
如果我选择 Windows 选项,我会得到:
error: no such device: 62A5-4B98.
error: file `/EFI/Microsoft/Boot/bootmgfw.efi' not found.
Press any key to continue...
如果在启动过程中我选择了 BIOS 启动选项,我仍然可以登录到 Windows。当我这样做时,我会看到菜单:
- P0:WDC WD40EZRZ-00WN9B0
- P2:WDC WD4005FZEX-00Z4SA0
- Windows 启动管理器
- P1:CT1000MX500SSD1
- 许本图
- 进入设置
如果我选择 P0、P1 或 P2 选项,我会收到一条关于缺少引导记录的消息。如果我选择 Xubuntu,我会进入上面描述的 grub 菜单。如果我选择 Windows 启动管理器,我可以成功启动到 Windows。
e
如果在 grub 的 Ubunutu 行上选择,我会看到以下内容:
setparams 'Ubuntu'
gfxmode $linux_gfx_mode
insmod gzio
insmod ntfs
set root='hd1,gpt4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt4 --hint-efi=hd1,gpt4 --hint-baremetal=ahci1,gpt4 B0ACCB58ACCB17AC
else
search --no-floppy --fs-uuid --set=root B0ACCB58ACCB17AC
fi
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
linux /boot/vmlinuz-4.15.0-39-generic root=UUID=B0ACCB58ACCB17AC loop=/ubuntu/disks/root.disk ro rootflags=sync quiet splash $vt_handoff
initrd /boot/initrd.img-4.15.0-39-generic
如何修复我的 grub,以便我可以再次通过 grub 引导到 Windows 和 Linux?
注意:以上所有内容都是我手动输入的(没有从启动屏幕复制粘贴),所以对于任何错别字我深表歉意
您的问题是克隆磁盘后文件系统 UUID 值发生了更改,特别是有两个影响您的更改,Windows 文件系统 UUID 和 ubuntu 之一。您需要修复它的大多数信息都包含在这个有用的问题中,但是让我们充实缺失的细节。
当您启动并出现 grub 屏幕时,请转到“高级...”并选择恢复模式。启动过程完成后,选择 root shell。您的目标是找出新的 windows 一个曾经是的新值
62A5-4B98
和新的 linux 一个曾经是的新值B0ACCB58ACCB17AC
。进入 root shell 后,使用以下两个命令:
第一个将向您显示现有分区,您应该寻找具有“EFI 系统”或类似描述的分区。这就是您在
blkid
. 这将为您提供 Windows 的 UUID。请注意,根据您的配置,您可能拥有多个这样的分区。在不了解更多信息的情况下,我无法告诉您选择哪一个,假设您知道磁盘包含的内容,并且应该能够分辨出您 PC 上可能拥有的其他哪些无关紧要。UUID 将具有熟悉的XXXX-XXXX
格式,因此应该很容易发现。同样,您需要找出用于引导到 linux 的分区。我猜如果剩下的一次在同一个磁盘上,这将是打开的。找出哪一个的最佳方法是临时插入旧磁盘驱动器(确保在此之前关闭 PC)并在其上运行 blkid。它应该
B0ACCB58ACCB17AC
在其中一个分区上显示您,并且您应该能够推断出新驱动器上的哪个分区与该分区相对应。这是一个不精确的科学,但是很难给出精确的指令,而不在屏幕上看到它。再次重新启动并在 grub 菜单中按
e
“Ubuntu”行。替换B0ACCB58ACCB17AC
为每次出现的值,然后按F10
继续引导。但是启动会失败,因为您使用了 wubiuefi 并且需要挂载您的 Windows 磁盘来加载您的 linux 磁盘。在
Ctrl-Alt-F2
终端中,您应该会看到按 Enter 进入恢复会话的提示。去做吧。编辑/etc/fstab
并替换62A5-4B98
为您找到的新值。保存,重新启动,再次执行相同的替换顺序,B0ACCB58ACCB17AC
现在您应该终于可以启动到 linux 了。登录后,编辑
/boot/grub/grub.cfg
并查找/替换所有B0ACCB58ACCB17AC
和所有62A5-4B98
新值。保存并运行update-grub
。现在您应该可以通过 grub 菜单登录到 Windows 或 Linux。