Контрольная сумма файла устройства цикла точно воспроизводима? - PullRequest
0 голосов
/ 29 сентября 2011

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

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

  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-файла воспроизводима.

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

1 Ответ

1 голос
/ 29 сентября 2011

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

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

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

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

...