从 18.04 更新到 20.04 期间重新启动后 Ubuntu 无法启动

Sar*_*rli 10 updates boot dual-boot kernel 20.04

我今天遇到了这个问题。我试图将我的 Ubuntu 从 18.04 更新到 20.04,在安装更新期间,我的笔记本电脑试图重新启动。我有一台带有 Windows 和 Ubuntu 的双启动计算机。然后,在重新启动时,我的屏幕开始变亮,然后一次又一次地变黑。然后我尝试转到启动菜单上的高级 Ubuntu 设置并选择出现的第一个内核。但是后来它向我显示了下面的消息,我无法添加,因为图像尺寸太大,抱歉。但是有写

- - -[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]- - -
Run Code Online (Sandbox Code Playgroud)

如果可以,请你帮助我。提前致谢。

小智 7

从 19.10 升级时遇到了同样的问题。我仍在修复它,但我已经设法解决了你的问题。

尝试在较旧的内核(即 5.4 之前)上以高级模式引导。

当高级屏幕出现时,使用 root shell 并执行以下命令:

dpkg -l | grep linux-image
Run Code Online (Sandbox Code Playgroud)

找出最后一个包裹行首的状态。状态ii意味着安装正确,但我的是it,这意味着一些触发器正在等待。我跑了

dpkg --triggers-only linux-image-5.4.0-29-generic
Run Code Online (Sandbox Code Playgroud)

并让系统解除阻塞(替换显示的包名称it)。

然后跑去apt autoremove清理包和内核。

从那时起,您reboot可能可以继续升级。

  • 我跟着`dpkg --configure -a`和`reboot`,我有一个可以工作的GUI - 是的!有几十个 `iU` 状态,并将它们固定为 `ii`。如果没有您的回答,我不会注意到它们,并且我无法克服白色的“出现问题 - 注销”GUI 错误。此外,这是一个非常干净的解决方案。 (2认同)

小智 6

我有同样的问题...

更新过程不会生成正确的 initrd.img。为了解决这个问题,我启动了一个较旧的内核,然后做了一个

sudo update-initramfs -u -k 5.4.0-26-generic (用你的版本替换它)

sudo update-grub

然后重启。我的系统现在启动正常。


Bli*_*gle 5

以下是我从 19.10 开始修复失败更新时必须遵循的步骤。它混合了Jogi 的回答、grimmlink 的回答和kubanczyk 的评论。

步骤 1
重新启动(重新启动)您的机器进入恢复模式:

您将需要按住left shift和/或缓慢重复按下esc; 如果您esc向太多密钥发送垃圾邮件,您最终会进入 grub 外壳。应该会出现一个带有选项列表的黑屏。选择一Advanced options开始就有的。出现一个新列表。现在选择recovery末尾有的旧内核选项。

如果5.4.0-29在列表中并且是最新(最高)数字,请选择低于它的恢复选项。我使用了类似的东西linux-image-5.3.#.# (recovery)

步骤 2
加载完所有内容后,放入根 shell。这是root选项列表中的选项。如果您的屏幕有一堆难以看到的伪像,请选择根选项,然后按ctrl + d取消该选择,这应该会清除屏幕并使其再次可见。

一旦进入 root shell,您可以花时间从磁盘复制数据,以防在升级失败之前您没有这样做;您将需要查找有关如何执行此操作的另一篇文章。

现在运行以下命令以查看升级安装状态:

dpkg -l | grep linux-image
Run Code Online (Sandbox Code Playgroud)

如果最高内核版本旁边的行的开头是,ii这意味着安装成功,您可能只需要转到第 3 步。iU意味着文件存在且已解压,但未正确安装。iT意味着安装被未运行的触发器阻止。相应地进行:

第 2 步:iU状态
您需要使用以下命令重新安装失败的映像。归功于乔吉。

sudo update-initramfs -u -k 5.4.0-26-generic # <--- replace with your version!
sudo update-grub
reboot
Run Code Online (Sandbox Code Playgroud)

第 2 步:iT状态
您需要手动运行更新触发器。信用grimmlink。

dpkg --triggers-only linux-image-5.4.0-29-generic # <--- replace with your version!
reboot
Run Code Online (Sandbox Code Playgroud)

第 3 步
此时您应该能够启动到 Ubuntu。如果像我一样 GUI 仍然损坏,但从技术上讲,您可以看到登录屏幕/登录到您的系统,您需要执行以下操作:

返回恢复模式并再次进入 root shell。注意:您现在可能可以使用最新的内核版本而不是旧版本;我用的是旧的。运行这些命令。部分归功于 kubanczyk。

dpkg --configure -a
apt --fix-broken install
reboot
Run Code Online (Sandbox Code Playgroud)

您现在应该有一个可以正常工作的 Ubuntu 20。如果不是其他问题,或者某些内容没有像预期的那样更新。

故障排除 故障排除时
要记住的关键命令如下。注意:我将 sudo Jogi 添加到命令中,但您的根已经添加,因此它们很可能是不必要的:

sudo update-initramfs -u -k 5.4.0-26-generic # <--- replace with your version!
sudo update-grub
dpkg --configure -a
apt --fix-broken install
Run Code Online (Sandbox Code Playgroud)