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/sda2
ainda receber esses erros. por favor sugira como consertar meu sistema
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 = 12
inodes 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, 4k
mas ocupa 0
espaç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á 0
o tamanho na saída, por exemplo, ls -la
e depois de usá-lo, deverá mostrar o tamanho de bloco normal, por exemplo, 4k
como 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:root
ou alterando suas permissões, por exemplo, chmod 755
até que ls -la
mostre algum tamanho diferente 0
daquele 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 comodebugfs
para corrigir/excluir a entrada desse inode manualmenteoualternativamente, fazer backup de seus dados e reformatar a partição do disco.