Контрольная сумма файла устройства петли точно воспроизводима?

как я могу смонтировать и размонтировать файл как петлевое устройство и впоследствии получить точно такую ​​же такую ​​же контрольную сумму MD5? (Линукс)

Вот рабочий процесс:

  1. Я беру новую копию файла фиксированного шаблона, который содержит подготовленную корневую файловую систему ext2.
  2. Файл монтируется с помощью mount -t ext2 <file> <mountpoint> -o loop,sync,noatime,nodiratime
  3. (Здесь некоторые файлы будут добавлены в будущем, но пока игнорируйте это и сосредоточьтесь на mount / umount )
  4. umount
  5. Возьмите сумму MD5 файла.
  6. Я ожидаю одну и ту же воспроизводимую контрольную сумму каждый раз, когда выполняю одни и те же шаги.

Однако, когда я повторяю процесс (помните: беру свежую копию файла шаблона), я всегда получаю другую контрольную сумму.

Я предполагаю, с одной стороны, что некоторые временные метки все еще устанавливаются внутри (я пытался избежать этого с помощью опции noatime), или, с другой стороны, Linux управляет файловой системой по-своему, на что я не имею никакого влияния. Это означает: файлы и временные метки внутри могут быть одинаковыми, но способ организации файловой системы внутри файла может быть другим и, следовательно, случайным.

Для сравнения, когда я создаю zip-файл дерева файлов и обращаюсь ко всем файлам с определенной отметкой времени, контрольная сумма zip-файла воспроизводима.

Есть ли способ сохранить монтирование или доступ к файлам, которые мне нужны?


person Ingmar    schedule 29.09.2011    source источник


Ответы (1)


это зависит от файловой системы на формате диска. Я считаю, что ext2 keep наименьший счетчик монтирования - сколько раз монтировалась файловая система. Я не помню какой-либо опции монтирования, чтобы запретить запись этого счетчика (и, возможно, других элементов данных), но вы можете:

а. смонтировать файловую систему только для чтения. Тогда контрольная сумма, конечно, не изменится.

б. Измените драйвер ядра файловой системы ext2, чтобы добавить возможность не изменять счетчик и возможные другие биты данных.

Более интересный вопрос, почему вас интересует именно такой вариант. Я думаю, что, вероятно, есть лучший способ добиться того, что вы пытаетесь сделать - что бы это ни было.

person gby    schedule 29.09.2011
comment
tune2fs может отображать и сбрасывать некоторые внутренние переменные. - person Piotr Praszmo; 29.09.2011
comment
@Banthar, это правда, но поскольку он пытается сохранить ту же контрольную сумму, изменение контрольной суммы (с помощью mount / umount), а затем изменение ее обратно (с помощью tune2fs) - это не совсем то же самое, что сохранение той же контрольной суммы. - person gby; 29.09.2011
comment
Только чтение бесполезно, когда я добавляю некоторые файлы позже. И взломать драйвер ядра... Я не собирался заходить так далеко... ;-). Идея состоит в том, чтобы иметь файловую систему для встроенного продукта. По нормативным причинам необходимо подтверждать подлинность каждого файла. Мы делаем это с отдельными файлами, в которые копируем, и это было удобно, когда мы могли делать это и с развернутой файловой системой. - person Ingmar; 29.09.2011