Btrfs вычисляет контрольную сумму crc32c для каждого файла. Есть ли способ узнать, какая контрольная сумма хранится (в отличие от простого чтения файла и его пересчета)?
Btrfs вычисляет контрольную сумму crc32c для каждого файла.
Это не правильно. Обе файловые системы с контрольной суммой с открытым исходным кодом (ZFS и BTRFS) вычисляют контрольную сумму для каждого логического блока (безымянный источник, используемый Awe, является правильным). Это контрольная сумма данных на диске.
Если в файловой системе включено сжатие (все более распространенный параметр), эта контрольная сумма данных после сжатия. Это означает, что даже если файл помещается в один логический блок, вполне возможно (и все более вероятно), что данные контрольной суммы файловой системы будут для вас бесполезны.
Если вам нужна контрольная сумма файла, лучший способ получить ее - вычислить ее.
Я не верю, что можно извлечь контрольные суммы на уровне блоков из файловой системы ZFS, но поскольку контрольные суммы находятся на уровне блоков, а не на уровне файлов, это, вероятно, в любом случае вам не поможет.
Смысл. Контрольные суммы не создаются для каждого файла btrfs. Упоминается, что @superuser есть патч для добавления функциональности в подкоманду inspect-internal: btrfs inspect-internal dump-csums Этот дамп - для всех блоков, занятых данным файлом - контрольных сумм блоков. Множественное, если файл не помещается в один блок.
Пожалуйста, дайте ссылку на ответ, из которого вы цитируете, и назовите его автора.
Скотт
зачем? Это НЕ ответ на актуальный вопрос. Цитата скорее объясняет, почему это технически невозможно из-за неправильных предположений при постановке вопроса. Это не повторение ответа.
Я думаю, что это невозможно через CLI btrfs, но здесь есть исходный код, который, я надеюсь, может помочь вам прочитать chechsum для одного блока в файловой системе btrfs. Нужен корень.
Ответы:
Это не правильно. Обе файловые системы с контрольной суммой с открытым исходным кодом (ZFS и BTRFS) вычисляют контрольную сумму для каждого логического блока (безымянный источник, используемый Awe, является правильным). Это контрольная сумма данных на диске.
Если в файловой системе включено сжатие (все более распространенный параметр), эта контрольная сумма данных после сжатия. Это означает, что даже если файл помещается в один логический блок, вполне возможно (и все более вероятно), что данные контрольной суммы файловой системы будут для вас бесполезны.
Если вам нужна контрольная сумма файла, лучший способ получить ее - вычислить ее.
источник
Из аналогичного ответа у суперпользователя:
Смысл. Контрольные суммы не создаются для каждого файла btrfs. Упоминается, что @superuser есть патч для добавления функциональности в подкоманду inspect-internal: btrfs inspect-internal dump-csums Этот дамп - для всех блоков, занятых данным файлом - контрольных сумм блоков. Множественное, если файл не помещается в один блок.
источник
Я думаю, что это невозможно через CLI btrfs, но здесь есть исходный код, который, я надеюсь, может помочь вам прочитать chechsum для одного блока в файловой системе btrfs. Нужен корень.
источник