AVISO: O sistema do sistema de arquivos apresenta erro. não foi possível corrigir o pai do nó 47322B43 Não foi possível encontrar a entrada do diretório pai

AVISO: O sistema do sistema de arquivos apresenta erro. não foi possível corrigir o pai do nó 47322B43 Não foi possível encontrar a entrada do diretório pai

AVISO: O sistema do sistema de arquivos apresenta erro. não foi possível corrigir o pai do nó 47322B43 Não foi possível encontrar a entrada do diretório pai.

Eu tenho o sistema operacional Ubuntu 22.04.2 LTS (Jammy Jellyfish) instalado toda vez que inicializo, recebendo o seguinte erro. Eu tentei fsck -f /dev/sda2ainda receber esses erros. por favor sugira como consertar meu sistema insira a descrição da imagem aqui

Responder1

Vamos primeiro entender os inodes em termos leigos

Fazendo... Nosso sistema de arquivos escolhido para esta demonstração seráEXT2porque não temregistro no diáriomecanismo e, portanto, será fácil de corromper para fins de demonstração de alguns problemas relacionados ao inode.

Vamos criar um arquivo de imagem de “disco”:

$ truncate -s 10M myfilesystem

E formate-o

$ mkfs.ext2 myfilesystem
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 2560 4k blocks and 2560 inodes

Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done

Observe o número de inodes ... and 2560 inodes... Este é o número máximo permanente para este sistema de arquivos nesta partição de disco... Você pode criar quantos arquivos(todos os tipos, incluindo diretórios) como esse número (menos os inodes especiais do sistema de arquivos), mas não mais do que esse número neste sistema de arquivos.

Vamos criar um ponto de montagem e montar esse sistema de arquivos:

$ mkdir mymount
$
$ mount myfilesystem mymount/
$
$ ls -la mymount/
total 24
drwxr-xr-x 3 root   root    4096 May  8 14:24 .
drwxr-xr-x 3 ubuntu ubuntu  4096 May  8 14:29 ..
drwx------ 2 root   root   16384 May  8 14:24 lost+found
$
$ df -ih mymount/
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/loop1       2.5K    11  2.5K    1% /home/ubuntu/test/mymount

Observe o número de inodes usados 11... Eles são chamados de inodes especiais e reservados/usados ​​por padrão para fins especiais predefinidos do sistema de arquivos... Vamos usar mais alguns deles:

$ touch mymount/file{1..2}
$
$ ls -lai mymount/
total 24
   2 drwxr-xr-x 3 root   root    4096 May  8 14:33 .
2552 drwxr-xr-x 3 ubuntu ubuntu  4096 May  8 14:29 ..
  12 -rw-r--r-- 1 root   root       0 May  8 14:33 file1
  13 -rw-r--r-- 1 root   root       0 May  8 14:33 file2
  11 drwx------ 2 root   root   16384 May  8 14:24 lost+found
$
$ df -ih mymount/
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/loop1       2.5K    13  2.5K    1% /home/ubuntu/test/mymount

Criamos dois arquivos e usamos mais dois inodes e terminamos com 11 + 2 = 13.

Vamos liberar um deles:

$ rm mymount/file1
$
$ df -ih mymount/
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/loop1       2.5K    12  2.5K    1% /home/ubuntu/test/mymount

São 13 - 1 = 12inodes usados ​​​​normalmente e aquele que acabamos de liberar será reutilizado quando necessário ... os inodes são recicláveis.

Isso ocorre em condições normais... Mas, e seem outra conchaabra continuamente e use um arquivo:

$ tail -f mymount/file2
-

Em seguida, volte ao nosso shell original para excluir esse arquivo e desmonte imediatamente o sistema de arquivos:

$ rm mymount/file2 && umount -l myfilesystem
$
$ ls -lai mymount/
total 8
6425 drwxr-xr-x 2 root   root   4096 May  8 14:29 .
2552 drwxr-xr-x 3 ubuntu ubuntu 4096 May  8 14:29 ..

Em seguida, monte-o novamente:

$ mount myfilesystem mymount/
$
$ ls -lai mymount/
total 24
   2 drwxr-xr-x 3 root   root    4096 May  8 14:44 .
2552 drwxr-xr-x 3 ubuntu ubuntu  4096 May  8 14:29 ..
  11 drwx------ 2 root   root   16384 May  8 14:24 lost+found
$
$ df -ih mymount/
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/loop1       2.5K    12  2.5K    1% /home/ubuntu/test/mymount

Observe como, embora o arquivo tenha sido realmente excluído, seu inode não foi liberado ... Isso é uma "simulação" de corrupção do sistema de arquivos ... Vamos desmontar e verificar:

$ umount myfilesystem
$
$ e2fsck myfilesystem
e2fsck 1.46.5 (30-Dec-2021)
myfilesystem was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Deleted inode 13 has zero dtime.  Fix<y>? yes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Inode bitmap differences:  -13
Fix<y>? yes
Free inodes count wrong for group #0 (2548, counted=2549).
Fix<y>? yes

myfilesystem: ***** FILE SYSTEM WAS MODIFIED *****
myfilesystem: 11/2560 files (0.0% non-contiguous), 170/2560 blocks

Vamos fechar o outro shell e montar novamente e verificar:

$ mount myfilesystem mymount/
$
$ df -ih mymount/
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/loop1       2.5K    11  2.5K    1% /home/ubuntu/test/mymount

Agora você sabe o básico de como os inodes são usados... E algumas das coisas que podem dar errado com eles para acionar uma verificação do sistema de arquivos e como... O mesmo pode acontecer ao conectar/desconectar um disco ou quando o sistema perde energia repentinamente como arquivos(especialmente arquivos do sistema) são criados/excluídos/atualizados constantemente pelos processos do sistema ... É um pouco menos no caso de diretórios, pois normalmente não é possível manter um diretório aberto por um processo, pois eles não têm um identificador como os arquivos comuns, mas corrupção pode acontecer com inodes de diretório se o acima acontecer enquanto seus metadados estão sendo atualizados/modificados e também, embora raro, pode acontecer quando o sistema de arquivos perde acesso a determinados blocos devido a uma unidade de disco com falha/deterioração.

No entanto, a maioria dos problemas com inodes pode ser facilmente corrigida automaticamente por utilitários de verificação do sistema de arquivos.

De volta à sua pergunta

Há momentos, no entanto, em que esses utilitários perdem o caminho e não sabem como corrigir um problema com inodes, especialmente com diretórios que não possuem metadados legíveis válidos, pois um dos métodos que essas ferramentas usam para corrigir corrupção com inodes é, na verdade, meta dados que identificam conteúdos de diretórios, pais... etc.

A captura de tela que você incluiu torna um pouco difícil ler e copiar o texto de ... No entanto, o que você parece ter é um inode 4732284(sob/usr/src/linux ... /net/ ...) que é rotulado como um diretório no sistema de arquivos, mas não possui os metadados usuais que descrevem sua relação com seus pais, o que o torna órfão e não ocupa o espaço usual de um bloco, por exemplo, 4kmas ocupa 0espaço e, portanto, o NULL... Enquanto estiver ligado a maioria dos arquivos do sistema de arquivos pode ter tamanho nulo/0, os diretórios não, consulteesta postagemeesta postagempara mais detalhes.

Esse tipo de problema,se não aumentar drasticamente, o que pode indicar falha na unidade de disco/blocos defeituosos e deteriorados, não é um grande problema e deve ser inofensivo ... Para se livrar dele da maneira mais fácil, você só precisa usá-lo ... ou seja, crie um arquivo nesse diretório e remova-o para atualizar suas meta informações para que ele vá voltar a usar um tamanho de bloco completo do sistema de arquivos e parecer um pouco normal ... Esse diretório deve ser fácil de localizar, pois mostrará 0o tamanho na saída, por exemplo, ls -lae depois de usá-lo, deverá mostrar o tamanho de bloco normal, por exemplo, 4kcomo outros diretórios no mesmo sistema de arquivos ... Se isso não for suficiente para trazê-lo de volta ao normal, agite-o mais, por exemplo, definindo sua propriedade, por exemplo, chown root:rootou alterando suas permissões, por exemplo, chmod 755até que ls -lamostre algum tamanho diferente 0daquele diretório.

Em seguida, desmonte o sistema de arquivos que o contém e execute o utilitário de verificação do sistema de arquivos novamente e ele deverá corrigi-lo desta vez.

Isso deveria funcionar, mas, se não funcionou, você tem duas alternativas...Qualquerusando um depurador de sistema de arquivos comodebugfspara corrigir/excluir a entrada desse inode manualmenteoualternativamente, fazer backup de seus dados e reformatar a partição do disco.

Referências técnicas:

informação relacionada