国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種快速拷貝數(shù)據(jù)到FAT分區(qū)的方法

2017-04-15 23:21福州瑞芯微電子股份有限公司
電子世界 2017年11期
關(guān)鍵詞:鏡像文件拷貝磁盤

福州瑞芯微電子股份有限公司 劉 翊

一種快速拷貝數(shù)據(jù)到FAT分區(qū)的方法

福州瑞芯微電子股份有限公司 劉 翊

本方案先將拷貝數(shù)據(jù)制作成最小FAT32分區(qū)鏡像文件(最小指剛好存放下拷貝數(shù)據(jù),沒有冗余空間)。接著在寫入鏡像文件前獲取實際分區(qū)容量,根據(jù)獲取到的分區(qū)容量調(diào)整鏡像文件中的FAT32數(shù)據(jù),然后按FAT32分區(qū)的組織順序(FAT32分區(qū)由保留區(qū)、FAT1區(qū)、FAT2區(qū)和數(shù)據(jù)區(qū)組成)依次將鏡像文件中的保留區(qū)、FAT1區(qū)、FAT2區(qū)和數(shù)據(jù)區(qū)內(nèi)容寫入到分區(qū)。此方法的寫入過程是直接調(diào)用磁盤驅(qū)動的扇區(qū)讀寫接口,去掉了文件系統(tǒng)層的開銷。提前制作好FAT32鏡像可以省去拷貝前格式化分區(qū)的時間,而分區(qū)容量不同帶來的修改開銷很少。如果寫入的設(shè)備有自己的驅(qū)動程序并提供扇區(qū)的讀寫接口,那么也可以不通過標準磁盤讀寫接口進行寫入,解決一臺PC最多同時存在26個盤符的限制。

快速拷貝;Fat32;預(yù)燒錄

1 引言

目前,拷貝數(shù)據(jù)到FAT32分區(qū)的方法主要包括如下步驟:首先將設(shè)備與電腦相連接,并掛載為磁盤;而后通過windows提供的格式化功能將磁盤格式化為FAT32分區(qū)格式;進而再將數(shù)據(jù)拷貝至FAT32分區(qū)中。然而,這種方法卻存在著諸多弊端:首先,數(shù)據(jù)拷貝至分區(qū)要調(diào)用FAT32文件系統(tǒng)接口,這會增加部分系統(tǒng)資源和時間開銷;其次,將磁盤格式化為FAT32分區(qū)格式時間開銷大,分區(qū)容量越大,所花費的時間越長,影響寫入效率;再次,由于上述方法需要依賴于磁盤,而Windows本身最多支持26個盤符,也就是說,最多只允許26臺設(shè)備同時進行寫入操作。

綜上所述,如何能夠快速地將數(shù)據(jù)寫入至FAT32分區(qū)中,且使得燒錄過程不受待磁盤數(shù)量的限制,進一步提升寫入數(shù)據(jù)的效率,滿足工業(yè)化生產(chǎn)的需求,是一個亟需解決的問題。

2 方案總體設(shè)計與實現(xiàn)

2.1 具體實施步驟

1)通過創(chuàng)建FAT32鏡像工具,將要拷貝的數(shù)據(jù)制作成最小FAT32鏡像文件,鏡像文件包含F(xiàn)AT32分區(qū)信息和拷貝數(shù)據(jù)。

2)連接設(shè)備,寫入數(shù)據(jù)前獲取設(shè)備的分區(qū)容量,由于鏡像文件不是按真實分區(qū)容量制作,所以在將鏡像文件寫入到分區(qū)前,需要根據(jù)真實的分區(qū)容量來修改鏡像文件的FAT32分區(qū)數(shù)據(jù)。

3)提取鏡像文件中的保留區(qū)數(shù)據(jù),保留區(qū)數(shù)據(jù)位于FAT32鏡像文件的前32個扇區(qū)。

4)根據(jù)真實分區(qū)容量重新計算總扇區(qū)數(shù)和FAT扇區(qū)數(shù),然后更新保留區(qū)中DBR和備份DBR數(shù)據(jù)。

5)寫入保留區(qū)數(shù)據(jù),通過調(diào)用磁盤驅(qū)動或者設(shè)備驅(qū)動的寫扇區(qū)接口,將修改后的保留區(qū)數(shù)據(jù)寫入到分區(qū)的LBA0位置。

6)提取鏡像文件中的FAT區(qū)數(shù)據(jù),FAT區(qū)保存著所有文件的簇鏈信息,它緊接在保留區(qū)數(shù)據(jù)后面。

7)根據(jù)新的FAT扇區(qū)數(shù),擴展FAT分區(qū)數(shù)據(jù),擴展FAT過程是申請一個新的FAT扇區(qū)數(shù)*512字節(jié)的空間并初始化為全0,拷貝原始的FAT數(shù)據(jù)到新申請的空間。

8)寫入FAT分區(qū)數(shù)據(jù)到分區(qū)LBA32位置。

9)提取鏡像文件中的數(shù)據(jù)區(qū)數(shù)據(jù),數(shù)據(jù)區(qū)是存放拷貝內(nèi)容的地方,前面的保留區(qū)、FAT分區(qū)都屬于FAT32文件系統(tǒng)信息。寫入到FAT分區(qū)結(jié)束的位置。

2.2 具體實施說明

在本實施方式中,所述FAT32分區(qū)包括保留區(qū),F(xiàn)AT區(qū)和數(shù)據(jù)區(qū),則所述FAT32分區(qū)格式的鏡像文件包括保留區(qū)數(shù)據(jù),F(xiàn)AT區(qū)數(shù)據(jù)以及數(shù)據(jù)區(qū)數(shù)據(jù)。

FAT32分區(qū)格式中,保留區(qū)數(shù)據(jù)位于FAT32分區(qū)格式的鏡像文件的前32個扇區(qū),包括DBR和備份DBR,DBR(DOS BOOT RECORD,DOS操作系統(tǒng)引導(dǎo)記錄)通常位于扇區(qū)0的位置,包括兩部分內(nèi)容:DOS引導(dǎo)程序和BPB(Bios Parameter Block ,BIOS參數(shù)塊)。其中DOS引導(dǎo)程序用于完成DOS系統(tǒng)文件的定位與裝載,而BPB用于存儲分區(qū)的磁盤信息,引導(dǎo)程序或設(shè)備驅(qū)動程序根據(jù)BPB中存儲的磁盤信息將磁盤邏輯地址轉(zhuǎn)換成物理地址。

FAT區(qū)數(shù)據(jù)中包括主文件分配表及其備份,所述主文件分配表用于存儲磁盤數(shù)據(jù)鏈接關(guān)系的數(shù)據(jù)結(jié)構(gòu)。保留區(qū)、FAT區(qū)所存儲的為FAT32分區(qū)文件系統(tǒng)信息,數(shù)據(jù)區(qū)用于存儲待拷貝的數(shù)據(jù)。

由于鏡像文件是按拷貝數(shù)據(jù)的大小生成的,因而需要按分區(qū)真實容量對鏡像文件的內(nèi)容進行調(diào)整,所述對鏡像文件的內(nèi)容進行調(diào)整包括:根據(jù)所獲取的FAT32分區(qū)真實容量,重新計算調(diào)整后的FAT32分區(qū)格式鏡像文件的總扇區(qū)數(shù)以及FAT區(qū)的扇區(qū)數(shù),并修改FAT32分區(qū)格式鏡像文件的保留區(qū)數(shù)據(jù)中的DBR和備份DBR的總扇區(qū)數(shù),以及FAT區(qū)的扇區(qū)數(shù)的值。在本實施方式中,可以用如下公式完成對調(diào)整后的FAT32分區(qū)格式的鏡像文件的總扇區(qū)數(shù)以及FAT區(qū)的扇區(qū)數(shù)的計算:

n_vol=n_disk/512

tmpValue = n_vol - 32;

tmpValue2 = ((256 * nSecPerCluster) + 2) >> 1;

n_fat = (tmpValue + (tmpValue2 - 1)) / tmpValue2;

其中,n_vol表示鏡像文件的總扇區(qū)數(shù),n_fat表示鏡像文件的FAT區(qū)的扇區(qū)數(shù),n_disk表示分區(qū)容量,以字節(jié)為單位,nSecPer-Cluster表示每個簇占用的扇區(qū)數(shù),tmpValue和tmpValue2表示計算時的臨時文件。在本實施方式中,F(xiàn)AT區(qū)包括FAT1區(qū)和FAT2區(qū),則所述方法還包括步驟:根據(jù)計算得出的調(diào)整后的FAT32分區(qū)格式的鏡像文件的的FAT區(qū)的扇區(qū)數(shù),對FAT1區(qū)和FAT2區(qū)數(shù)據(jù)進行修改。例如原有的鏡像文件的FAT1區(qū)大小為4M,而所獲取的FAT分區(qū)大小為4G,則根據(jù)上述公式所計算得到的調(diào)整后的FAT1區(qū)大小為12M。也就是說,需要對原有的FAT1區(qū)大小進行擴展,增加8M數(shù)據(jù)以適應(yīng)FAT32分區(qū)存儲容量的需要,為減少擴展FAT1區(qū)所花費的時間,可以在原有FAT1區(qū)所在存儲位置的末尾進行擴展,在本實施例中,即將需要擴展的8M數(shù)據(jù)添加于原有FAT1區(qū)所在存儲位置的末尾。優(yōu)選的,擴展FAT1區(qū)過程如下:首先,根據(jù)計算得出的FAT1分區(qū)的扇區(qū)數(shù)申請新的一塊存儲空間,所述存儲空間大小為計算得出的FAT1分區(qū)的扇區(qū)數(shù)*512字節(jié),此空間即為擴展后的FAT1分區(qū)大?。欢髮⑺龃鎯臻g內(nèi)容初始化為0,并拷貝擴展前的FAT1區(qū)數(shù)據(jù)至所述存儲空間。FAT2分區(qū)的調(diào)整與FAT1相同,F(xiàn)AT1區(qū)與FAT2區(qū)數(shù)據(jù)修改完成后,就可以對其進行燒錄。

3 結(jié)論

將拷貝數(shù)據(jù)的操作替換為寫入扇區(qū),不僅節(jié)約文件系統(tǒng)層的開銷,且無需在拷貝前對分區(qū)進行格式化,大大縮短拷貝過程所花費的時間,提高了效率。此外,由于所述方法并不依賴于Windows系統(tǒng)磁盤接口來袖,因而只要設(shè)備驅(qū)動程序有讀寫扇區(qū)的接口,即可使拷貝操作不受26個磁盤限制,從而大大提高并發(fā)度,滿足了規(guī)模化生產(chǎn)的需要。

[1]張帆,史彩成.Windows驅(qū)動開發(fā)技術(shù)詳解[M].電子工業(yè)出版社,2008.

[2]Microsoft.Fat32 File system specification[S].2000,12.

猜你喜歡
鏡像文件拷貝磁盤
新舊電腦資料遷移高效幫手
解決Windows磁盤簽名沖突
修改磁盤屬性
唐氏綜合征是因為“拷貝”走樣了
沒光驅(qū)不要緊 裝個免費虛擬的
文化拷貝應(yīng)該如何“拷”
開發(fā)閑置內(nèi)存,為本本輕松提速
磁盤組群組及iSCSI Target設(shè)置
用RamOS降低公用機的維護工作量
創(chuàng)建VSAN群集