如何修复 dpkg 错误 [2]?

Rol*_*Xor 14 apt dpkg

每次尝试安装或删除软件包时,都会出现此错误。我想可能是硬盘问题,但磁盘检查给了我一份健康证明。

dpkg: unrecoverable fatal error, aborting:
reading files list for package 'linux-headers-3.16.0-31': Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)
A package failed to install.  Trying to recover:
Run Code Online (Sandbox Code Playgroud)

我尝试了从 dpkg 状态文件中删除此文件列表的解决方案,但无济于事。我尝试清除包裹但没有用。我被困在这一点上,因为我在谷歌上找不到任何帮助。

更新:

这就是错误所说的:

dpkg: unrecoverable fatal error, aborting:
E: Sub-process /usr/bin/dpkg returned an error code (2)
A package failed to install.  Trying to recover:
Run Code Online (Sandbox Code Playgroud)

尝试后:https : //askubuntu.com/a/603305/1992

更新2:

似乎驱动器有坏扇区,但重新分配的扇区数为 0。但是驱动器相对较旧,所以我预计会出现一些问题。我将无法立即更换它,在那之前我仍然希望能够使系统保持最新状态(尤其是出于安全原因)。

我注意到处理与错误中提到的包相关的一些 md5 校验和存在问题,但我不知道如何处理这些,例如清除它们是否会允许 dpkg 继续。

Rol*_*Xor 22

我在这里这里找到了答案。

令我困惑的是,我之前尝试过两次,但没有奏效。这次它可能有效,因为我使用了在启动板答案中找到的脚本,该脚本可以备份和恢复它所能做的......我不知道。无论哪种方式,这里是修复:

  • pkexec gedit /var/lib/dpkg/status
  • 按名称搜索有问题的包并删除其条目。
  • 保存文件并退出 gedit。
  • sudo dpkg --configure -a
  • 运行sudo apt-get -f install以防万一。
  • 如果没有错误,继续。