2011-09-29 42 views
0

我該如何掛載和卸載文件作爲循環設備,並且確切地說相同的MD5校驗和事後? (Linux)的循環設備文件的校驗和完全可重現嗎?

這裏的工作流程:

  1. 我採取固定模板文件,其中包含一個準備 EXT2根文件系統的全新副本。
  2. 文件安裝與mount -t ext2 <file> <mountpoint> -o loop,sync,noatime,nodiratime
  3. (在這裏,一些文件將在未來增加 - 而忽視這一會兒,專注於加載/卸載)
  4. umount
  5. 採取的MD5校驗和文件。
  6. 我希望每次執行完全相同的步驟時都具有相同的可重複性校驗和。

然而,當我重複這個過程(記住:服用模板文件的新鮮複印件),我總是得到一個不同的校驗。

我假設一方面還有一些時間戳是在內部設置的(我試圖通過noatime選項來避免這種情況),另一方面,Linux以自己的方式管理文件系統,我沒有任何影響。這意味着:內部的文件和時間戳可能是相同的,但是文件系統在文件內的排列方式可能不同,因此是隨機的。

相比之下,當我創建一個壓縮文件的文件樹,並且我用定義的時間戳觸及了所有文件時,zip文件的校驗和是可重現的。

有沒有辦法保持安裝或文件訪問控制,因爲我需要呢?

回答

1

它取決於磁盤格式上的文件系統。我相信ext2保持最少的安裝計數器 - 文件系統安裝了多少次。我不記得任何掛載選項告訴它不要寫這個計數器(也許還有其他數據項),但你可以:

a。只讀文件系統。那麼校驗和當然不會改變。

b。更改ext2文件系統內核驅動程序以添加一個選項,以不更改計數器和可能的其他數據位。

更有趣的問題是爲什麼你感興趣的是這樣一個選項。我認爲可能有更好的方法來實現你想要做的事情 - 不管它是什麼。

+0

'tune2fs'可以列出並重置一些內部變量。 –

+0

@Banthar是真的,但由於他試圖保持相同的校驗和,因此更改校驗和(使用mount/umount)並將其更改回來(使用tune2fs)與保持相同的校驗和不完全相同 – gby

+0

Read-只有在稍後添加一些文件時纔有用。駭客的內核驅動程序...我不打算走那麼遠...... ;-)。這個想法是爲嵌入式產品建立一個文件系統。出於監管原因,必須證明每個文件的身份。我們使用我們複製的單個文件來做到這一點,而且當我們可以使用已部署的文件系統來做到這一點時也很方便。 – minastaros