我的 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)