dpkg --configure -a 在找到 initrd 映像时挂起

dpkg --configure -a 在找到 initrd 映像时挂起

我有一个带有 GitLab 的 Ubuntu 14.04 LTS“桌面”。该系统在 Windows Server 2012 R2 上的虚拟机中运行。

机器每天自动更新“重要安全更新”、“推荐更新”和“不支持的更新”。不更新“预发布更新”。

今天我登录了系统,运行“sudo apt-get update”,但由于某些进程正在使用 dpkg,因此无法完成。

我已经运行“sudo apt-get upgrade”并且它已更新但挂在:

Found linux image: /boot/vmlinuz-3.19.0-39-generic
Found initrd image: /boot/initrd.img.3.19.0-39-generic
Found linux image: /boot/vmlinuz-3.19.0-37-generic
Found initrd image: /boot/initrd.img.3.19.0-37-generic
Found linux image: /boot/vmlinuz-3.19.0-33-generic
Found initrd image: /boot/initrd.img.3.19.0-33-generic
Found linux image: /boot/vmlinuz-3.19.0-32-generic
Found initrd image: /boot/initrd.img.3.19.0-32-generic
Found linux image: /boot/vmlinuz-3.19.0-31-generic
Found initrd image: /boot/initrd.img.3.19.0-31-generic

我重新启动并再次在同一点挂起“sudo apt-get upgrade”。

然后我尝试清理未使用的内核。我运行了:

uname -r

并得到:

3.19.0-39-generic

因此我删除了 3.19.0-31、3.19.0-32 和 3.19.0-33:

sudo rm /boot/initrd.img.3.19.0-31-generic
sudo rm /boot/initrd.img.3.19.0-32-generic
sudo rm /boot/initrd.img.3.19.0-33-generic
sudo rm /boot/vmlinuz-3.19.0-31-generic
sudo rm /boot/vmlinuz-3.19.0-32-generic
sudo rm /boot/vmlinuz-3.19.0-33-generic

然后,我尝试清除:

sudo apt-get purge linux-image-3.19.0-31-generic linux-image-3.19.0-32-generic linux-image-3.19.0-33-generic

但进程也挂了。
然后,我可以“更新”,但“升级”失败,如下所示:

Found linux image: /boot/vmlinuz-3.19.0-39-generic
Found initrd image: /boot/initrd.img.3.19.0-39-generic
Found linux image: /boot/vmlinuz-3.19.0-37-generic
Found initrd image: /boot/initrd.img.3.19.0-37-generic

在某些更新/升级中,它建议我运行dpkg --configure -a但它也在上述同一点失败了。

另外,当我重新启动时,系统会卡在“点屏幕”上。我必须“关闭”虚拟机并重新启动才能进入。

经过多次重启后apt-get update,我不知道该怎么办,但是apt-get upgradedpkg --configure -a一切又恢复正常

现在我再次遇到同样的问题:

  1. 当我运行时apt-get updateapt-get upgrade我得到:

    E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
    
  2. 当我运行时sudo dpkg --configure -a它在以下之后挂起:

    Found linux image: /boot/vmlinuz-3.19.0-42-generic
    Found initrd image: /boot/initrd.img-3.19.0-42-generic
    Found linux image: /boot/vmlinuz-3.19.0-39-generic
    Found initrd image: /boot/initrd.img-3.19.0-39-generic
    
  3. 当我重新启动时,系统也会挂在“点屏幕”

我对 Linux 还不是很了解。有人能帮我解释一下吗?

答案1

暂时修复!

经过多次重启和多次尝试apt-get updateapt-get upgradeapt-get dist-upgrade之后dpkg --configure -a,最后一个命令终于成功结束,其余命令也开始成功运行。

在此过程中更新至3.19.0-42-generic内核。

所以我不确定究竟是什么原因导致了它,也不确定究竟是什么解决了它,但无论如何...:)

答案2

看起来在某个时候你升级了内核但并没有完全升级,我需要通过运行以下命令来确保内核正确:

sudo apt-get dist-upgrade

然后更新升级:

sudo apt-get update && sudo apt-get upgrade

接下来,你可以运行以下命令检查所有包是否正确

sudo apt-get -f install

答案3

我遇到过两次类似的问题,而且我注意到每次我的系统想要升级到新内核时都会发生这种情况。以下步骤似乎对我始终有效;

  1. 启动到最新内核版本的恢复模式。
  2. 从下拉菜单中以 root 身份登录系统。
  3. 使用文本编辑器编辑 /etc/resolv.conf 文件,我通常使用 vi,即 vi /etc/resolv.conf 并输入以下内容并保存文件;

名称服务器 208.67.222.220

名称服务器 208.67.222.222

  1. 完成上述步骤后,按 Ctrl+D(退出)返回恢复模式菜单,然后单击网络以启用网络/互联网连接。
  2. 接下来点击 dpkg 项来修复损坏的软件包。

就是这样,重启后您的系统应该安装正确的内核并修复/删除损坏的软件包。

答案4

那只是为了解析IP地址映射而配置一个DNS服务器而已。

你甚至可以使用公共谷歌服务器

8.8.8.8 和 8.8.4.4

相关内容