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 if=/dev/zero of=/dev/sdX bs=4M

Це горила на 9000 фунтів рішень, але вона поверне ваші пальці до нового стану.

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


Дякую Nextraztus! що, здається, вирішило проблему! Я зараз відтворять їх з нуля. Сподіваюся, це виправлено в майбутніх версіях btrfs.
limaunion

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порожнім.

-а, - всі

Стерти всі наявні підписи. Набір стертих підписів може бути обмежений опцією -t.

Масив / 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.