无法使用 apt-get/dpkg——输入/输出错误

无法使用 apt-get/dpkg——输入/输出错误

我遇到了一个问题,它不允许我执行与 apt-get 相关的任何操作:安装、删除等。每当我尝试执行某些操作(例如sudo apt-get install firefox -f)时,它都会给我相同的错误消息:

Reading database ... dpkg: unrecoverable fatal error, aborting:
 unable to open files list file for package `fontconfig-config': Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)

我曾尝试处理该包裹,fontconfig-config但没有成功。

我发现“输入/输出错误”通常与硬盘的物理问题有关,但我不认为情况如此,因为我使用该硬盘时没有出现任何其他问题。

我尝试删除了对包裹的/var/lib/dpkg/status提及这里

我尝试删除在/var/lib/dpkg/info某处发现的与该包相关的所有文件。

但我仍然无能为力。当我查找导致我遇到麻烦的文件时,有趣的事情发生了:

mecho@Ansible-MS-7680:/var/lib/dpkg/info$ ls fontconfig*
ls: cannot access fontconfig-config.list: Input/output error
fontconfig.list     fontconfig.postinst  fontconfig.preinst  fontconfig.triggers
fontconfig.md5sums  fontconfig.postrm    fontconfig.prerm

这是在我删除所有文件后完成的...它看起来fontconfig-config.list仍然存在,但没有显示!

关于如何解决这个问题您有什么想法吗?

我在 kubuntu precise 上,fontconfig-config_2.8.0-3ubuntu9.1


我没有安装 smartmontools,也没有安装任何其他可用于检查硬盘的程序。我似乎拥有的最相似的软件是 KDE Partition Manager,但它不允许我检查任何内容(该选项似乎不可用)。但是,我认为问题不在于硬盘。

您建议我如何进行 fs 检查?fcheck未安装,并且我想不出 bash 中的任何其他命令(因为我认为我没有安装其他可以执行检查的命令)。

谢谢。

编辑:我找到了命令(我真傻)fsck。这是我得到的:

/dev/sda1: recovering journal
Clearing orphaned inode 4456702 (uid=1000, gid=1000, mode=0140775, size=0)
Clearing orphaned inode 4456700 (uid=1000, gid=1000, mode=0140775, size=0)
Clearing orphaned inode 4456699 (uid=1000, gid=1000, mode=0140775, size=0)
Clearing orphaned inode 4456697 (uid=1000, gid=1000, mode=0140775, size=0)
Clearing orphaned inode 4456694 (uid=1000, gid=1000, mode=0140775, size=0)
Clearing orphaned inode 4456693 (uid=1000, gid=1000, mode=0140775, size=0)
Clearing orphaned inode 4456688 (uid=1000, gid=1000, mode=0140775, size=0)
Clearing orphaned inode 4456481 (uid=1000, gid=1000, mode=0140775, size=0)
Clearing orphaned inode 4456692 (uid=0, gid=0, mode=0100600, size=65536)
Clearing orphaned inode 4456689 (uid=1000, gid=1000, mode=0140775, size=0)
Clearing orphaned inode 4456709 (uid=1000, gid=1000, mode=0100600, size=714046)
Clearing orphaned inode 4456469 (uid=1000, gid=1000, mode=0140775, size=0)
Clearing orphaned inode 3672644 (uid=0, gid=0, mode=0100644, size=1595)
Clearing orphaned inode 1324021 (uid=0, gid=0, mode=0100640, size=1980)
Clearing orphaned inode 1324014 (uid=0, gid=0, mode=0100640, size=126)
Clearing orphaned inode 4456499 (uid=1000, gid=1000, mode=0100600, size=0)
Clearing orphaned inode 4456483 (uid=1000, gid=1000, mode=0100600, size=65536)
Setting free inodes count to 7147142 (was 7147702)
Setting free blocks count to 23891195 (was 23781617)
/dev/sda1: clean, 151930/7299072 files, 5292549/29183744 blocks

答案1

我会先检查硬盘是否有错误。如果你安装了 smartmontools,请运行

sudo smartctl -d ata -a /dev/sda

如果这是安装了 Ubuntu 的磁盘,请确保 Reallocated_Sector_Ct 的值为 0。如果它非零,请备份您仍然可以备份的任何内容并更换磁盘。

否则,如果(smartctl 的输出)检查正常(希望如此),我会跟进文件系统检查。

答案2

我运行了第二次fsck -y(发现了很多问题)并最终让我重新安装有问题的包。

相关内容