Я обновился с 9.04 до 10.10 пару дней назад, и вещи действительно запутались - X постоянно падает.
С тех пор у меня возникла ошибка приложения segfault без причины, когда я отлаживал, я обнаружил, что именно strlen()
вызывал ошибку segf (указывая на проблему с libc)! В результате расследования я обнаружил, что это потому, что у меня установлена неверная версия gcc и binutils в / usr / bin / local; Я удалил его, перекомпилировал приложение, и оно больше не зависало.
Теперь, глядя на мои журналы, я вижу, что X также падает из-за libc.
Backtrace:
0: /usr/bin/X11/X (xorg_backtrace+0x3b) [0x80ef31b]
1: /usr/bin/X11/X (0x8048000+0x5d00d) [0x80a500d]
2: (vdso) (__kernel_rt_sigreturn+0x0) [0xb77e240c]
3: /usr/bin/X11/X (0x8048000+0xbb0b6) [0x81030b6]
4: /usr/bin/X11/X (0x8048000+0xbc3ef) [0x81043ef]
5: /usr/bin/X11/X (0x8048000+0x26ee7) [0x806eee7]
6: /usr/bin/X11/X (0x8048000+0x1a5da) [0x80625da]
7: /lib/libc.so.6 (__libc_start_main+0xe7) [0xb750ace7]
8: /usr/bin/X11/X (0x8048000+0x1a1b1) [0x80621b1]
Segmentation fault at address 0x32156654
Caught signal 11 (Segmentation fault). Server aborting
Итак, как я могу оправиться от этого?
Удалите плохой libc из / usr / local. На самом деле, вы можете просто избавиться от всего в /usr/local.
На этом этапе я хотел бы спасти как можно больше файлов (например, /home
, /etc
и части /var
) и выполнить чистую установку с проверенного компакт-диска (т.е. проверить контрольную сумму md5 загруженного ISO).
Вам также может потребоваться выгрузить список пакетов, которые уже установлены, используя что-то вроде этого:
aptitude search -F "%p" "?installed ?not(?automatic)" > ~/package-list
Как только вы попали в чистую систему, вы можете вернуть свои старые вещи, настройки и приложения.
Если происходит то же самое, запустите memtest (должен быть опцией при загрузке, если вы держите левую клавишу Shift) и fsck с LiveCD.