我有 Ubuntu 11.10。服务器今天停电了。自从电源恢复后,设备只能部分工作。有些服务工作正常,有些服务无法启动,例如
apache2ctl restart
Inconsistency detected by ld.so: ../sysdeps/i386/dl-machine.h: 640: elf_machine_rel_relative: Assertion `((reloc->r_info) & 0xff) == 8' failed!
Action 'restart' failed.
The Apache error log may have more information.
do-dist-upgrade
Segmentation fault
apt-get update
(no output)
检查 dmesg 后,apt-get 也出现段错误。
[ 552.996106] apt-get[1674]: segfault at 6f5104d2 ip b7655c03 sp bfd50ff0 error 6 in libapt-pkg.so.4.11.0[b7618000+117000]
所以我尝试使用强制 fsck
sudo touch /forcefsck
reboot
然后稍后通过
shutdown -rF now
但两者之后我仍然得到
cat /var/log/fsck/check*
(Nothing has been logged yet.)
(Nothing has been logged yet.)
我对下一步要尝试什么有点迷失。我虽然只是重新安装一些可能损坏的软件包,但首先我不知道是哪个,然后我不确定如何(尽管 dpkg 可以工作)。我真的想避免重新安装整个东西。任何建议表示赞赏。
答案1
这些不同的段错误更有可能表明内存或磁盘连接出现问题,而不是文件系统损坏。
您应该首先通过重新启动并从 grub 菜单中选择内存检查器来检查内存,并让它至少运行一次。重新安装内存(切换电源后),如果发现错误,请重试。
如果没有显示错误,我将从 CD 启动并对每个已卸载的分区运行完整的文件系统检查。在此期间,请密切关注日志以查看光盘是否超时:数据可能没问题,但传输可能会出现错误。如果您确实断开并重新连接电缆(关闭电源后)。
答案2
我的最终解决方案是:
通过用从 Internet 下载的副本
apt-get
替换它所说的有错误的实际文件 ( )来修复此问题。libapt-pkg.so.4.11.0
这apt-get
让我大吃一惊。我期待后续错误。现在它
apt-get
已经可以工作了,我可以执行dist-upgrade
并替换系统中的几乎所有软件包。
不过,我不明白它如何损坏磁盘上的文件(没有 fsck 报告错误)。