BTRFS: excluindo um volume

10

Há uma semana, criei um pool BTRFS usando dois flash drives (32GB cada) com este comando: /sbin/mkfs.btrfs -d single /dev/sda /dev/sdb . Então percebi que deveria ter usado as partições /dev/sda1 e /dev/sdb1 , em vez dos discos /dev/sda e /dev/sdb , então recriou os volumes usando /dev/sd[ab]1 .

Meu problema é que agora tenho dois volumes:

$ sudo btrfs fi show
Label: none  uuid: ba0b48ce-c729-4793-bd99-90764888851f
        Total devices 2 FS bytes used 28.00KB
        devid    2 size 29.28GB used 1.01GB path /dev/sdb1
        devid    1 size 28.98GB used 1.03GB path /dev/sda1

Label: none  uuid: 17020004-8832-42fe-8243-c145879a3d6a
        Total devices 2 FS bytes used 288.00KB
        devid    1 size 29.28GB used 1.03GB path /dev/sdb
        devid    2 size 28.98GB used 1.01GB path /dev/sda

Eu tentei diferentes opções para excluir o segundo volume (uuid que termina em c145879a3d6a), ou seja: usando o dispositivo de exclusão btrfs. Então, mkfs.btrfs, desmontou os dispositivos e também o fdisk para recriar o ataque inteiro do zero, mas não importa o que eu faça, btrfs fi show ainda mostra os dois volumes. Como posso remover completamente esses volumes do meu sistema e começar tudo do zero? Não importa o que eu faça, os volumes não podem ser removidos, por exemplo:

$ sudo btrfs device delete /dev/sda /media/flashdrive/
ERROR: error removing the device '/dev/sda' - Inappropriate ioctl for device

Estou correndo aqui kernel 3.12.21 + btrfs v0.19

    
por limaunion 19.06.2014 / 15:10

3 respostas

7

Eu mesmo me deparei com problemas semelhantes usando o BTRFS.

Primeiras coisas primeiro - a manteiga não precisa estar em uma partição, então a menos que houvesse algum tipo de razão não mencionada que você queria em / dev / sdb1, você fez exatamente o que eu fiz e correu exatamente da mesma forma problema.

Depois de pesquisar e tentar encontrar uma solução limpa para corrigi-lo, wipefs é sua melhor opção - versões supostamente mais novas podem remover todos os traços. No entanto, no momento em que corri para isso, acabei usando apenas dd para escrever zeros para todo o meu dispositivo, algo como o seguinte:

dd if=/dev/zero of=/dev/sdX bs=4M

É o gorila de 9000 libras de soluções, mas colocará seus pen drives de volta a um novo estado.

Aviso SSD: Isso pode ser prejudicial ao desempenho de um SSD (dependendo do fabricante) e deve ser feito apenas em thumbdrives. Veja esta questão que oferece alguns outros alternativas (blkdiscard) que podem ser mais rápidas / seguras / melhores para SSDs. Esta questão também tem algumas boas respostas que podem fazer o mesmo, mas sem zerar (recurso de exclusão segura) .

    
por 19.06.2014 / 16:04
2

Eu prefiro wipefs -t btrfs /dev/sda1 /dev/sdb1 como sugerido no wiki oficial do btrfs . É um pouco escondido na descrição do mkfs-option:

-f --force Forcibly overwrite the block devices when an existing filesystem is detected. By default, mkfs.btrfs will utilize libblkid to check for any known filesystem on the devices. Alternatively you can use the wipefs utility to clear the devices.

    
por 19.06.2017 / 19:55
0

Como alternativa, você pode usar o cryptsetup para limpar as informações do btrfs:

cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/sdXY

Trabalhei para mim.

    
por 17.03.2016 / 22:02

Tags