Posso esperar que “debsums -cs” saia para o prompt quando terminar?

0

Através de um erro de usuário estúpido, eu consegui atrapalhar a minha instalação do Ubuntu 16.04 LTS - ele inicializa em uma tela preta.

Felizmente, o sistema de arquivos está intacto e eu posso chegar a uma sessão de console sem dificuldade. Eu tentei desfazer meu dano (revertendo o último conjunto de mudanças no log), e com a ajuda heróica de um amigo, conseguimos chegar a uma sessão gráfica usando o desktop xfce4 (que eu tinha instalado como um experimento em 14.04 dias) .

Eu estou tentando seguir os passos em esta resposta para restaurar meu sistema ao funcionamento correto (eu uso o Unity) , mas quando chego ao "passo 3", sudo debsums -cs , ele fica parado. Muito rapidamente eu recebo algumas fontes ausentes listadas (eu deletei algumas fontes Noto - eu sei disso), e então o processo fica silencioso.

Eu deixo isso funcionar por 18 horas pela primeira vez e não obtenho novos resultados após os primeiros dois minutos. Fechei isso, reiniciei debsums_init e tentei novamente ... exatamente com o mesmo resultado. Verificando top no processo, isso me mostra:

Então,devoesperarqueessedebsums-cstermineseutrabalhoesaiaparasolicitar?Ouestápendurado?ouelemedissetudooquevaimedizer,eeudeveriaapenasmatá-lo?

Atualização-resolvidoapósdiagnósticosesugestõesdo@muru(vejaarespostaaceita,abaixo):

Estaéasaídadelsof-pPID:

COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEdebsums14678rootcwdDIR8,2409613369346/home/userdebsums14678rootrtdDIR8,240962/debsums14678roottxtREG8,219071928475875/usr/bin/perldebsums14678rootmemREG8,2271688651816/usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/File/Glob/Glob.sodebsums14678rootmemREG8,21036810493560/usr/lib/x86_64-linux-gnu/perl5/5.22/auto/File/FnMatch/FnMatch.sodebsums14678rootmemREG8,2144809859421/usr/lib/x86_64-linux-gnu/perl5/5.22/auto/Locale/gettext/gettext.sodebsums14678rootmemREG8,2353288654166/usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/Encode/Encode.sodebsums14678rootmemREG8,21020648524369/usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/POSIX/POSIX.sodebsums14678rootmemREG8,2187048658188/usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/Digest/MD5/MD5.sodebsums14678rootmemREG8,2187688654260/usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/IO/IO.sodebsums14678rootmemREG8,2186968524352/usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/Fcntl/Fcntl.sodebsums14678rootmemREG8,2476968658199/usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/List/Util/Util.sodebsums14678rootmemREG8,2146088524357/usr/lib/x86_64-linux-gnu/perl/5.22.1/auto/Cwd/Cwd.sodebsums14678rootmemREG8,229812808389721/usr/lib/locale/locale-archivedebsums14678rootmemREG8,2392247078564/lib/x86_64-linux-gnu/libcrypt-2.23.sodebsums14678rootmemREG8,218648887078561/lib/x86_64-linux-gnu/libc-2.23.sodebsums14678rootmemREG8,21386967078570/lib/x86_64-linux-gnu/libpthread-2.23.sodebsums14678rootmemREG8,210889527078569/lib/x86_64-linux-gnu/libm-2.23.sodebsums14678rootmemREG8,2146087078560/lib/x86_64-linux-gnu/libdl-2.23.sodebsums14678rootmemREG8,21626327078534/lib/x86_64-linux-gnu/ld-2.23.sodebsums14678rootmemREG8,217199999141/usr/share/locale-langpack/en_GB/LC_MESSAGES/dpkg-dev.modebsums14678root0uCHR136,00t03/dev/pts/0debsums14678root1uCHR136,00t03/dev/pts/0debsums14678root2uCHR136,00t03/dev/pts/0debsums14678root3rREG8,23072915907/var/lib/dpkg/info/libfm-extra4:amd64.md5sums

Éprecedidoporesteaviso:

lsof:WARNING:can'tstat()fuse.gvfsd-fusefilesystem/run/user/1000/gvfsOutputinformationmaybeincomplete.

Asaídadewatchlsof-pPIDéestáticaenãomudoudesdeoinício:

Executandowatchcomo|tailpipe:

Ouseja,asmesmasúltimas10linhasnaimagemacima.FWIW,oarquivolibfm-extra4:amd64.md5sums(307bytes)listadestamaneira:

-rw-r--r--1rootroot307Jul122016/var/lib/dpkg/info/libfm-extra4:amd64.md5sums

Asaídadesudostrace-pPIDdeuasseguintescincolinhasinfinitamenteemloop:

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

Investigar o /usr/share/doc/libfm-extra4 dir levou à descoberta de que o arquivo changelog.Debian.gz era um link simbólico e o destino não pôde ser encontrado. A exclusão desse arquivo permitiu que o processo debsums -cs continuasse.

Se ajudar: danifiquei meu sistema colocando uma fonte Debian no meu sources.list e executando uma atualização, ao invés de usar o gerenciador de pacotes GDebi. Eu perdi o acesso à unidade, embora agora eu esteja trabalhando na mesma máquina com uma sessão do xcfe iniciada pelo console via xstart . Não consigo iniciar uma sessão do Unity dessa maneira.

    
por Dɑvïd 09.02.2017 / 15:02

1 resposta

1

Se debsums sair, você pode esperar que o prompt apareça. Mas, acho que está fazendo operações intensivas em IO, e essas são demoradas.

Em outro terminal, execute lsof -p PID , onde o PID de debsums você pode obter do topo. Isso deve mostrar a lista de arquivos abertos por ele. Execute watch lsof -p PID para que a lista seja atualizada e você possa ver se está progredindo ou travando.

O topo da lista de arquivos abertos é composto principalmente pelos arquivos usados para executar debsums propriamente dito (perl e vários módulos perl). A parte de interesse é a última linha aqui - o arquivo .md5sums está lendo. Os arquivos que estão verificando provavelmente estariam mais abaixo na lista, então talvez seja executado watch 'lsof -p PID | tail' .

    
por muru 09.02.2017 / 15:38