天天看點

USB Image Tool:Windows下的直接寫盤利器 【開源硬體佳軟介紹 #2】

前言:略談各種開發闆常用的“系統鏡像”

樹莓派(Raspberry Pi)的使用者經常提出這樣一個問題

[注A]

為什麼不能把.img鏡像拷貝到SD卡中,而必須要用專門的刷卡軟體?

這個問題,我們從磁盤結構講起。磁盤内部所有的存儲區域,必然分為分區表和資料區域兩大塊。而資料區域按分區表分區後,每個分區還被檔案系統封裝和管理

[注B]

  • 分區表占據磁盤最前端的少量存儲區,存儲了磁盤後邊廣大的資料區域如何分區的重要資訊。
  • 資料區域按照分區表的規定,分割成互不影響的若幹個區域。
  • 每個分區的内部,由檔案系統封裝并規定了檔案的存儲方法。讀寫檔案全部都在檔案系統這一層的限制下。

SD卡一般是全盤一個主分區的結構。但Raspberry Pi等Linux開發闆要求SD卡上有自定義的分區結構(一般是一個小FAT32一個大Ext4)。要求使用者自己分區這很麻煩(甚至不可能),是以系統分發往往采用磁盤鏡像檔案的方式。

磁盤鏡像檔案就是繞過上述所有的分層結構,直接從磁盤底層原始資料的第1個位元組開始一個一個讀取并制成.img檔案。這樣所備份的原始資料,自然也就包含了分區表、上層檔案系統等所有複雜的資訊。

安裝系統時,隻要用逆向的方法,仍然繞開磁盤的上層結構,把鏡像檔案的内容直接寫入磁盤底層,就能得到一塊和鏡像制作者完全一緻的SD卡。從這個意義上講,傳播.img檔案其實和直接轉借、傳遞、分享SD卡本身是完全等效的。

這個逆向的寫入操作就叫直接寫盤。如果隻把.img檔案拷貝到SD卡中,那隻是在檔案系統這一層折騰,而沒有修改磁盤前面的分區表部分,得到的卡必然和分發者的原樣不一緻。這就是這個新手問題的答案。

USB Image Tool:Windows下的直接寫盤利器 【開源硬體佳軟介紹 #2】

▲ 用圖檔說明直接寫盤與拷貝檔案的差別。

上:隻拷貝檔案得到的錯誤結果 中:直接寫盤對磁盤的影響 下:直接寫盤的結果(即鏡像作者期待的磁盤原樣)

警告:直接寫盤是一項系統特權操作,錯誤使用可能導緻意外抹除或覆寫磁盤資料。我們關心您的資料安全,确認了軟體有防止錯誤的必要技術手段,也在本文中提供如何安全使用的提示。但仍然必須聲明:軟體和本文的作者均不對使用本軟體可能産生的任何損害負責。

[注C]

專門針對USB存儲器的直接寫盤工具USB Image Tool

對于Raspberry Pi等開發闆,幾乎所有的新手教程都推薦使用Win32DiskImager作為系統安裝工具。但這個工具問題不少:

  1. 不支援中文目錄名(檔案或目錄有中文,會出現123錯誤)
  2. 隻使用盤符區分不同USB裝置,使用者需要自行核實,不友善。
  3. 浏覽檔案,記不住最後使用的目錄,找常用的檔案很麻煩。
  4. 不支援zip或gz格式的壓縮檔案。
  5. 必須先插好SD卡,再開軟體。
  6. 其它小問題:界面風格簡陋;MD5在XP下亂碼等

是以我一直推薦在Windows環境下使用USB Image Tool做USB裝置的直接寫盤。

USB Image Tool:Windows下的直接寫盤利器 【開源硬體佳軟介紹 #2】

使用與特色

通常使用

左側標明磁盤後,按

Restore

選擇一個磁盤鏡像寫卡。按

Backup

讀取卡的内容制作成磁盤鏡像檔案。

Restore

Backup

指令能夠記住上次使用的檔案夾位置。

如果是先開啟軟體再插入磁盤,可能磁盤不會立即顯示出來。這時請點選

Rescan

重新整理左側磁盤清單。

壓縮支援

讀卡和寫卡都支援zip和gzip壓縮的

.img

鏡像。注意

.imz

并非一個專門的格式,其實隻是僅含有一個

.img

的zip壓縮包。

USB Image Tool實際上也可以正确識别

.zip

的壓縮包。(雖然沒有提供這個選項。需要先選擇

All files (*.*)

以便能夠選中

.zip

檔案。)

USB Image Tool:Windows下的直接寫盤利器 【開源硬體佳軟介紹 #2】

收藏夾

USB Image Tool提供了

Favorites

标簽頁,可以收藏一些常用的鏡像檔案一鍵刷寫,無需尋找。

USB Image Tool:Windows下的直接寫盤利器 【開源硬體佳軟介紹 #2】

重置SD卡

Reset

功能,可以把磁盤的分區表部分全部寫成

0x00

這個功能用來把為樹莓派等系統重新分區過(在電腦上看到容量縮小成幾十MB)的卡恢複原狀。重置SD卡後,拔出并重新插入,Windows就會發現分區表被全部清空,而提示使用者格式化磁盤,恢複磁盤全部空間配置設定為一個FAT32分區的原始結構。

安全性保證

USB Image Tool的安全保證主要是兩點:

  • 以裝置名稱差別磁盤而不是盤符。可以直接看到讀卡器、U盤的裝置名稱和磁盤容量。
  • 預設隻顯示存儲卡和U盤,不顯示移動硬碟和本地磁盤。(

    Options

    中提供選項突破這一點)

使用軟體提供的機制,簡單檢查就可以避免刷寫錯誤。

但我們仍然建議您:使用直接寫盤工具時,請最好保證計算機上隻連入了1個需要寫入的USB儲存設備。(防止資料災難,戒之慎之)

其他

  1. 中文檔案和路徑名稱沒有問題。
  2. 一個軟體視窗内,多個讀卡器就可以并行讀寫,互不幹擾,無需開多個視窗
  3. 自動請求管理者特權,不會出現軟體正常啟動但寫入時才提示權限不足

推薦給在Windows下開發Raspberry Pi等Linux開發闆的使用者使用。

對于Linux

Linux下使用dd指令或SUSE Image Writer圖形化工具直接寫盤。

遺憾

USB Image Tool是免費軟體(Freeware)而非開源軟體。會不會将來有人會促成作者将此軟體開源,或幹脆做出一個開源的等效工具呢?

項目首頁與下載下傳:

http://www.alexpage.de/usb-image-tool/
注:Windows XP下運作需要 .net Framework 2.0

注解

[注A]

其實是三個問題,另一個是“為什麼不能直接使用桌上型電腦的Linux作業系統安裝盤?”。這個問題的答案是:系統架構不同(台機=x86,開發闆=ARM/MIPS),造成位于系統最最底層的機器指令層都不通用,上層的就全都更不用說了。

[注B]

這是個簡略的說法。

[注C]

軟體的免責條款,由許可協定中的 AS IS條款 規定。文章的免責條款,由CC知識共享許可協定規定。

繼續閱讀