BTRFS: eliminazione di un volume


11

Una settimana fa, ho creato un BTRFS aggregato utilizzando due unità flash (32 GB ciascuno) con questo comando: /sbin/mkfs.btrfs -d single /dev/sda /dev/sdb. Poi mi sono reso conto che avrei dovuto usare le partizioni /dev/sda1e /dev/sdb1, invece dei dischi , /dev/sdae /dev/sdbcosì ho ricreato i volumi usando /dev/sd[ab]1.

Il mio problema è che ora ho due volumi:

$ 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

Ho provato diverse opzioni per eliminare il secondo volume (uuid che termina in c145879a3d6a), vale a dire: usando il dispositivo di eliminazione btrfs. Quindi mkfs.btrfs, ha smontato i dispositivi e anche fdisk per ricreare l'intero raid da zero, ma qualunque cosa io faccia, btrfs fi showmostra comunque entrambi i volumi. Come posso rimuovere completamente questi volumi dal mio sistema e avviare tutto da zero? Non importa quello che faccio, i volumi non possono essere rimossi, ovvero:

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

Sto correndo qui kernel 3.12.21 + btrfs v0.19

Risposte:


8

Mi sono imbattuto in problemi simili usando BTRFS.

Per prima cosa, il burro non ha bisogno di essere in una partizione, quindi a meno che non ci fosse una sorta di ragione non menzionata che lo volevi in ​​/ dev / sdb1, hai fatto esattamente quello che ho fatto e ho riscontrato esattamente lo stesso problema.

Dopo aver scavato e cercato di trovare una soluzione pulita per risolverlo, wipefs è la tua migliore opzione - presumibilmente le versioni più recenti possono rimuovere tutte le tracce. Tuttavia, al momento in cui mi sono imbattuto in questo, ho finito per usare solo dd per scrivere zeri su tutto il mio dispositivo, qualcosa di simile al seguente:

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

È il gorilla da 9000 libbre di soluzioni, ma riporterà i tuoi azionamenti a un nuovo stato.

Avvertenza SSD: questo potrebbe essere dannoso per le prestazioni di un SSD (a seconda del produttore) e dovrebbe davvero essere fatto solo con le levette. Vedi questa domanda che offre alcune altre alternative (blkdiscard) che potrebbero essere più veloci / più sicure / migliori per gli SSD. Questa domanda ha anche delle buone risposte che potrebbero fare l'equivalente di questo ma senza azzeramento (funzione di cancellazione sicura).


Grazie Nextraztus! quello sembra aver risolto il problema! Li ricrea ora da zero. Spero che questo sia risolto nelle future versioni di btrfs.
limaunion,

3

Preferirei wipefs -t btrfs /dev/sda1 /dev/sdb1come suggerito nella wiki ufficiale di btrfs . È un po 'nascosto nella descrizione dell'opzione mkfs:

-f --force Sovrascrivi forzatamente i dispositivi a blocchi quando viene rilevato un filesystem esistente. Per impostazione predefinita, mkfs.btrfs utilizzerà libblkid per verificare la presenza di qualsiasi filesystem noto sui dispositivi. In alternativa è possibile utilizzare l'utilità wipefs per cancellare i dispositivi.


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

ha funzionato per me. Ho dovuto aggiungere --allper essere sudo btrfs fi showsvuotato vuoto.

-a, --all

Cancella tutte le firme disponibili. Il set di firme cancellate può essere limitato con l'opzione -t.

Array / Btrfs è stato creato con sudo mkfs.btrfs --label btrfs_6TB_RAID1 --metadata raid1 --data raid1 /dev/sda /dev/sdb --force

Vedi la documentazione di wipefs


Ho dovuto aggiungere la -fbandiera per forzare i wipefs a funzionare per me.
ergohack,

0

In alternativa puoi usare cryptsetup per cancellare le informazioni di btrfs:

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

Ha funzionato per me.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.