2011年11月3日 星期四

[實驗報告]可以用Windows解包usr.local.etc.tar.bz2嗎?

Cygwin 有 Windows 用的 bzip2.exe 可以把 usr.local.etc.tar.bz2 解成 usr.local.etc.tar。

Cygwin 有 Windows 用的 tar.exe 可以把 usr.local.etc.tar 解成 usr.local.etc 目錄:


表面上看起來,Windows 的 tar.exe 可以解 usr.local.etc.tar 似乎是一件「幸福美滿」的事,事實並非如此。

Cygwin 給 Windows 用的 tar.exe 有多種版本,我試過 1.11、 1.13 、1.25 。

這三種版本可說各有癖性。

相同的 usr.local.etc.tar 給不同版本的 tar.exe 來解包,有可能看到不同的錯誤訊息:


當你發現用某個版本的 tar.exe 解了幾個 usr.local.etc.tar 都沒問題時,不要以為它就都沒問題了。因為看起來沒問題的 tar.exe 在碰到某些特定的 install.img 裡面的 usr.local.etc.tar.bz2 時可能又會出現另外的問題:


暫時性結論:
Linux 的檔案結構與 Windows 不完全相同,因此 Linux 的檔案結構不一定能夠在 Windows 的環境下完整重現。 

在 Windows 下解包 usr.local.etc.tar.bz2 ,建議在 .bat 批次檔的適當地方加入 pause,以便觀察出現在CMD視窗中的異常訊息。 寫在.bat 批次檔中的tar.exe,在解包過程中就算遇到異常,它還是照樣跑完整個行程,因此,只要一不留意,就有可能誤以為每次都正常。

在 Windows 下解包 squashfs1-img 、yaffs2_1.img 也會有類似的情形。

暫時性結論:
要解包 usr.local.etc.tar.bz2 、squashfs1-img 、yaffs2_1.img 等檔案,還是建議在 Linux 下為之較為妥當。





.

沒有留言: