Erros de Partição e Remontagens Somente Leitura ao Acessar Arquivo Específico

3

Eu tenho um sistema bem básico rodando o Ubuntu 16.04 (essa questão não é específica para o Ubuntu, mas sim ext4 partitions), 1 HDD, rodando algumas partições:

sda1 - EXT4 - 100G   - /
sda2 - EXT4 - 723.5G - /home
sda3 - NTFS - 100G   - (windows)
sda5 - SWAP - 8G

Sempre que eu tento acessar um dos 3-4 arquivos em um diretório específico na partição /home (a pasta específica que causa os problemas é /home/path/to/broken/folder ), a partição /home terá erro e remontará somente leitura . dmesg mostra os seguintes erros:

EXT4-fs error (device sda2): ext4_ext_check_inode:497: inode #1415: comm rm: pblk 0 bad header/extent: invalid magic - magic 0, entries 0, max 0(0), depth 0(0)
Aborting journal on device sda2-8.
EXT4-fs (sda2): Remounting filesystem read-only
EXT4-fs error (device sda2): ext4_ext_check_inode:497: inode #1417: comm rm: pblk 0 bad header/extent: invalid magic - magic 0, entries 0, max 0(0), depth 0(0)
EXT4-fs error (device sda2): ext4_ext_check_inode:497: inode #1416: comm rm: pblk 0 bad header/extent: invalid magic - magic 0, entries 0, max 0(0), depth 0(0)

Então eu entendo o que está acontecendo ... algum bloco ruim está causando um erro e está remontando a unidade somente leitura para evitar mais corrupção. Eu sei que são esses arquivos específicos porque eu posso desfazer o erro por

  1. Fazendo login como root
  2. executando sync
  3. Parando lightdm (e todos os subprocessos)
  4. Pare todos os arquivos abertos restantes no /home encontrando-os com lsof | grep /home
  5. Desmontando /home
  6. Executando fsck /home (corrigindo os erros)
  7. Remontar /home

Tudo está bem novamente, leia e escreva, até que eu tente acessar os mesmos arquivos novamente , então todo este processo é repetido para corrigi-lo novamente.

A maneira que eu tentei acessar os arquivos foi rodando ls /home/path/to/broken/folder e rm -r /home/path/to/broken/folder , então parece que qualquer tipo de operação de HDD naquela parte da unidade comete erros e a coloca em somente leitura novamente. / p>

Eu sinceramente não me importo com os arquivos, eu só quero que eles desapareçam. Estou disposto a remover toda a pasta /home/path/to/broken/folder , mas toda vez que eu tentar isso, ela falha e é liberada para leitura.

Eu corri badblocks -v /dev/sda2 no meu disco rígido, mas ele ficou limpo, sem blocos ruins. Qualquer ajuda ainda seria muito apreciada.

Ainda procurando uma solução para isso. Algumas informações que podem ser úteis abaixo:

$ debugfs -R 'stat &lt1415&gt' /dev/sda2
debugfs 1.42.13 (17-May-2015)
Inode: 1415   Type: regular    Mode:  0644   Flags:  0x80000
Generation: 0    Version: 0x00000000
User:     0   Group:     0   Size: 0
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 0
Fragment:  Address: 0    Number: 0    Size: 0
ctime: 0x5639ad86 -- Wed Nov  4 01:02:30 2015
atime: 0x5639ad86 -- Wed Nov  4 01:02:30 2015
mtime: 0x5639ad86 -- Wed Nov  4 01:02:30 2015
Size of extra inode fields: 0
EXTENTS:

Agora eu olhei para isso e comparei com o que eu suspeito ser um inode não corrompido:

$ debugfs -R 'stat &lt1410&gt' /dev/sda2
debugfs 1.42.13 (17-May-2015)
Inode: 1410   Type: regular    Mode:  0644   Flags:  0x80000
Generation: 0    Version: 0x00000000
User:     0   Group:     0   Size: 996
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 0
Fragment:  Address: 0    Number: 0    Size: 0
ctime: 0x5639ad31 -- Wed Nov  4 01:01:05 2015
atime: 0x5639ad31 -- Wed Nov  4 01:01:05 2015
mtime: 0x5639ad31 -- Wed Nov  4 01:01:05 2015
Size of extra inode fields: 0
EXTENTS:
(0):46679378

Eu tenho ousado o que acredito serem as principais diferenças aqui. Eu olhei para outros inodes não corrompidos e eles exibem algo semelhante ao 1410 que tem um tamanho diferente de zero e uma extensão.

Cabeçalho / extensão incorretos aqui faz sentido ... não há limites ... como corrigir isso sem reformatar toda a partição /home ?

Eu realmente sinto que entreguei essa pergunta para alguém mais inteligente do que eu em uma bandeja de prata, eu simplesmente não sei qual é a refeição (resposta)!

    
por Zzzach... 12.05.2016 / 04:59

1 resposta

1

Finalmente encontrei a resposta de outra pessoa em outro site, apenas zerando os inodes e checando novamente o sistema, foi tudo!

debugfs -w /dev/sda2
:clri &lt1415&gt
:clri &lt1416&gt
:clri &lt1417&gt
:q
fsck -y /dev/sda2

Para qualquer outra pessoa com esse problema, encontrei meus inodes ruins usando find na montagem incorreta e, em seguida, verifiquei dmesg quanto a erros nos inodes ruins.

    
por 12.05.2016 / 19:39