虽然我已经使用 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