2011-03-08 27 views
0

我負責爲能夠讀取ext2分區的windows編寫讀取程序。ext2「圖像」文件vs真實的ext2設備

對於我的測試中我使用一個驅動器,我格式化爲ext2和我使用的mkfs(即不安裝和Linux下正常工作的文件)

出於某種原因,創建一個文件,當我讀到從超級塊驅動器(真正的)我得到所有正確的元數據(即塊大小,inode計數等),但對文件做同樣的事情返回壞結果(這是沒有意義的)。

2是否有區別?

我使用\。\ X打開驅動器: 並使用mkfs製作文件。

回答

1

分區上的ext2和存儲在一個文件中(實際上沒有;我剛剛檢查過)之間不應該有任何區別。然而,IIRC,如果ext2安裝在裸盤(例如/dev/sda而不是/dev/sda1)上,則主超級塊的偏移量是2048而不是1024。這是爲了容納MBR和其他垃圾。 (我無法在剛剛瀏覽的文檔中找到它,但這在我的腦海中突然出現,因爲我遇到了這種情況。)但是,將它安裝到裸機上有點不尋常,所以我懷疑這是您的問題。

幾年前我寫了一些ext2實用程序,在開始寫手工之後,我轉而使用Ted Ts'o(ext2文件系統創建者)的e2fsprogs,它與header/libraries/etc一起提供。以更靈活和可靠的方式完成所有這些工作。

您可能還需要檢查的偏移0x438到文件/分區幻數0xEF53,並認爲這不是一個ext2/3文件系統如果這是不存在的,在整個超級拉之前,只是作爲一個全面的檢查。

以下是一些可能有幫助的文檔:http://www.nongnu.org/ext2-doc/ext2.html