Через тупую пользовательскую ошибку мне удалось испортить мою установку Ubuntu 16.04 LTS - она загружается на черный экран.
К счастью, файловая система не повреждена, и я могу перейти на консольный сеанс без труда. Я попытался отменить мой урон (изменив последний набор изменений в журнале), и с героической помощью друга нам удалось добраться до графического сеанса, используя рабочий стол xfce4 (который я установил в качестве эксперимента еще в 14.04 дней) .
Я пытаюсь выполнить шаги в этом ответе, чтобы восстановить работоспособность моей системы (я использую Unity), но когда я дойду до «шага 3», sudo debsums -cs, он заглох. Очень быстро я получил некоторые отсутствующие шрифты (я удалил некоторые шрифты Noto - я знаю об этом), а затем процесс звучит спокойно.
Я разрешил ему работать в течение 18 часов в первый раз и не получил новых результаты после первых минут пары. Я закрыл это, снова запустил debsums_init и снова попытался ... с точно таким же результатом. Проверяя top на процессе, он показывает мне следующее:
Итак, должен ли я ожидать, что это debsums -cs завершит свою работу и выйти в подсказку? Или это висит? или он сказал мне все, что он скажет мне, и я должен просто убить его?
Обновление - решается следующая диагностика и предложения от @muru (см. принятый ответ ниже) :
Это выход lsof -p PID:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
debsums 14678 root cwd DIR 8,2 4096 13369346 /home/user
debsums 14678 root rtd DIR 8,2 4096 2 /
debsums 14678 root txt REG 8,2 1907192 8475875 /usr/bin/perl
debsums 14678 root mem REG 8,2 27168 8651816 /usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/File/Glob/Glob.so
debsums 14678 root mem REG 8,2 10368 10493560 /usr/lib/x86_64-linux-gnu/perl5/5.22/auto/File/FnMatch/FnMatch.so
debsums 14678 root mem REG 8,2 14480 9859421 /usr/lib/x86_64-linux-gnu/perl5/5.22/auto/Locale/gettext/gettext.so
debsums 14678 root mem REG 8,2 35328 8654166 /usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/Encode/Encode.so
debsums 14678 root mem REG 8,2 102064 8524369 /usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/POSIX/POSIX.so
debsums 14678 root mem REG 8,2 18704 8658188 /usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/Digest/MD5/MD5.so
debsums 14678 root mem REG 8,2 18768 8654260 /usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/IO/IO.so
debsums 14678 root mem REG 8,2 18696 8524352 /usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/Fcntl/Fcntl.so
debsums 14678 root mem REG 8,2 47696 8658199 /usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/List/Util/Util.so
debsums 14678 root mem REG 8,2 14608 8524357 /usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/Cwd/Cwd.so
debsums 14678 root mem REG 8,2 2981280 8389721 /usr/lib/locale/locale-archive
debsums 14678 root mem REG 8,2 39224 7078564 /lib/x86_64-linux-gnu/libcrypt-2.23.so
debsums 14678 root mem REG 8,2 1864888 7078561 /lib/x86_64-linux-gnu/libc-2.23.so
debsums 14678 root mem REG 8,2 138696 7078570 /lib/x86_64-linux-gnu/libpthread-2.23.so
debsums 14678 root mem REG 8,2 1088952 7078569 /lib/x86_64-linux-gnu/libm-2.23.so
debsums 14678 root mem REG 8,2 14608 7078560 /lib/x86_64-linux-gnu/libdl-2.23.so
debsums 14678 root mem REG 8,2 162632 7078534 /lib/x86_64-linux-gnu/ld-2.23.so
debsums 14678 root mem REG 8,2 1719 9999141 /usr/share/locale-langpack/en_GB/LC_MESSAGES/dpkg-dev.mo
debsums 14678 root 0u CHR 136,0 0t0 3 /dev/pts/0
debsums 14678 root 1u CHR 136,0 0t0 3 /dev/pts/0
debsums 14678 root 2u CHR 136,0 0t0 3 /dev/pts/0
debsums 14678 root 3r REG 8,2 307 2915907 /var/lib/dpkg/info/libfm-extra4:amd64.md5sums
Перед этим предупреждением:
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
Выход watch lsof -p PID статический и не изменился с момента его запуска:
Запуск watch с трубой | tail дает:
То есть, те же последние 10 строк на снимке экрана выше. FWIW, файл libfm-extra4:amd64.md5sums (307 байт) перечисляет этот путь:
-rw-r--r-- 1 root root 307 Jul 12 2016 /var/lib/dpkg/info/libfm-extra4:amd64.md5sums
Вывод sudo strace -p PID дал следующие пять строк бесконечно зацикливания:
readlink("/usr/share/doc/libfm-extra4", "libfm4", 4095) = 6
lstat("/usr/share/doc/libfm4", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/share/doc/libfm4/changelog.Debian.gz", {st_mode=S_IFLNK|0777, st_size=35, ...}) = 0
readlink("/usr/share/doc/libfm4/changelog.Debian.gz", "../libfm-extra4/changelog.Debian"..., 4095) = 35
lstat("/usr/share/doc/libfm-extra4", {st_mode=S_IFLNK|0777, st_size=6, ...}) = 0
Изучение диска /usr/share/doc/libfm-extra4 привело к обнаружению того, что файл changelog.Debian.gz был символической ссылкой, и цель не найдена. Удаление этого файла позволило продолжить процесс debsums -cs.
Если это помогает: я повредил свою систему, поставив источник Debian в свой sources.list и выполнив обновление, вместо этого использования менеджера пакетов GDebi. Я потерял доступ к единству, хотя теперь я работаю на одном компьютере с сеансом xcfe, запущенным с консоли через xstart. Я не могу запустить сеанс Unity таким образом.