Btrfs обчислює контрольну суму crc32c для кожного файлу. Чи є спосіб я побачити, яка контрольна сума зберігається (на відміну від простого читання файлу та його перерахунку)?
Btrfs обчислює контрольну суму crc32c для кожного файлу. Чи є спосіб я побачити, яка контрольна сума зберігається (на відміну від простого читання файлу та його перерахунку)?
Відповіді:
Btrfs обчислює контрольну суму crc32c для кожного файлу.
Це неправильно. Обидві файлові системи з відкритим кодом контрольної суми (ZFS та BTRFS) обчислюють контрольну суму для кожного логічного блоку (правильне використання неназваного джерела Awe правильне). Це контрольна сума даних на диску.
Якщо у файловій системі увімкнено стиснення (все більш поширене налаштування), ця контрольна сума складається з даних після стиснення. Це означає, що навіть якщо файл вміщується в один логічний блок, можливо (і все більш імовірно), що дані контрольної суми файлової системи вам будуть марні.
Якщо вам потрібна контрольна сума файлів, найкращим способом її отримання було б її обчислити.
З аналогічної відповіді у суперпользователя:
Я не вірю, що можна витягти контрольні суми рівня блоку з файлової системи ZFS, але оскільки контрольні суми знаходяться на рівні блоку, а не на рівні файлу, це, мабуть, не допоможе тобі.
Значення. Контрольні суми не створюються в btrfs за файлом. Згадується @superuser є патч для додавання функціональності до внутрішньої підкоманди inspect: btrfs перевіряють внутрішній dump-csums цей дамп - для всіх блоків, зайнятих заданим файлом, - блок контрольних сум. Множина, якщо файл не вписується в один блок.
Я думаю, що це неможливо через CLI btrfs, але тут є вихідний код, який, я сподіваюся, може допомогти вам прочитати чехсу для одного блоку у файловій системі btrfs. Корінь потребує.