我在没有raid的6磁盘阵列上有一个btrfs分区(raid10中的元数据,但单个数据),其中一个磁盘就死了。
所以我丢失了一些数据,好吧,我知道。
但有两个问题:
是否有可能知道(使用元数据我猜)我丢失了哪些数据?
是否有可能做某种" btrfs删除丢失"在这种设置上,为了恢复对我的其他数据的访问权限,或者我必须在新分区上复制我的所有数据?
编辑:为了清楚起见,我可以使用$data =[['id'=>1, 'parent_id'=>0,'name'=>'first'],
['id'=>2, 'parent_id'=>0,'name'=>'second'],
['id'=>3, 'parent_id'=>1,'name'=>'third'],
['id'=>4, 'parent_id'=>3,'name'=>'four'],
['id'=>5, 'parent_id'=>2,'name'=>'five'],
['id'=>7, 'parent_id'=>9,'name'=>'five'],
['id'=>8, 'parent_id'=>2,'name'=>'five'],
['id'=>9, 'parent_id'=>2,'name'=>'five'],
['id'=>10, 'parent_id'=>9,'name'=>'five'],
['id'=>6, 'parent_id'=>1,'name'=>'six']];
$result = makeTree($data, 'id', 'parent_id', 'sub', 0);
和btrfs fi df / Data
mount -o recovery,ro,degraded
答案 0 :(得分:0)
我是一个非常非常幸运的人,我认为我解决了我的问题(感谢btrfs邮件列表的帮助)。
在我的情况下" btrfs-debug-tree -t 3 / dev / sda6"没有提到任何地方丢失的磁盘(数据或元数据)。所以在丢失的设备中根本没有任何东西。
因此,使用this patch修补内核允许我将数组装入rw中降级,简单btrfs device remove missing
就可以了。
所以我的数组已修复,我的数据似乎很好(正在进行擦洗)
我学到的一件事是永远不应该使用单一模式。