本期的《開(kāi)源軟件佳軟介紹》,我們討論直接寫(xiě)盤(pán)。
樹(shù)莓派(Raspberry Pi)的用戶經(jīng)常提出這樣一個(gè)問(wèn)題[注A]
:
為什么不能把.img鏡像拷貝到SD卡中,而必須要用專(zhuān)門(mén)的刷卡軟件?
這個(gè)問(wèn)題,我們從磁盤(pán)結(jié)構(gòu)講起。磁盤(pán)內(nèi)部所有的存儲(chǔ)區(qū)域,必然分為分區(qū)表和數(shù)據(jù)區(qū)域兩大塊。而數(shù)據(jù)區(qū)域按分區(qū)表分區(qū)后,每個(gè)分區(qū)還被文件系統(tǒng)封裝和管理[注B]
:
SD卡一般是全盤(pán)一個(gè)主分區(qū)的結(jié)構(gòu)。但Raspberry Pi等Linux開(kāi)發(fā)板要求SD卡上有自定義的分區(qū)結(jié)構(gòu)(一般是一個(gè)小FAT32一個(gè)大Ext4)。要求用戶自己分區(qū)這很麻煩(甚至不可能),所以系統(tǒng)分發(fā)往往采用磁盤(pán)鏡像文件的方式。
磁盤(pán)鏡像文件就是繞過(guò)上述所有的分層結(jié)構(gòu),直接從磁盤(pán)底層原始數(shù)據(jù)的第1個(gè)字節(jié)開(kāi)始一個(gè)一個(gè)讀取并制成.img文件。這樣所備份的原始數(shù)據(jù),自然也就包含了分區(qū)表、上層文件系統(tǒng)等所有復(fù)雜的信息。
安裝系統(tǒng)時(shí),只要用逆向的方法,仍然繞開(kāi)磁盤(pán)的上層結(jié)構(gòu),把鏡像文件的內(nèi)容直接寫(xiě)入磁盤(pán)底層,就能得到一塊和鏡像制作者完全一致的SD卡。從這個(gè)意義上講,傳播.img文件其實(shí)和直接轉(zhuǎn)借、傳遞、分享SD卡本身是完全等效的。
這個(gè)逆向的寫(xiě)入操作就叫直接寫(xiě)盤(pán)。如果只把.img文件拷貝到SD卡中,那只是在文件系統(tǒng)這一層折騰,而沒(méi)有修改磁盤(pán)前面的分區(qū)表部分,得到的卡必然和分發(fā)者的原樣不一致。這就是這個(gè)新手問(wèn)題的答案。
警告:直接寫(xiě)盤(pán)是一項(xiàng)系統(tǒng)特權(quán)操作,錯(cuò)誤使用可能導(dǎo)致意外抹除或覆蓋磁盤(pán)數(shù)據(jù)。我們關(guān)心您的數(shù)據(jù)安全,確認(rèn)了軟件有防止錯(cuò)誤的必要技術(shù)手段,也在本文中提供如何安全使用的提示。但仍然必須聲明:軟件和本文的作者均不對(duì)使用本軟件可能產(chǎn)生的任何損害負(fù)責(zé)。[注C]
對(duì)于Raspberry Pi等開(kāi)發(fā)板,幾乎所有的新手教程都推薦使用Win32DiskImager作為系統(tǒng)安裝工具。但這個(gè)工具問(wèn)題不少:
所以我一直推薦在Windows環(huán)境下使用USB Image Tool做USB設(shè)備的直接寫(xiě)盤(pán)。
左側(cè)選定磁盤(pán)后,按Restore
選擇一個(gè)磁盤(pán)鏡像寫(xiě)卡。按Backup
讀取卡的內(nèi)容制作成磁盤(pán)鏡像文件。
Restore
和Backup
命令能夠記住上次使用的文件夾位置。
如果是先開(kāi)啟軟件再插入磁盤(pán),可能磁盤(pán)不會(huì)立即顯示出來(lái)。這時(shí)請(qǐng)點(diǎn)擊Rescan
刷新左側(cè)磁盤(pán)列表。
讀卡和寫(xiě)卡都支持zip和gzip壓縮的.img
鏡像。注意.imz
并非一個(gè)專(zhuān)門(mén)的格式,其實(shí)只是僅含有一個(gè).img
的zip壓縮包。
USB Image Tool實(shí)際上也可以正確識(shí)別.zip
的壓縮包。(雖然沒(méi)有提供這個(gè)選項(xiàng)。需要先選擇All files (*.*)
以便能夠選中.zip
文件。)
USB Image Tool提供了Favorites
標(biāo)簽頁(yè),可以收藏一些常用的鏡像文件一鍵刷寫(xiě),無(wú)需尋找。
USB Image Tool提供了Reset
功能,可以把磁盤(pán)的分區(qū)表部分全部寫(xiě)成0x00
。
這個(gè)功能用來(lái)把為樹(shù)莓派等系統(tǒng)重新分區(qū)過(guò)(在電腦上看到容量縮小成幾十MB)的卡恢復(fù)原狀。重置SD卡后,拔出并重新插入,Windows就會(huì)發(fā)現(xiàn)分區(qū)表被全部清空,而提示用戶格式化磁盤(pán),恢復(fù)磁盤(pán)全部空間分配為一個(gè)FAT32分區(qū)的原始結(jié)構(gòu)。
USB Image Tool的安全保證主要是兩點(diǎn):
Options
中提供選項(xiàng)突破這一點(diǎn))使用軟件提供的機(jī)制,簡(jiǎn)單檢查就可以避免刷寫(xiě)錯(cuò)誤。
但我們?nèi)匀唤ㄗh您:使用直接寫(xiě)盤(pán)工具時(shí),請(qǐng)最好保證計(jì)算機(jī)上只連入了1個(gè)需要寫(xiě)入的USB存儲(chǔ)設(shè)備。(防止數(shù)據(jù)災(zāi)難,戒之慎之)
推薦給在Windows下開(kāi)發(fā)Raspberry Pi等Linux開(kāi)發(fā)板的用戶使用。
Linux下使用dd命令或SUSE Image Writer圖形化工具直接寫(xiě)盤(pán)。
USB Image Tool是免費(fèi)軟件(Freeware)而非開(kāi)源軟件。會(huì)不會(huì)將來(lái)有人會(huì)促成作者將此軟件開(kāi)源,或干脆做出一個(gè)開(kāi)源的等效工具呢?
項(xiàng)目主頁(yè)與下載:http://www.alexpage.de/usb-image-tool/
注:Windows XP下運(yùn)行需要.net Framework 2.0。
[注A]
其實(shí)是三個(gè)問(wèn)題,另一個(gè)是“為什么不能直接使用臺(tái)式機(jī)的Linux操作系統(tǒng)安裝盤(pán)?”。這個(gè)問(wèn)題的答案是:系統(tǒng)架構(gòu)不同(臺(tái)機(jī)=x86,開(kāi)發(fā)板=ARM/MIPS),造成位于系統(tǒng)最最底層的機(jī)器指令層都不通用,上層的就全都更不用說(shuō)了。[注B]
這是個(gè)簡(jiǎn)略的說(shuō)法。[注C]
軟件的免責(zé)條款,由許可協(xié)議中的AS IS條款規(guī)定。文章的免責(zé)條款,由CC知識(shí)共享許可協(xié)議規(guī)定。
《開(kāi)源硬件佳軟介紹》系列文章,介紹調(diào)試Raspberry Pi等開(kāi)源硬件板卡,所用到的各種優(yōu)秀軟件。每周五更新,敬請(qǐng)期待!
上一篇:MobaXterm:“十項(xiàng)全能”的遠(yuǎn)程終端登錄軟件 【開(kāi)源硬件佳軟介紹 #1】
下一篇:待定中 :D
《USB Image Tool:Windows下的直接寫(xiě)盤(pán)利器》 http://segmentfault.com/a/1190000000492510
SegmentFault原創(chuàng)內(nèi)容。部分內(nèi)容使用了作者自己的舊創(chuàng)作。
轉(zhuǎn)載使用請(qǐng)遵守本站相關(guān)聲明。
本文作者與責(zé)任:沙渺
聯(lián)系客服