BTRFS: Löschen eines Volumes

11

Vor einer Woche habe ich mit diesem Befehl einen BTRFS-Pool mit zwei Flash-Laufwerken (jeweils 32 GB) erstellt : /sbin/mkfs.btrfs -d single /dev/sda /dev/sdb. Dann wurde mir klar, dass ich die Partitionen /dev/sda1und /dev/sdb1anstelle der Festplatten /dev/sdaund hätte verwenden sollen /dev/sdb, also habe ich die Volumes mit neu erstellt /dev/sd[ab]1.

Mein Problem ist, dass ich jetzt zwei Bände habe:

$ 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

Ich habe verschiedene Optionen ausprobiert, um das zweite Volume zu löschen (UUID endet mit c145879a3d6a), dh: Verwenden von btrfs delete device. Dann mkfs.btrfs, unmounted die Geräte und auch fdisk, um den gesamten Raid von Grund auf neu zu erstellen, aber egal was ich mache, btrfs fi showzeigt immer noch beide Volumes. Wie kann ich diese Volumes vollständig von meinem System entfernen und alles von vorne beginnen? Egal was ich mache, die Volumes können nicht entfernt werden, dh:

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

Ich verwende hier Kernel 3.12.21 + btrfs v0.19

Limaunion
quelle

Antworten:

8

Ich bin selbst mit BTRFS auf ähnliche Probleme gestoßen.

Das Wichtigste zuerst - Butter muss sich nicht in einer Partition befinden. Wenn es also keinen nicht erwähnten Grund gab, warum Sie es in / dev / sdb1 wollten, haben Sie genau das getan, was ich getan habe, und sind auf genau das gleiche Problem gestoßen.

Nachdem Sie sich umgesehen und versucht haben, eine saubere Lösung für das Problem zu finden, ist wipefs die beste Option - angeblich können neuere Versionen alle Spuren entfernen. Als ich darauf stieß, benutzte ich jedoch nur dd, um Nullen auf mein gesamtes Gerät zu schreiben, etwa wie folgt:

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

Es ist der 9000-Pfund-Gorilla von Lösungen, aber es wird Ihre Thumbdrives wieder in einen frischen Zustand versetzen.

SSD-Warnung: Dies kann die Leistung einer SSD beeinträchtigen (je nach Hersteller) und sollte eigentlich nur auf USB-Sticks erfolgen. In dieser Frage finden Sie einige andere Alternativen (blkdiscard), die für SSDs möglicherweise schneller / sicherer / besser sind. Diese Frage hat auch einige gute Antworten, die das Gleiche tun könnten, jedoch ohne Nullstellen (sichere Löschfunktion).

Sam
quelle
Danke Nextraztus! das scheint das Problem gelöst zu haben! Ich werde sie jetzt von Grund auf neu erstellen. Hoffe, dass dies in zukünftigen btrfs-Versionen behoben ist.
Limaunion
3

Ich würde es vorziehen, wipefs -t btrfs /dev/sda1 /dev/sdb1wie im offiziellen btrfs-Wiki vorgeschlagen . Es ist ein bisschen versteckt in der Beschreibung der mkfs-Option:

-f --force Überschreiben Sie die Blockgeräte zwangsweise, wenn ein vorhandenes Dateisystem erkannt wird. Standardmäßig verwendet mkfs.btrfs libblkid, um nach bekannten Dateisystemen auf den Geräten zu suchen. Alternativ können Sie das Dienstprogramm wipefs verwenden, um die Geräte zu löschen.

user421075
quelle
3
sudo wipefs --all -t btrfs /dev/sda /dev/sdb

arbeitete für mich. Ich musste hinzufügen --all, sudo btrfs fi showum leer aufgetaucht zu sein .

-a, --all

Löschen Sie alle verfügbaren Signaturen. Der Satz gelöschter Signaturen kann mit der Option -t eingeschränkt werden.

Array / Btrfs wurde mit erstellt sudo mkfs.btrfs --label btrfs_6TB_RAID1 --metadata raid1 --data raid1 /dev/sda /dev/sdb --force

Siehe wipefs Dokumentation

user319436
quelle
Ich musste eine -fFlagge hinzufügen , um die Wipefs zu zwingen, für mich zu arbeiten.
Ergohack
0

Alternativ können Sie cryptsetup verwenden, um die btrfs-Informationen zu löschen:

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

Hat für mich gearbeitet.

jaltek
quelle