美好的一天!
当试图恢复一个箱子lenny似乎我已经破了东西。 它在dpkg似乎被破坏之后升级了libc和glib 。
我可以运行apt-get ,但是从dpkg中得到分段错误:
# apt-get -f install Reading package lists... Done Building dependency tree... Done 0 upgraded, 0 newly installed, 0 to remove and 316 not upgraded. 9 not fully installed or removed. Need to get 0B of archives. After unpacking 0B of additional disk space will be used. /bin/sh: line 1: 4606 Segmentation fault /usr/sbin/dpkg-preconfigure --apt E: Sub-process /usr/bin/dpkg received a segmentation fault.
我可以通过SSHlogin,但即使LS不工作:
# ls Segmentation fault
有什么我可以通过SSH remotelly?
# ldd /bin/ls linux-gate.so.1 => (0xffffe000) librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7fc8000) libacl.so.1 => /lib/libacl.so.1 (0xb7fc2000) libselinux.so.1 => /lib/libselinux.so.1 (0xb7fac000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7e51000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7e3f000) /lib/ld-linux.so.2 (0xb7fd8000) libattr.so.1 => /lib/libattr.so.1 (0xb7e3b000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7e37000) libsepol.so.1 => /lib/libsepol.so.1 (0xb7df6000)
看来我已经暂时修正了它 :
# touch /etc/ld.so.nohwcap
从这里: http : //saintaardvarkthecarpeted.com/blog/archive/2005/08/_etc_ld_so_nohwcap.html
我认为你应该通过ulimit -c unlimited启用核心文件转储,然后运行失败的程序来获得核心转储。 如果你运气好,安装了gdb ,而不是segfaulting,你可以用gdb -c core.pid来分析coredump。 它会告诉你至less一个失败的指令地址,所以你将能够从该地址猜测失败的lib。 如果未安装gdb ,请尝试将coredump scp到其他主机。 下一步可能是用scpreplace一些其他主机的其他版本的失败的lib。