如何列出设备上当前正在使用的所有块不是被文件系统使用?有问题的文件系统是一个 btrfs RAID1,带有两个 LUKS 加密硬盘和一个 Arch Linux。
我尝试过fstrim /path/to/fs
用 记录所有内容blktrace
。这实际上有效,但前提是硬盘驱动器支持 TRIM - 即不是这里的情况。 (我已经设置dmcrypt
允许TRIM)。
这个问题背后的原因是这样的:
两块传统硬盘组成RAID,mdadm
上面是LVM+ext4。现在,这两个硬盘已设置为 LUKS、btrfs RAID1,并将数据写入其中。
不幸的是,在覆盖操作之前并未备份所有内容。硬盘驱动器有不是在打开 LUKS 之前已被随机数据覆盖,因此旧数据存在于当前文件系统中尚未写入任何内容的地方(我已经验证了这一点)。
现在我正在努力尽可能地恢复。我的恢复策略如下:
btrfs 文件系统现在使用的所有内容显然都可以不是是旧数据。所以我想找到设备上当前的所有块不是正在被 btrfs 使用。然后,我想创建一个与这些硬盘驱动器大小相同的高清图像,其中包含所有未使用的块。那将是我的旧数据。
实际上,我真的不需要发出真正的修剪,我只需要知道修剪会做什么。或者,只需找到文件系统当前未使用的所有块,这是我的问题。
有什么办法吗?