Я могу ожидать “debsums-cs” выходить для запроса, когда это будет закончено?

Через глупую пользовательскую ошибку мне удалось испортить мою установку LTS Ubuntu 16.04 - она загружается на черный экран.

К счастью, файловая система неповреждена, и я могу добраться до консольной сессии без труда. Я попытался возместить свои убытки (инвертирующий последний набор изменений в журнале), и с героической справкой друга, нам удалось добраться до графической сессии с помощью xfce4 рабочего стола (который я установил как эксперимент назад за 14,04 дней).

Я пытаюсь выполнить шаги в этом ответе для восстановления моей системы к надлежащему рабочему состоянию (я использую Единицу), но когда я добираюсь до "шага 3", sudo debsums -cs, это останавливается. Очень быстро я получаю некоторые перечисленные отсутствующие шрифты (я удалил некоторые шрифты Ното - я знаю о том), и затем процесс успокаивается.

Я позволяю ему работать в течение 18 часов в первый раз и не получил новых результатов после первых минут пары. Я закрыл это, повторно выполнился debsums_init, и попробованный еще раз... с точно тем же результатом. Проверка top на процессе это показывает мне это:

top output

Так, должен я ожидать это 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 lsof

Выполнение watch с | tail канал дает:

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 dir привел к исследованию что changelog.Debian.gz файл был символьной ссылкой, и цель не могла быть найдена. Удаление того файла, позволенного debsums -cs процесс для продолжения.


Если это помогает: Я повредил свою систему посредством вставления источника Debian мой sources.list и выполнение обновления, вместо того, чтобы использовать диспетчер пакетов GDebi. Я потерял доступ к единице, хотя я теперь работаю над той же машиной с xcfe сессией, запущенной с консоли через xstart. Я не могу запустить сессию Единицы этот путь.

0
задан 13 April 2017 в 05:25

1 ответ

Если debsums выходы, Вам могут ожидать, что подсказка появится. Но, я думаю, что это делает IO-интенсивные-действия, и это является трудоемким.

В другом терминале, выполненном lsof -p PID, где PID debsums можно получить из вершины. Это должно показать список файлов, открытых им. Выполненный watch lsof -p PID, таким образом, список обновляется, и Вы видите, прогрессирует ли он или застрявший.

верхняя часть списка открытых файлов главным образом состоит из файлов, используемых для выполнения debsums самого (жемчуг и различные модули жемчуга). Часть интереса является последней строкой здесь - .md5sums файл, который это читает. Файлы, которые это проверяет, вероятно, далее снизились бы на список, поэтому возможно, работали бы watch 'lsof -p PID | tail'.

1
ответ дан 7 November 2019 в 00:27

Другие вопросы по тегам:

Похожие вопросы: