我遇到了一个问题,它不允许我执行与 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
(发现了很多问题)并最终让我重新安装有问题的包。