Btrfs super-recover diz que todos os superblocks são bons, mas o mount discorda

3

Eu tenho um drive externo formatado com o BTRFS que parece se recusar a montar:

$ sudo mount -vs -t btrfs  -o ro,recovery,errors=continue /dev/sdb2 /media/user/dir
mount: /dev/sdb2: can't read superblock

No entanto, quando o BTRFS pensa que todos os superblocos estão bem:

$ sudo btrfs rescue super-recover -v /dev/sdb2                 
All Devices:
        Device: id = 1, name = /dev/sdb2

Before Recovering:
        [All good supers]:
                device name = /dev/sdb2
                superblock bytenr = 65536

                device name = /dev/sdb2
                superblock bytenr = 67108864

                device name = /dev/sdb2
                superblock bytenr = 274877906944

        [All bad supers]:

All supers are valid, no need to recover

E se eu tentar especificar sb=$((67108864/4)) ( mount usa 1k unidades, então você tem que dividir por 4 em um sistema com blocos de 4k) para usar um dos superblocos alternativos, eu recebo o mesmo erro. btrfs restore também parece não ter problemas para ler dados da unidade, e btrfs check reclama apenas sobre uma entrada de cache inválida (e clear_cache não ajuda na montagem). Isso aconteceu uma vez antes em outra unidade e btrfs check --repair também não funcionou. [1] Como há uma grande quantidade de dados nesta unidade, estou um pouco relutante em copiar tudo em outro lugar com btrfs restore (o que também significa encontrar espaço em outro lugar), reformatar e copiar tudo de volta.

Existe uma maneira de corrigir esse problema? Existe uma maneira de chamar btrfs diretamente para que ele execute a montagem em vez de depender de mount ? Não consegui encontrar um mount.btrfs .

[1] Estou um pouco relutante em usar o btrfs check --repair , já que ele vem com muitos avisos sobre ser uma medida de último recurso, especialmente depois que ele não funcionou anteriormente.

    
por Livius 06.06.2017 / 16:24

0 respostas