我试图按照btrfs UseCases指令在“降级模式”下创建一个btrfs RAID-1文件系统,但遇到了致命的断言错误。为什么这是失败的,有什么解决办法吗?
我所遵循的指示是:
mkfs.btrfs和btrfs 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
#编辑:
原来,文件系统是不可挂载的:
# 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失败了,有什么解决办法吗?
发布于 2012-10-06 07:11:30
要挂载降级数组,必须使用degraded挂载选项:
mount -o degraded /dev/sdd1 /mnt/big2我不明白您对小型loop1分区做了什么。这对于挂载降级数组来说并不是必需的。您正在创建一个raid1数组,其中一个成员为2GB,一个成员为1.36TB。它们之间的区别是三个数量级,您可以期望的最佳结果是有一个2GB的数组。但元数据并非无关紧要。众所周知,您不能创建小于256 is的btrfs文件系统。
通常,在创建raid1数组时,数组的两个成员都应该大小相同。最近的btrfs文档更新为可以创建非均匀数组,并且具有最小数组成员的大小。但是在过去,这样的数组填充最小的成员比天真的预期要快得多。
因此,不要创建这样一个不对称数组,和/或不要使用这样的小数组成员。(最重要的是使用-o degraded)
https://serverfault.com/questions/373063
复制相似问题