如何修复 sudo apt upgrade 后的启动问题

如何修复 sudo apt upgrade 后的启动问题

我一直在笔记本电脑上工作,硬盘停止工作后,我在外部 3TB HDD 驱动器上安装了 Ubuntu 22.04。该驱动器有大约 500GB 的数据,我无法移动它。我制作了自定义分区并安装好了所有内容。分区如下:

/dev/sda1- efi,启动分区

/dev/sda2- NTFS 包含先前的数据

/dev/sda3- 交换区域

/dev/sda4- 根分区

/dev/sda5- 家庭分区

在安装过程中,在选择安装引导加载程序的设备下拉菜单中,选择/dev/sda会导致操作系统崩溃,但重新安装并选择后/dev/sda1一切正常。

操作系统运行良好,直到我运行 sudo apt upgrade时才注意到一些有关更新的输出initramfs(如图所示)

升级日志 1

升级日志2

升级日志 3

由于无法进入系统,我无法将日志粘贴为文本。一切正常,我甚至使用了笔记本电脑超过 10 个小时。我关闭笔记本电脑,然后启动它,单击 Ubuntu 并获取

error: attempt to read or write outside of disk `hd0`.
error: you need to load the kernel first.
Press any key to continue...

恢复模式不起作用,尝试从 grub 菜单加载内核会出现相同的读取或写入错误。这是当我使用在 /boot/ 中找到的所有版本的 vmlinuz 时出现的情况。只有

linux /boot/vmlinuz.old

不会出现该错误。Vmlinuz、vmlinuz-6.2.0-26-generic 和 vmlinuz-6.5.0-28-generic 均出现错误。当我在 initrd /boot/initrd.img成功执行 vmlinuz.old 命令后尝试运行时,我得到了相同的读取或写入错误。

我该如何解决这个问题?由于许多挑战,我目前无法访问实时 CD/USB,因此任何不需要帮助的帮助都将非常有帮助。

答案1

你能附上一张完整启动信息的图片吗?可能会出现 grub 救援提示。grub 菜单会出现吗?如果是,请在菜单出现时单击 e。如果出现终端提示,请按照以下步骤操作:

  1. 运行ls,输出应如下所示:
grub > ls
(hd0) (hd0, msdos9)
  1. 运行ls [(location without spaces)],如下所示:
grub > ls (hd0,msdos9)/
grub > ls (hd0,msdos8)/
grub > ls (hd0,msdos5)/ # Lets say this is the root location
grub > ls (hd0,msdos5)/
  1. 将 root 设置为你的根分区:
grub > set root=(hd0,msdos5)
grub > set prefix=(hd0,msdos5)/boot/grub
grub > insmod normal
grub > normal
  1. 设置 grub 和内核:
sudo update-grub
sudo grub-install  /dev/sda # If the drive is hd0 the equivalent is sda, if it's hd1 then use sdb
apt-cache search linux-image
sudo apt install linux-image-your_version_choice linux-headers-your_version_choice linux-modules-extra-your_version_choice

注:灵感来自这个帖子,请查看此帖子寻求帮助。如果您可以启动 grub,我不知道在没有外部可启动设备的情况下是否可行。用您的路径替换:

/dev/sda1 - efi, boot partition

/dev/sda2 - NTFS with previous data

/dev/sda3 - Swap area

/dev/sda4 - root partition

/dev/sda5 - home partition

相关内容