BTRFS: Bytenr in Dateipfad auflösen

BTRFS: Bytenr in Dateipfad auflösen

Ich habe mehrere Fehler auf meiner BTRFS-Partition (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

Ich würde gerne wissen, welche Dateien betroffen sind, aber es sind keine Inodes angegeben.

Gibt es eine Möglichkeit, das aufgeführtebytenrWerte zu einem tatsächlichen Dateipfad?

Antwort1

Zur Lösung des Problemsbytenrverwenden Sie den folgenden Befehl:

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

wobei <path>auf das BTRFS-Subvolume der obersten Ebene verweisen sollte, um die betroffenen Dateien in allen Snapshots auflisten zu können (einbytenrkann durch eine Datei verknüpft sein, die in mehreren Snapshots vorhanden ist).

Beispiel:

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

Bitte beachten: subvolid=5Es wird das „BTRFS-Stammverzeichnis“ (oder das Untervolume der obersten Ebene) gemountet.Ein neu erstelltes Dateisystem ist ebenfalls ein Untervolume, das als Top-Level-Volume bezeichnet wird und intern die ID 5 hat.(Kernel.org)

verwandte Informationen