安装 Windows VM 后出现启动/Grub 问题

安装 Windows VM 后出现启动/Grub 问题

虽然我已经使用 Ubuntu 有一段时间了,但现在我面临的一个超出我的经验/能力解决的问题。

几天前,我安装了一台装有 Windows 的虚拟机,几天来一切都运行良好。现在,我不知道这是否有关,我不小心按了 Crtl + Alt + F12,从那时起我就无法再启动了。我自动定向到 GRUB 终端(grub> 而不是 grub rescue>)。

我检查的第一件事就是检查分区,然后输入 ls 只会返回

(hd0) (hd0,msdos3) (hd0,msdos2) (hd1) (hd1,gpt2) (hd1,gpt1) error: Failure reading sector 0x100800 from 'hd1'. 

然后我开始了似乎很平常的第一件事。我从 Ubuntu(20.04,与安装的操作系统相同)实时 USB 启动并安装了启动修复。然而,Boot-Repair 没有向我显示建议修复选项。

这是由 Boot-Repair 创建的 Boot-Info 摘要的链接。

https://paste.ubuntu.com/p/tzt576SVdX/

如果我按照说明通过终端重新安装 grub,则 sudo fdisk -l 返回

Device     Boot   Start       End   Sectors  Size Id Type
/dev/sdb1  *          0   6599743   6599744  3.2G  0 Empty
/dev/sdb2       5930192   5938191      8000  3.9M ef EFI (FAT-12/16/32)
/dev/sdb3       6602752 120176639 113573888 54.2G 83 Linux

并 sudo blkid

/dev/nvme0n1p1: UUID="72AA-EE87" TYPE="vfat" PARTLABEL="EFI System Partition"  

PARTUUID="4bc4e648-1726-4230-8bf7-6f4862ec62ae"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/sdb1: UUID="2022-02-23-09-09-33-00" LABEL="Ubuntu 20.04.4 LTS amd64" TYPE="iso9660" PTUUID="1693364d" PTTYPE="dos" PARTUUID="1693364d-01"
/dev/sdb2: SEC_TYPE="msdos" UUID="54C5-9C6C" TYPE="vfat" PARTUUID="1693364d-02"
/dev/sdb3: LABEL="writable" UUID="7cb33c86-ce17-4b2a-a8f8-e3b509f91879" TYPE="ext4" PARTUUID="1693364d-03"

从这里我看到我的 Ubuntu 在 sdb3 上。所以我在 sudo mount /dev/sdb3 /mnt 中安装它并运行 sudo grub-install --boot-directory=/mnt/boot /dev/sdb 并收到错误消息

Installing for i386-pc platform.
grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels.  This is not supported yet..
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.

正如评论的那样,当我尝试使用 gparted 调整 sdb2 分区的大小时,我得到了

ubuntu@ubuntu:~$ sudo gparted
Unit boot.mount does not exist, proceeding anyway.
GParted 1.0.0
configuration --enable-libparted-dmraid --enable-online-resize
libparted 3.3
Input/output error during read on /dev/nvme0n1

现在最令人担忧的是,因为我本来计划很快重置我的操作系统,无论如何,我认为我可以通过实时 USB 快速访问我尚未备份的数据,保存它,这样就没问题了。所以我在分区中安装,现在 ls 只返回根目录和 lost+found 目录,没有其他内容。

如果您能提供任何帮助/建议,我将不胜感激。如果您需要更多信息,请告诉我,以便我为您提供。

谢谢你们。

祝愿,大卫

答案1

我认为您的 sdb2 EFI 分区的大小太小(3.9M),无法将 grub 安装在那里...尝试使用 gparted 将其大小调整为至少 100~200MB,然后重试 grub 安装。

编辑:尝试安装并与实时 USB 一起使用...https://help.ubuntu.com/community/Boot-Repair

相关内容