update-initramfs 卡住了

update-initramfs 卡住了

今天我想在 Ubuntu 12.10 中安装 virtualbox (4.2),然后进入软件中心。单击 USC 中的“安装”按钮后,virtualbox 正在下载并安装。我等了五分钟多,但什么也没发生,进度条也没有变化。等待大约一个小时后,我关闭了 USC 并重新启动了 PC。

现在我遇到的问题是,每当我想要通过安装软件时sudo apt-get install <software>都会出现以下错误:

quantal@Flubuntu:~$ sudo apt-get install <whatever-package>
E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

在终端(sudo killall dpkg)中终止 dpkg 或重新启动后,出现以下错误:

quantal@Flubuntu:~$ sudo apt-get install <whatever-package>
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct

当我尝试执行sudo dpkg --configure -a该命令时,它挂起了

update-initramfs: Generating /boot/initrd.img-3.5.0-25-generic

当我sudo update-initramfs -k all -u -v以详细模式启动时,它说添加了许多模块、二进制文件和固件(我没有将其包含在输出中),但是在以下六行之后卡住了:

Adding binary /lib/firmware/radeon/TAHITI_me.bin
Adding firmware radeon/TAHITI_me.bin
Adding binary /lib/firmware/radeon/TAHITI_pfp.bin
Adding firmware radeon/TAHITI_pfp.bin
Adding module /lib/modules/3.5.0-23-generic/kernel/drivers/gpu/drm/i2c/sil164.ko
Adding module /lib/modules/3.5.0-23-generic/kernel/drivers/gpu/drm/i2c/ch7006.ko

将 ch7006 或之前的模块列入黑名单不起作用;我也尝试手动重命名 ch7006.ko 和 sil164.ko(在检查系统不需要它之后)但它卡在了之前的那行。

提前谢谢了!

更多信息:

注意:启动 Ubuntu 时没有出现任何错误,因此内核可以启动但是无法更新它(并且只要存在此问题,apt-get install 就不会安装软件)。

输出uname -a

Linux Flubuntu 3.5.0-23-generic #35-Ubuntu SMP Thu Jan 24 13:15:40 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

答案1

今天我也遇到了这个错误,删除然后重新安装 initramfs-tools 解决了我遇到的挂起问题。

sudo apt remove initramfs-tools
sudo apt install initramfs-tools

就我而言,可能是某些配置或 initramfs-tools 的临时文件已损坏/锁定。

这是在 Ubuntu 18.04 上发生的,所以仍然有可能发生。

答案2

好的,我找到了解决此错误的解决方法。

  1. 执行完问题中的步骤后,我尝试使用以下命令删除内核:

    sudo update-initramfs -k 3.5.0-23-generic -d
    
  2. 重启后,GRUB 出现并选择了我的 Ubuntu 版本,但当它尝试加载内核时,它说

    内核崩溃 - 未同步:VFS:无法在未知块 (0,0) 上挂载根文件系统

  3. 然后我就chroot使用 LiveCD 进入 Ubuntu 并执行:

    sudo dpkg --configure -a
    sudo apt-get install linux-image-3.5.0-25-generic
    

    重启后一切正常。

答案3

第 2 步slashcrack 的听起来很没必要。相反,运行

sudo update-initramfs -d -k <VERSION>
sudo apt-get install -f

其中,您可以<VERSION>用受影响的内核版本字符串替换(此处3.5.0-23-generic:)。

答案4

于是我找到了自己在 update-initramfs 上会卡住的一个主要原因。

有问题的 USB 驱动器。如果 USB 驱动器已连接但处于卡住状态,它就会挂起。如果 USB 设备被(物理)移除,系统就会意识到这一点,并且挂在其上的任何内容都会解除挂起并继续。

实际上,我真的认为无论它在做什么(os-prober 或其他东西)都应该足够智能,可以跳过可移动磁盘,除非特别配置为不这样做(例如:如果将 ubuntu 安装到可移动磁盘上,那么它会将扫描可移动媒体标记为 true,如果安装到固定磁盘,则不会,尽管在这两种情况下都可以修改以改变行为。但这更像是一个错误修复,实际修复(对我来说)在上面。

相关内容