Назад | Перейти на главную страницу

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

Неделю назад я создал пул 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

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

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

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

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

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

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

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

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

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

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

-a, --all

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

Массив / Btrfs был создан с помощью sudo mkfs.btrfs --label btrfs_6TB_RAID1 --metadata raid1 --data raid1 /dev/sda /dev/sdb --force

Видеть документация wipefs

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

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

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