Btrfs berechnet für jede Datei eine crc32c-Prüfsumme. Kann ich sehen, welche Prüfsumme gespeichert ist (anstatt nur die Datei zu lesen und neu zu berechnen)?
Btrfs berechnet für jede Datei eine crc32c-Prüfsumme. Kann ich sehen, welche Prüfsumme gespeichert ist (anstatt nur die Datei zu lesen und neu zu berechnen)?
Antworten:
Btrfs berechnet für jede Datei eine crc32c-Prüfsumme.
Das ist nicht richtig. Beide Open-Source-Prüfsummen-Dateisysteme (ZFS und BTRFS) berechnen für jeden logischen Block eine Prüfsumme (die verwendete unbenannte Quelle Awe ist korrekt). Dies ist eine Prüfsumme der Daten auf der Festplatte.
Wenn für das Dateisystem die Komprimierung aktiviert ist (eine zunehmend verbreitete Einstellung), handelt es sich bei dieser Prüfsumme um die Daten nach der Komprimierung. Dies bedeutet, dass selbst wenn die Datei in einen logischen Block passt, die Prüfsummen-Daten des Dateisystems für Sie möglicherweise (und mit zunehmender Wahrscheinlichkeit) unbrauchbar werden.
Wenn Sie eine Dateiprüfsumme benötigen, berechnen Sie diese am besten.
Aus einer ähnlichen Antwort beim Superuser:
Ich glaube nicht, dass es möglich ist, die Prüfsummen auf Blockebene aus einem ZFS-Dateisystem zu extrahieren, aber da sich die Prüfsummen auf Blockebene und nicht auf Dateiebene befinden, hilft es Ihnen wahrscheinlich trotzdem nicht.
Bedeutung. Prüfsummen werden von btrfs nicht pro Datei erstellt. Es wird @superuser erwähnt, dass es einen Patch gibt, der dem inspect-internal-Unterbefehl eine Funktionalität hinzufügt: btrfs inspect-internal dump-csums Mit diesem Befehl werden - für alle von einer bestimmten Datei belegten Blöcke - die Blockprüfsummen ausgegeben. Mehrere, es sei denn, die Datei passt in einen Block.
Ich denke, dass dies nicht über die btrfs-CLI möglich ist, aber hier gibt es einen Quellcode, der Ihnen hoffentlich dabei helfen könnte, chechsum für einen einzelnen Block in einem btrfs-Dateisystem zu lesen. Benötigt root.