查找设备上未被文件系统使用的所有块

查找设备上未被文件系统使用的所有块

如何列出设备上当前正在使用的所有块不是被文件系统使用?有问题的文件系统是一个 btrfs RAID1,带有两个 LUKS 加密硬盘和一个 Arch Linux。

我尝试过fstrim /path/to/fs用 记录所有内容blktrace。这实际上有效,但前提是硬盘驱动器支持 TRIM - 即不是这里的情况。 (我已经设置dmcrypt允许TRIM)。

这个问题背后的原因是这样的:

两块传统硬盘组成RAID,mdadm上面是LVM+ext4。现在,这两个硬盘已设置为 LUKS、btrfs RAID1,并将数据写入其中。

不幸的是,在覆盖操作之前并未备份所有内容。硬盘驱动器有不是在打开 LUKS 之前已被随机数据覆盖,因此旧数据存在于当前文件系统中尚未写入任何内容的地方(我已经验证了这一点)。

现在我正在努力尽可能地恢复。我的恢复策略如下:

btrfs 文件系统现在使用的所有内容显然都可以不是是旧数据。所以我想找到设备上当前的所有块不是正在被 btrfs 使用。然后,我想创建一个与这些硬盘驱动器大小相同的高清图像,其中包含所有未使用的块。那将是我的旧数据。

实际上,我真的不需要发出真正的修剪,我只需要知道修剪会做什么。或者,只需找到文件系统当前未使用的所有块,这是我的问题。

有什么办法吗?

相关内容