BTRFS: удаление тома


11

Неделю назад я создал BTRFS бассейне с использованием двух флэш - накопителей (32 Гб каждый) с помощью следующей команды: /sbin/mkfs.btrfs -d single /dev/sda /dev/sdb. Тогда я понял , что я должен использовать разделы /dev/sda1и /dev/sdb1, вместо дисков /dev/sdaи /dev/sdb, таким образом , я воссоздал объемы использования /dev/sd[ab]1.

Моя проблема в том, что теперь у меня есть два тома:

$ 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

Я пробовал разные варианты, чтобы удалить второй том (uuid оканчивающийся на c145879a3d6a), то есть: с помощью устройства удаления btrfs. Затем mkfs.btrfs, размонтировал устройства, а также fdisk, чтобы воссоздать весь рейд с нуля, но, что бы я ни делал, btrfs fi showвсе равно показывает оба тома. Как я могу полностью удалить эти тома из моей системы и начать все с нуля? Независимо от того, что я делаю, тома не могут быть удалены, то есть:

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

Я запускаю здесь ядро ​​3.12.21 + btrfs v0.19

Ответы:


8

Я сам сталкивался с подобными проблемами, используя BTRFS.

Перво-наперво - масло не обязательно должно быть в разделе, поэтому, если не было какой-то не упомянутой причины, по которой вы хотели сделать это в / dev / sdb1, вы сделали именно то, что я сделал, и столкнулись с точно такой же проблемой.

После того, как вы покопались и попытались найти чистое решение, чтобы исправить это, wipefs - ваш лучший вариант - предположительно, более новые версии могут удалить все следы. Однако в то время, когда я столкнулся с этим, я просто использовал dd для записи нулей на все устройство, что-то вроде следующего:

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

Это 9000 фунтов горилла решений, но он вернет ваши приводы в новое состояние.

Предупреждение SSD: это может быть вредным для производительности SSD (в зависимости от производителя) и должно быть сделано только на флэш-накопителях. Посмотрите на этот вопрос, который предлагает некоторые другие альтернативы (blkdiscard), которые могут быть быстрее / безопаснее / лучше для твердотельных накопителей. На этот вопрос также есть несколько хороших ответов, которые могут сделать то же самое, но без обнуления (функция безопасного стирания).


Спасибо Nextraztus! кажется, это решило проблему! Я воссоздаю их сейчас с нуля. Надеюсь, это будет исправлено в будущих версиях btrfs.
Лимаунион

3

Я бы предпочел, wipefs -t btrfs /dev/sda1 /dev/sdb1как предложено в официальной вики btrfs . Это немного скрыто в описании mkfs-option:

-f --force Принудительно перезаписать блочные устройства при обнаружении существующей файловой системы. По умолчанию mkfs.btrfs будет использовать libblkid для проверки любой известной файловой системы на устройствах. В качестве альтернативы вы можете использовать утилиту wipefs для очистки устройств.


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

работал на меня. Я должен был добавить, --allчтобы sudo btrfs fi showоказаться пустым.

-a, --all

Сотрите все доступные подписи. Набор стертых подписей может быть ограничен с помощью опции -t.

Array / Btrfs был создан с sudo mkfs.btrfs --label btrfs_6TB_RAID1 --metadata raid1 --data raid1 /dev/sda /dev/sdb --force

Смотрите документацию wipefs


Мне пришлось добавить -fфлаг, чтобы заставить wipefs работать на меня.
ergohack

0

В качестве альтернативы вы можете использовать cryptsetup, чтобы стереть информацию btrfs:

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

Работал на меня.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.