有人可以解释一下为什么在内核更新后调用 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