如何取消删除 btrfs 多磁盘卷上的目录

如何取消删除 btrfs 多磁盘卷上的目录

我是 btrfs 新手,遇到了一个问题。我最初将此作为对相同问题的回答发布,但我被告知我应该再次提问。

首先,我已经用尽了 Google 并尝试了 btrfs-undelete 脚本。我没有成功恢复我的目录。我需要尽快恢复它,因为我们需要的重要文件也位于驱动器上,而且我已将其卸载,直到我们弄清楚为止。

我尝试了几个块但仍然出现同样的错误。

我已经尝试过 btrfs 恢复,如您在此处所见。

$ sudo btrfs restore /dev/sde /media -v -i -t 1060780900352 父 transid 验证在 1060780900352 上失败,需要 39805,找到 39797 父 transid 验证在 1060780900352 上失败,需要 39805,找到 39797 父 transid 验证在 1060780900352 上失败,需要 39805,找到 39797 父 transid 验证在 1060780900352 上失败,需要 39805,找到 39797 忽略 transid 失败 无法设置范围树 无法读取 fs 根目录:-2 范围缓冲区泄漏:启动 1060780900352 长度 16384

我的设置:我在 raid 0 中的单个 btrfs 集群中有两个 4TB 驱动器。我知道,无需提及这个想法有多糟糕。所以我的妻子正在学习 Linux,好吧,假设她再也不允许靠近服务器了。她运行了命令 sudo rm -rf /media/Movies 试图删除单个文件,这就是我们来这里的原因。

好吧,那个文件夹中有 1.5TB 的数百个文件。我要么再花 2 个月重新翻录我的所有 DVD,要么恢复我的目录。我真的很惊讶 btrfs 没有更好的文件恢复文档。或者可以用于此目的的工具。当她告诉我这件事时,我做的第一件事就是停止所有写入该挂载的进程,从 fstab 中删除 btrfs 卷并重新启动。出于某种原因,umount 在 btrfs 挂载上对我来说从来都不起作用。

这是部分 lsblk。sde 和 sdb1 都位于卷中。我仍然不确定为什么 sde 没有显示分区。

名称 MAJ:MIN RM 大小 RO 类型 挂载点 sdb 8:16 0 3.7T 0 磁盘 └─sdb1 8:17 0 3.7T 0 部分 sde 8:64 0 3.7T 0 磁盘 sdf 8:80 0 1.8T 0 磁盘 └─sdf1 8:81 0 1.8T 0 部分 /media

这是我在 fstab 中的条目:UUID=7ffdecf9-af9a-4299-b697-4fc375bac3b1 /media btrfs defaults

因此,当我运行 sudo btrfs restore -s /dev/sde /tmp 时,它恢复了一些文件。我不得不停止它,因为我无法在根分区上存储 4TB。我想从 sde 和 sdb1 恢复 /media/Movies。或者我愿意恢复快照,但只恢复该子目录,因为其他数据每小时都会更改。

那么我该从哪里开始呢?我已经运行了 btrfs-find-root /dev/sde 和 sdb1 并获得了输出文件,但我不想运行 btrfs-undelete 脚本,因为我得到了上述错误。我还注意到从这里获得的 btrfs-undelete 脚本中有一行奇怪的代码:http://comments.gmane.org/gmane.comp.file-systems.btrfs/22560

在脚本中,它引用了 /dev/mapper/queen-home 现在我已经全职使用 Linux 一年了,但我从未听说过该文件。

有什么想法、问题或意见吗?我很绝望,所以任何能给我帮助的人都会非常感激

相关内容