如何创buildbtrfs RAID-1文件系统(mkfs.btrfs中的断言错误)?

我尝试通过遵循btrfs UseCases指令在“降级模式”下创build一个btrfs RAID-1文件系统,但却遇到了一个致命的断言错误。 为什么这是失败的,是否有任何解决方法?

我遵循的指示是:

https://btrfs.wiki.kernel.org/index.php/UseCases#How_can_I_create_a_RAID-1_filesystem_in_.22degraded_mode.22.3F

mkfs.btrfsbtrfs filesystem show命令的输出是:

 # mkfs.btrfs -m raid1 -d raid1 /dev/sdd1 /dev/loop1 WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL WARNING! - see http://btrfs.wiki.kernel.org before using failed to read /dev/sr0 adding device /dev/loop1 id 2 mkfs.btrfs: volumes.c:802: btrfs_alloc_chunk: Assertion `!(ret)' failed. zsh: abort (core dumped) mkfs.btrfs -m raid1 -d raid1 /dev/sdd1 /dev/loop1 # btrfs filesystem show failed to read /dev/sr0 Label: none uuid: 773908b8-acca-4c30-85c5-6642b06de22b Total devices 1 FS bytes used 28.00KB devid 1 size 223.13GB used 2.04GB path /dev/sda5 Label: none uuid: 0f06f1a8-5f5f-4b92-a55c-b827bcbcc840 Total devices 2 FS bytes used 24.00KB devid 2 size 2.00GB used 0.00 path /dev/loop1 devid 1 size 1.36TB used 20.00MB path /dev/sdd1 Btrfs Btrfs v0.19 # 

编辑:

事实certificate,文件系统是不可安装的:

 # mount /dev/sdd1 /mnt/big2 mount: wrong fs type, bad option, bad superblock on /dev/sdd1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so # 

那么,为什么mkfs失败了,是否有任何解决方法?

为了安装降级arrays,您必须使用degraded安装选项:

  mount -o degraded /dev/sdd1 /mnt/big2 

我不明白你在做什么与小loop1分区。 这不是装载降级arrays所必需的。 你正在创build一个raid1数组,其中一个成员是2GB,一个成员是1.36TB。 这两者之间的差异是三个数量级,而最好的预期是你将拥有一个2GB的数组。 但是元数据并不是无关紧要的。 据了解,你不能创build一个小于256MB的btrfs文件系统。

通常在创buildraid1数组时,数组的两个成员的大小应该是相同的。 最近的btrfs文档已经更新为可以创build非均匀数组,并且将具有最小数组成员的大小。 但是在过去,这样的arrays会比天真预期的要快得多。

所以,不要创build这样的非对称数组,并且/或者不要使用这样的小数组成员。 (并且大部分都使用-o degraded