Linux btrfs como remover o sistema de arquivos inexistente da lista?

2

Estou dando uma chance ao btrfs. Eu cometi alguns erros, que são bons para aprender!

Eu criei vários sistemas de arquivos btrfs em diferentes dispositivos (sdX, loop, lvm, etc). Durante esses testes, removi (abruptamente) alguns ou todos os dispositivos que faziam parte de um sistema de arquivos btrfs (os fs foram desmontados primeiro).

Mas agora, o comando btrfs show ainda mostra o UUID e a lista de dispositivos do sistema de arquivos. Entendo que deveria ter feito um btfrs device del ANTES de remover dispositivos ...

Mas onde o btrfs armazena sua lista de sistemas de arquivos manipulados? Existe um arquivo conf em algum lugar? Um comando especial no btrfs-tools?

Eu não vim com uma resposta abrangente lendo wiki e tutos ... Dizem que podemos recuperar um sistema de arquivos morto e montá-lo com mount -o recovery /dev/yourBTFSvolume /mount/point , mas isso implica que metadados / dados e dispositivos relacionados ainda existem, o que não é é o caso aqui.

Aqui eu não tento recuperar dados, apenas quero limpar o gerenciamento do btrfs.

    
por Harvey Nallep 28.09.2013 / 16:43

1 resposta

2

Eu revisei o código para ver o que estava acontecendo. Quando o comando btrfs filesystem show é usado para mostrar todos os sistemas de arquivos em todos os dispositivos, ele verifica todos os dispositivos e particiona em /proc/partitions . Cada dispositivo e cada partição é examinado para ver se existe um "número mágico" do BTRFS e uma estrutura de dados raiz válida encontrada em 0x10040 deslocada do começo do dispositivo ou partição.

Eu então usei o hexedit em um disco que estava aparecendo errado na minha própria situação e com certeza havia um número mágico do BTRFS (que é a string ASCII _BHRfS_M ) dos meus experimentos anteriores.

Eu simplesmente peguei esse número mágico substituindo alguns caracteres da string por "**", também usando hexedit, e as entradas erradas desapareceram magicamente!

    
por 13.03.2014 / 19:20

Tags