排除法

排除法

有人可以解释一下为什么在内核更新后调用 initramfs 时全新安装的 AMD64 VM 无法更新。

全新安装后我做了

sudo apt get dist-upgrade

initramfs 挂起,不显示任何错误消息,并且内核显示进程超时消息。

这是 Xenial Xerus LTS 和 Artful Aardvark 版本共同推出的。

我有一块 Intel Ivy Bridge CPU,配备 32GB RAM 和 256GB 虚拟硬盘。

如果 initramfs 没有加入,我该如何更新我的虚拟机?

它破坏了 dpkg 和 apt。

我已经受够了。

这是 Ubuntu、initramfs 还是 Virtualbox 的错误?

这真的很烦人,因为 initramfs 没有显示任何错误消息。

有谁知道如何修理它?

我在 Windows 10 Pro AMD64 主机上运行 VirtualBox。

答案1

排除法

我们将逐一研究您的各种可能性。

update-initramfs 工作正常吗?

发行版升级失败后,你仍然可以重新启动,并且 Grub 将在高级选项子菜单。选择它进行启动。

启动后打开终端并输入:

sudo update-initramfs -u

这将为当前内核生成 initramfs。如果运行正常,则问题已解决。

Ubuntu 是否尝试安装损坏的内核?

使用以下命令查找当前内核版本uname -r

$ uname -r
4.14.15-041415-generic

您的内核版本可能是4.4.0...、、4.8.0...4.10.0...4.13.0...

使用以下方法列出已安装的内核:

$ dpkg -l | grep linux-image
ii  linux-image-3.16.53-031653-generic         3.16.53-031653.201801090931                  amd64        Linux kernel image for version 3.16.53 on 64 bit x86 SMP
ii  linux-image-4.10.0-28-generic              4.10.0-28.32~16.04.2                         amd64        Linux kernel image for version 4.10.0 on 64 bit x86 SMP
ii  linux-image-4.10.0-37-generic              4.10.0-37.41~16.04.1                         amd64        Linux kernel image for version 4.10.0 on 64 bit x86 SMP
ii  linux-image-4.10.0-38-generic              4.10.0-38.42~16.04.1                         amd64        Linux kernel image for version 4.10.0 on 64 bit x86 SMP
ii  linux-image-4.10.0-40-generic              4.10.0-40.44~16.04.1                         amd64        Linux kernel image for version 4.10.0 on 64 bit x86 SMP
ii  linux-image-4.10.0-42-generic              4.10.0-42.46~16.04.1                         amd64        Linux kernel image for version 4.10.0 on 64 bit x86 SMP
ii  linux-image-4.13.9-041309-generic          4.13.9-041309.201710211231                   amd64        Linux kernel image for version 4.13.9 on 64 bit x86 SMP
ii  linux-image-4.14.10-041410-generic         4.14.10-041410.201712291810                  amd64        Linux kernel image for version 4.14.10 on 64 bit x86 SMP
ii  linux-image-4.14.11-041411-generic         4.14.11-041411.201801022143                  amd64        Linux kernel image for version 4.14.11 on 64 bit x86 SMP
ii  linux-image-4.14.12-041412-generic         4.14.12-041412.201801051649                  amd64        Linux kernel image for version 4.14.12 on 64 bit x86 SMP
ii  linux-image-4.14.13-041413-generic         4.14.13-041413.201801101001                  amd64        Linux kernel image for version 4.14.13 on 64 bit x86 SMP
ii  linux-image-4.14.14-041414-generic         4.14.14-041414.201801201219                  amd64        Linux kernel image for version 4.14.14 on 64 bit x86 SMP
ii  linux-image-4.14.15-041415-generic         4.14.15-041415.201801231530                  amd64        Linux kernel image for version 4.14.15 on 64 bit x86 SMP
ii  linux-image-4.14.2-041402-generic          4.14.2-041402.201711240330                   amd64        Linux kernel image for version 4.14.2 on 64 bit x86 SMP
ii  linux-image-4.14.4-041404-generic          4.14.4-041404.201712050630                   amd64        Linux kernel image for version 4.14.4 on 64 bit x86 SMP
ii  linux-image-4.4.0-101-generic              4.4.0-101.124                                amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-103-generic              4.4.0-103.126                                amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-104-generic              4.4.0-104.127                                amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-98-generic               4.4.0-98.121                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.9.76-040976-generic          4.9.76-040976.201801100432                   amd64        Linux kernel image for version 4.9.76 on 64 bit x86 SMP
ii  linux-image-4.9.77-040977-generic          4.9.77-040977.201801170430                   amd64        Linux kernel image for version 4.9.77 on 64 bit x86 SMP
ii  linux-image-extra-4.10.0-28-generic        4.10.0-28.32~16.04.2                         amd64        Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
ii  linux-image-extra-4.10.0-37-generic        4.10.0-37.41~16.04.1                         amd64        Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
ii  linux-image-extra-4.10.0-38-generic        4.10.0-38.42~16.04.1                         amd64        Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
ii  linux-image-extra-4.10.0-40-generic        4.10.0-40.44~16.04.1                         amd64        Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
ii  linux-image-extra-4.10.0-42-generic        4.10.0-42.46~16.04.1                         amd64        Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-101-generic        4.4.0-101.124                                amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-103-generic        4.4.0-103.126                                amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-104-generic        4.4.0-104.127                                amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-98-generic         4.4.0-98.121                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-generic                        4.4.0.104.109                                amd64        Generic Linux kernel image
ii  linux-image-generic-hwe-16.04              4.10.0.42.44                                 amd64        Generic Linux kernel image

在全新安装中,您将只有一个内核版本。无论哪个版本,我们都会将其标记为已保留,以便下一次更新不会下载较新的内核并尝试initramfs在其上生成新内核。使用以下命令执行此操作:

sudo apt-mark hold linux-image-4.14.15-041415-generic

uname -r记得用之前的结果修改 4.14.15-041415-generic

注意我们如何利用结果uname -r在 apt 中查找完整内核名称。

现在运行:

sudo apt update
sudo apt upgrade

这次有什么东西坏了吗?

你的 Virtual Box 安装成功了吗?

这部分我留给你。如果它运行正常,你就会知道是升级了其他尝试中出现问题的内核。如果它运行不正常,那么你就知道这是 Virtual Box 的问题,这就是需要关注的地方。例如,一些虚拟机需要较新的版本才能与 4.13 内核配合使用。

要恢复常规内核更新,您必须使用以下命令取消固定您所持有的软件包:

sudo apt-mark unhold linux-image-4.14.15-041415-generic

uname -r记得用之前的结果修改 4.14.15-041415-generic

Virtual Box 无法运行内核 4.13.0-26

我发现这个问答太晚了:virtualbox 在内核 4.13.0-26 上崩溃

您需要从 VirtualBox 页面下载它或将源添加到您的/etc/apt/sources.list

deb http://download.virtualbox.org/virtualbox/debian xenial contrib

如果您使用的 Ubuntu 版本非 16.04,请使用适当的名称代替xenial

添加 Oracle 公钥:

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -

更新存储库并安装 virtualbox-5.2:

sudo apt-get update
sudo apt-get install virtualbox-5.2

在我的其中一台笔记本电脑上,在我删除 virutalbox-dkms 之前,VM 不想启动:

sudo apt-get remove virtualbox-dkms

相关内容