web-dev-qa-db-ja.com

BTRFS:ボリュームの削除

1週間前、次のコマンドを使用して、2つのフラッシュドライブ(それぞれ32GB)を使用してBTRFSプールを作成しました:/sbin/mkfs.btrfs -d single /dev/sda /dev/sdb。次に、ディスク/dev/sda1/dev/sdb1ではなく、パーティション/dev/sda/dev/sdbを使用する必要があることに気付き、/dev/sd[ab]1を使用してボリュームを再作成しました。

私の問題は、2つのボリュームがあることです。

$ 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

2番目のボリューム(uuidで終わるc145879a3d6a)を削除するために、さまざまなオプションを試しました。つまり、btrfs deleteデバイスを使用します。次に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を実行しています

11
limaunion

BTRFSを使用して自分でも同様の問題に遭遇しました。

まず最初に-バターはパーティションにある必要はありません。そのため、/ dev/sdb1でそれを望む何らかの言及されていない理由がない限り、あなたは私がしたことを正確に行い、まったく同じ問題に遭遇しました。

掘り下げて修正するためのクリーンなソリューションを見つけようとした後、wipefsが最良のオプションです。おそらく、新しいバージョンではすべてのトレースが削除される可能性があります。しかし、これに遭遇したとき、次のようにddを使用してデバイス全体にゼロを書き込むだけになりました。

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

9000ポンドのソリューションのゴリラですが、サムドライブを元の状態に戻します。

SSD警告:これはSSDのパフォーマンスに悪影響を与える可能性があり(メーカーによって異なります)、実際にはサムドライブでのみ実行する必要があります。 この質問 を参照してください。これは、SSDに対してより高速/安全/優れている可能性のある他のいくつかの代替案(blkdiscard)を提供します。 この質問 には、これと同等ですがゼロ化なしの安全な消去機能(安全な消去機能)がいくつかあります。

8
Sam

wipefs -t btrfs /dev/sda1 /dev/sdb1official btrfs wiki で提案されています。これは、mkfs-optionの説明に少し隠されています。

-f --force既存のファイルシステムが検出された場合、ブロックデバイスを強制的に上書きします。デフォルトでは、mkfs.btrfsはlibblkidを使用して、デバイス上の既知のファイルシステムをチェックします。または、wipefsユーティリティを使用してデバイスをクリアすることもできます。

3
user421075
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のドキュメントを参照

3
user319436

代わりに、cryptsetupを使用してbtrfs情報を消去することもできます。

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

私のために働いた。

0
jaltek