BTRFS:将 bytenr 解析为文件路径

BTRFS:将 bytenr 解析为文件路径

我的 BTRFS 分区(SSD -> luks -> BTRFS)上有几个错误:

btrfs check --check-data-csum -p --force /dev/mapper/sda3_crypt
...
mirror 0 bytenr 1337316519936 csum 850178701 expected csum 2442214357
mirror 1 bytenr 1337316519936 csum 850178701 expected csum 2442214357
mirror 1 bytenr 1337316524032 csum 3411875857 expected csum 208994536

我想知道哪些文件受到影响,但没有给出索引节点。

有没有办法解决列出的问题拜腾尔值到实际的文件路径?

答案1

为了解决拜腾尔使用以下命令:

btrfs inspect-internal logical-resolve <bytenr> <path>

其中<path>应指向 BTRFS 顶级子卷,以便能够列出所有快照中受影响的文件(一个拜腾尔可能由存在于多个快照中的文件链接)。

例子:

mkdir /mnt/btrfs-root
mount -t btrfs -o subvolid=5 /dev/sda2 /mnt/btrfs-root

btrfs inspect-internal logical-resolve 1337316519936 /mnt/btrfs-root

umount /mnt/btrfs-root && rmdir /mnt/btrfs-root

请注意:subvolid=5将挂载“BTRFS root”(或顶级子卷)。新创建的文件系统也是一个子卷,称为顶级,内部有一个 id 5。内核.org

相关内容