Felizmente, nosso servidor é virtual e eu posso acessar o sistema host. Corrigi o problema editando os dados brutos do disco. Você também pode tentar desta forma, mas tenha muito cuidado. O método é perigoso. Você pode corromper outros arquivos, partição ou até mesmo disco rígido inteiro. Então, faça isso por seu risco e garanta que você tenha backups recentes.
- Instale o hexedit no sistema host.
- Executar
sync
no convidado. - Abra o dispositivo hd convidado com hexedit.
- Encontre a string corrompida e anote sua posição (algo como 0x29221D2B8 na parte inferior da tela).
- Converta o número em decimal usando algum calc ou util (usei o kcalc).
-
Tente ler o texto corrompido com
dd
e verifique se os números estão corretos. skip = position / ibs.sudo dd se = / dev / vg0 / vm-100-disco-1 contagem = 1 bs = 10 ibs = 10 pular = 1104162476
-
Substitua o texto corrompido de alguma forma para corrigir o erro. No meu caso, apenas substituí o primeiro símbolo por '#' para comentar as coisas quebradas. Uso de / obs / seek parâmetros instaed de if / ibs / skip com os mesmos números. Tenha cuidado com novas linhas e eof.
echo "#ncludedir" | sudo dd de = / dev / vg0 / vm-100-disco-1 contagem = 1 bs = 10 obs = 10 busca = 1104162476
-
Você pode ler novamente com dd e verificar se fez o que precisa.
-
Retorne ao terminal da máquina virtual e tente usar o sudo agora. Talvez você precise esvaziar o cache de leitura de disco de alguma forma. Tenha uma boa sorte neste passo! :)