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

相關內容