具有单一数据模式和磁盘故障的多设备btrfs

时间:2016-09-15 09:37:39

标签: data-recovery btrfs

我在没有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

1 个答案:

答案 0 :(得分:0)

我是一个非常非常幸运的人,我认为我解决了我的问题(感谢btrfs邮件列表的帮助)。

在我的情况下" btrfs-debug-tree -t 3 / dev / sda6"没有提到任何地方丢失的磁盘(数据或元数据)。所以在丢失的设备中根本没有任何东西。

因此,使用this patch修补内核允许我将数组装入rw中降级,简单btrfs device remove missing就可以了。

所以我的数组已修复,我的数据似乎很好(正在进行擦洗)

我学到的一件事是永远不应该使用单一模式。