Sistema de arquivos XFS desmontável

1

Estou um pouco histérico agora porque não consigo montar meu disco rígido externo. Eu o gravei no XFS cerca de um mês atrás e movi alguns arquivos para lá nesta manhã (um disco rígido virtual, entre outros, para economizar espaço na minha unidade local cheia) e, por algum motivo, o cabo USB acabou de sair. Quando eu liguei de volta, ele se recusou a montar. Eu corri xfs_repair -L /dev/sdb1 e isso não funcionou. Eu corri xfs_admin -U generate /dev/sdb1 e recebi um novo tipo de erro:

xfs superblock has incompatible features (0x4)

ou algo nesse sentido. O que pode ser feito para consertar o sistema de arquivos? Ou, pelo menos, se eu conseguir uma lista dos arquivos usando os utilitários do xfs, isso faria uma grande diferença!

    
por SpaghettiCoder 05.12.2015 / 16:44

1 resposta

1

Para citar Arquimedes:

Eureka! I've found it!

O problema é que quando você invoca o comando xfs_admin -U generate /dev/sdXY , o parâmetro generate faz com que o xfs_admin troque o bit incompatível para em , para que os kernels mais antigos não possam usar o sistema de arquivos . Uma explicação pode ser encontrada na seguinte citação fornecida por RTFM :

xfs_admin(8)

...

-U uuid
          Set the UUID of the filesystem to uuid.  A sample UUID looks
          like this: "c1b9d5a2-f162-11cf-9ece-0020afc76f16".  The uuid
          may also be nil, which will set the filesystem UUID to the
          null UUID.  The uuid may also be generate, which will generate
          a new UUID for the filesystem.  Note that on CRC-enabled
          filesystems, this will set an incompatible flag such that
          older kernels will not be able to mount the filesystem.  To
          remove this incompatible flag, use restore, which will restore
          the original UUID and remove the incompatible feature flag as
          needed.

Para reverter isso, basta executar xfs_admin -U restore /dev/sdXY e você deve poder montar a partição novamente. O que é estranho é que a máquina que foi usada para gerar o UUID é a máquina que está executando o kernel mais recente (4.2.5-1-ARCH, ok, talvez não o mais recente, mas o UUID deve implicar que isso máquina não está excluída da compatibilidade). De qualquer forma, o importante é que o problema foi resolvido.

    
por 05.12.2015 / 20:50