Como recuperar o sistema de arquivos XFS com “leitura de superblocos com falha”

5

Eu tenho um disco de um Buffalo LinkStation que tem uma partição XFS que eu não consigo montar.

Conectando o disco a um cadeado USB SATA > em uma caixa do Ubuntu. Eu recebo o seguinte:

$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63      594404      297171   83  Linux
/dev/sdb2          594405     1590434      498015   83  Linux
/dev/sdb4         1590435   976768064   487588815    5  Extended
/dev/sdb5         1590498     1863539      136521   82  Linux swap / Solaris
/dev/sdb6         1863603   976494959   487315678+  83  Linux

A partição do problema é / dev / sdb6.

$ sudo xfs_check /dev/sdb6
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed.  Mount the filesystem to replay the log, and unmount it before
re-running xfs_check.  If you are unable to mount the filesystem, then use
the xfs_repair -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption -- please attempt a mount
of the filesystem before doing this.

Por isso, tentar a opção xfs_repair -L leva-me à situação que não posso ultrapassar:

$ sudo xfs_repair -L /dev/sdb6
Phase 1 - find and verify superblock...
superblock read failed, offset 382252089344, size 131072, ag 89, rval -1

fatal error -- Input/output error

Usando o photorec, consegui extrair alguns arquivos dessa partição, para que os dados estejam lá e o disco esteja funcionando fisicamente. No entanto, há um problema com os superblocos.

Como eu recuperaria essa partição?

    
por Kieran 15.01.2013 / 23:48

4 respostas

3

Após o erro de reprodução do XFS, tente MONTAR a partição novamente, conforme a mensagem de erro.

Se tudo ficar muito confuso, é altamente recomendável fazer o download do UFS Explorer para ajudar na recuperação profunda de arquivos de outro sistema.

    
por 15.01.2013 / 23:53
2

As respostas acima não me ajudaram quando tive esse problema hoje (cerca de 9,5 horas atrás agora). Vou apresentar aqui a solução que funcionou para mim, junto com as razões pelas quais a resposta anterior não ajudou.

Sintomas

  1. Do nada, nenhum arquivo em /home não pôde ser salvo / editado, etc. ou qualquer diretório listado.
  2. dmesg mostrou em algum lugar xfs_do_force_shutdown called em torno de algumas outras mensagens do xfs.
  3. xfs_repair falhou na Fase 1 com superblock read failed seguido por fatal error -- Input/output error
  4. O restante do meu disco estava funcionando perfeitamente (incluindo / , ou seja, apenas /home não estava funcionando).
  5. A tentativa de mount levaria a superblock cannot be found (ou erro análogo), mas nenhuma sugestão sobre o que fazer a seguir.

Solução

A solução é baseada em este post Nigel Smith, o principal autor do XFS (se bem entendi). Vou repassar as etapas aqui caso o link anterior se torne obsoleto. Todas as operações a seguir devem ser executadas como root (evidentemente).

  1. Execute um autoteste longo da unidade: smartctl -t long /dev/sda . Isso pode demorar um pouco. Você também pode executar um teste curto com smartctl -t short /dev/sda se houver um teste longo relativamente recente (como havia no meu caso).
  2. Examine o teste com: smartctl -l selftest /dev/sda ou smartctl -a /dev/sda (o último exibe tudo, mas as informações de que você precisa estão quase no fim).
  3. A última coluna do relatório de teste é chamada LBA_of_first_error . Esta é a posição do primeiro erro na partição. A partir do último teste (que será numerado como "# 1" e colocado no topo da lista), pegue o número exibido e divida por oito e truncando para um valor inteiro (cf. postagem original do porquê).
  4. Então, você irá zerar esse bloco específico. Isso fará com que o arquivo específico nesta posição seja corrompido. (Mas se você esgotou todos os outros métodos, alguns arquivos corrompidos não são tão grandes assim.). Para isso, execute o seguinte comando: # dd if=/dev/zero of=/dev/sda conv=sync bs=4096 count=1 seek=*NUMBER_COMPUTED_EARLIER*
  5. Faça um pequeno teste e aguarde um minuto ou dois pelo resultado. Repita isso até que o teste curto não apresente nenhum erro. Ou, você pode verificar o número aproximado de blocos errados com smartctl -A /dev/hda | egrep 'Reallocated|Pending|Uncorrectable' No meu caso, eu repeti as etapas de 1 a 4 até que eu estava com 24 erros.
  6. Execute xfs_repair /dev/sda ( sem o sinal -L ). Isso provavelmente informará que você deve tentar montar o sistema de arquivos por causa dos erros do registro de diário.
  7. Tente montar esse sistema. No meu caso, isso falhou, então eu tive que executar xfs_repair -L /dev/sda , que exclui o log de diário (o que pode resultar na exclusão de dados).
  8. Monte seu sistema de arquivos e faça um backup recente!

Por que as soluções acima não funcionam mais

  • O post inicial tem vários anos. Enquanto isso, houve mudanças suficientes no XFS, pois ele deve ser considerado estável o suficiente pela equipe SuSE para ser usado como o FS primário para /home .
  • xfs_check tornou-se obsoleto em favor de xfs_repair -n .
  • A solução Debian foi um aborrecimento horrível e perda de tempo. A partir de agora, o Debian não suporta o boot UEFI, e essa informação não está na sua página de download nem na sua página principal de FAQ (está no Wiki). Portanto, para inicializar com isso, você precisa desabilitar o UEFI Secureboot na sua BIOS e depois inicializar na chave. Depois, você notará que não há ferramentas no xfs instaladas por padrão. Então você vai fazer apt-get install xfsprogs apenas para perceber que, sendo este Debian, seus pacotes "estáveis" estão literalmente atrasados. Resumindo, xfs_repair /dev/sda ficou pendurado para sempre. O processo não pode ser morto (mesmo com um sigterm).
  • O UFS Explorer é um software pago.
  • O
  • photorec suporta apenas tipos de arquivos específicos (diga adeus às suas chaves GPG) e restaura todos os arquivos com nomes arbitrários em uma única pasta. Boa sorte passando por tudo isso e encontrando informações relevantes.
por 25.02.2017 / 05:08
1

Eu tenho a partição XFS em "sda6". No Lubuntu, ele é corrigido, não corrige e não monta a partição XFS no 13.10. Ao inicializar o Lubuntu, diz-se que deve ser consertado e tentando inicializar para consertar o sistema de arquivos XFS. Quando eu fui na primeira instalação do Lubuntu, na partição está escrito Unknown .

O Lubuntu não foi corrigido. Usar o comando xfs_check para mim não resolveu.

Eu finalmente resolvi voltar ao Debian 7 e reinstalar. É detectado todos os sistemas de arquivos e a partição normalmente montada do XFS .

Eu li muitos usuários para sistemas de arquivos XFS, então acho que é um problema nas mudanças nas versões do kernel, porque o Debian 7 usa a versão 3.2 e monta o XFS normalmente sem erros, mas no Ubuntu com o kernel mais recente 3.11 não resolveu o sistema de arquivos XFS .

Eu tentei com o CentOS 6.5, mas o CentOS acompanha o RedHat e o antigo kernel "estável". não detectou o XFS automaticamente.

Finalmente eu tenho no Debian 7 backups de todos os dados na partição XFS e recrio partições para EXT4 .

Devido a RedHat não consertar a partição de leitura XFS e alguns problemas com XFS (google quantos usuários não resolveram partições de leitura XFS) Eu geralmente opto por fazer backup e mudar para novo compatível com o Debian kernel 3.11 para EXT4 / btrfs ... sistemas de arquivos.

Espero que isso ajude alguém.

    
por 15.12.2013 / 23:11
0

Eu consertei minha partição XFS usando um novo Debian 8.7.1 baixado em um servidor real apenas coloquei o disco neste sistema e ele conserta automaticamente. Centos 5 e 6 não podem repará-lo

    
por 14.03.2017 / 17:24