一个星期前,我使用两个闪存驱动器(每个32GB)使用以下命令创build一个BTRFS池: /sbin/mkfs.btrfs -d single /dev/sda /dev/sdb 。 然后我意识到我应该使用分区/dev/sda1和/dev/sdb1而不是磁盘/dev/sda和/dev/sdb ,因此我使用/dev/sd[ab]1重新创build了卷。
我的问题是,现在我有两卷:
$ 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以重新创build整个raid,但无论我做什么, 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中find某种未提及的理由,否则你就是这样做了,并且遇到了同样的问题。
经过挖掘并试图find一个干净的解决scheme来解决它,wipefs是你最好的select – 据推测新版本可以删除所有的痕迹。 然而,当我碰到这个时候,我最终只是用dd来写入零到我的整个设备,如下所示:
dd if=/dev/zero of=/dev/sdX bs=4M
这是9000磅的大猩猩的解决scheme,但它会把你的拇指驱回到一个新的状态。
SSD警告:这可能会损害SSD的性能(取决于制造商),应该只能在拇指驱动器上完成。 看到这个问题提供了一些其他的替代品(blkdiscard),可能会更快/更安全/更好的SSD。 这个问题也有一些很好的答案,可以做相同的,但没有归零(安全擦除function)。
作为替代scheme,您可以使用cryptsetup来擦除btrfs信息:
cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/sdXY
为我工作。
我愿意wipefs -t btrfs /dev/sda1 /dev/sdb1正如btrfs官方wiki所build议的。 在mkfs-option的描述中有点隐藏:
-f --force检测到现有文件系统时强制覆盖块设备。 默认情况下,mkfs.btrfs将利用libblkid检查设备上的任何已知文件系统。 或者,您可以使用wipefs实用程序来清除设备。