亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種操作Sparse格式的鏡像文件的方法及裝置的制造方法

文檔序號:9235459閱讀:1507來源:國知局
一種操作Sparse格式的鏡像文件的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機文件系統(tǒng)技術(shù)領(lǐng)域,尤其涉及一種操作Sparse格式的鏡像文件的方法及裝置。
【背景技術(shù)】
[0002]Ext4是Linux系統(tǒng)的文件系統(tǒng)格式,對于存儲位置不連續(xù)的一個文件而言,沒有被占用的磁盤空間是“空”的,但對于Ext4格式的文件系統(tǒng),這些位置被填充“0”,且在文件的傳遞過程中將這些位置填充的數(shù)據(jù)“O”讀出并進行傳遞。
[0003]Sparse格式的文件系統(tǒng)是一種Ext4格式的文件系統(tǒng)的變種,Sparse格式的文件系統(tǒng)的磁盤格式如圖1所示。對于為文件系統(tǒng)分配了空間但卻未使用空間的情況,Sparse文件可以更有效的利用文件系統(tǒng)空間,它通過一些簡短的元數(shù)據(jù)來描述那些“空”的磁盤空間以減少磁盤大小,只有當(dāng)“空”的磁盤空間寫入了真正的文件數(shù)據(jù)時,才視為磁盤被使用。當(dāng)讀取Sparse格式的文件時,文件系統(tǒng)會根據(jù)元數(shù)據(jù)記載的信息跳過這些“空”的磁盤空間,從而便于網(wǎng)絡(luò)傳輸。Sparse文件通常用于磁盤映像、數(shù)據(jù)庫快照、日志文件等場景。
[0004]采用Android操作系統(tǒng)的便攜式電子設(shè)備如平板,通常采用Ext4格式的System分區(qū)文件系統(tǒng)。由于Ext4是Linux的文件系統(tǒng)格式,因此在開發(fā)過程中,首先在采用Linux系統(tǒng)的PC機上創(chuàng)建Ext4格式的System分區(qū)文件系統(tǒng)。為了實現(xiàn)客戶的個性化定制,通常需要多個開發(fā)人員在其它PC機上基于Windows平臺修改System分區(qū)文件,這就涉及到System分區(qū)文件的傳遞。
[0005]為了減少固件尺寸、便于網(wǎng)絡(luò)傳遞及縮短量產(chǎn)時間,通常在采用Linux的PC機上對Ext4格式的System分區(qū)文件制作Sparse格式的鏡像文件,從而將Ext4格式的System分區(qū)文件轉(zhuǎn)換為Sparse格式的System分區(qū)文件,通過傳遞Sparse格式的鏡像文件從而可以減少分發(fā)時的數(shù)據(jù)傳輸量,比如:512M的Ext4格式的System分區(qū)文件可做成300M的Sparse格式的鏡像文件。
[0006]但是在基于Windows平臺的PC上,如果涉及到Sparse格式的鏡像文件的讀寫、修改、添加、刪除等操作都不方便。基于Windows平臺要實現(xiàn)這些功能,需先將system, img(Ext4格式的System分區(qū)文件的Sparse格式的鏡像文件)由Sparse格式轉(zhuǎn)換成Ext4格式,得到Ext4格式的System分區(qū)文件,然后將Ext4格式的System分區(qū)文件解開到本地文件夾,從而得到System分區(qū)文件的目錄信息及位置信息;再進行一系列操作,如修改、添力口、刪除等動作后,最后再利用鏡像制作工具去除本地文件夾的目錄信息及位置信息后制作成Ext4格式的鏡像文件,最后再將Ext4格式的鏡像文件轉(zhuǎn)換成Sparse格式的鏡像文件進行上傳。
[0007]上述基于Windows平臺操作Sparse格式的鏡像文件的方法有如下明顯缺點:
[0008]I)將Ext4格式的System分區(qū)文件解開到本地文件夾時會造成文件屬性、符號鏈接等信息丟失,必須用臨時文件存儲這些信息。
[0009]文件屬性丟失的原因=Windows與Linux的文件屬性機制不同,Linux上的文件有用戶權(quán)限相關(guān)的信息,還有字符設(shè)備、塊設(shè)備、套接字等屬性,而Windows只有只讀、隱藏等屬性。
[0010]符號鏈接丟失的原因:符號鏈接symbol link是Ext4格式的文件系統(tǒng)特有的,類似windows上的快捷方式,但又不相同?;谶@些差異,Linux上的Ext4格式的文件解到windows上后,再做成Ext4格式的文件屬性時符號鏈接就和原來的對應(yīng)不上了,導(dǎo)致掛載到Linux系統(tǒng)時無法掛載或者文件無法識別。
[0011]2)實際應(yīng)用場景都是修改或替換鏡像內(nèi)的一個或幾個文件,有些時候文件大小都沒有變化,但上述過程針對整個sparse格式的鏡像文件,不能單獨對其中的某個文件條目進行編輯,效率低下,耗時也久。
[0012]基于以上缺陷,需要考慮如何實現(xiàn)在Windows平臺上直接快速操作Sparse格式的鏡像文件。

【發(fā)明內(nèi)容】

[0013]本發(fā)明提供一種操作Sparse格式的鏡像文件的方法及裝置,能夠?qū)崿F(xiàn)在Windows平臺上直接快速操作Sparse格式的鏡像文件。
[0014]一種操作Sparse格式的鏡像文件的方法,包括:
[0015]按照二進制文件解析方式解析包括至少一個塊block的Sparse格式的鏡像文件,根據(jù)解析結(jié)果在內(nèi)存中創(chuàng)建用于索引Sparse格式的鏡像文件中每個block的chunk索引表;
[0016]確定將Sparse格式的鏡像文件轉(zhuǎn)換為Ext4格式的文件時,Ext4格式的文件中文件位置和目錄信息所在block的編號,根據(jù)所述chunk索引表確定Sparse格式的鏡像文件中該編號的block的地址,并從相應(yīng)的地址讀取文件位置和目錄信息;
[0017]調(diào)用Ext4格式文件系統(tǒng)操作模塊,所述Ext4格式文件系統(tǒng)操作模塊根據(jù)讀取的文件位置和目錄信息,確定需操作的文件所在的block編號,根據(jù)所述chunk索引表確定Sparse格式的鏡像文件中需操作的文件所在的block編號的block的地址,并對相應(yīng)的地址中內(nèi)容進行操作。
[0018]優(yōu)選地,創(chuàng)建用于索引Sparse格式的鏡像文件中每個block的chunk索引表之后,還包括:
[0019]利用所述chunk索引表得到對應(yīng)的地址映射表,所述地址映射表包括Sparse格式的鏡像文件中所有block的地址;
[0020]確定Ext4格式的文件中文件位置和目錄信息所在block的編號之后,根據(jù)chunk索引表確定Sparse格式的鏡像文件中該編號的block的地址,包括:
[0021]根據(jù)chunk索引表對應(yīng)的地址映射表,確定Sparse格式的鏡像文件中該編號的block的地址;
[0022]確定需操作的文件所在的block編號之后,根據(jù)所述chunk索引表確定Sparse格式的鏡像文件中需操作的文件所在的block編號的block的地址,包括:
[0023]根據(jù)chunk索引表對應(yīng)的地址映射表,確定Sparse格式的鏡像文件中需操作的文件所在的block編號的block的地址。
[0024]優(yōu)選地,根據(jù)chunk索引表確定Sparse格式鏡像文件中一個block的地址,具體包括:
[0025]根據(jù)chunk索引表確定block的大小及該block的編號所在的chunk的編號y ;
[0026]根據(jù)chunk索引表確定該block在編號y的chunk內(nèi)的block數(shù)目偏移及編號y的chunk的累計字節(jié)數(shù)偏移量;
[0027]根據(jù)該block在編號y的chunk內(nèi)的block數(shù)目偏移及block的大小,確定該block在編號y的chunk內(nèi)的字節(jié)數(shù)偏移量;
[0028]根據(jù)該block在編號y的chunk內(nèi)的字節(jié)數(shù)偏移量,及編號y的chunk的累計字節(jié)數(shù)偏移量,確定該block的字節(jié)數(shù)偏移量;
[0029]根據(jù)該block的字節(jié)數(shù)偏移量及block大小確定block的地址。
[0030]優(yōu)選地,對相應(yīng)地址中內(nèi)容進行操作之后,還包括:
[0031]確定文件位置和目錄信息發(fā)生內(nèi)容更新時,對相應(yīng)地址的文件位置和目錄信息進行更新;
[0032]所述Sparse格式的鏡像文件包括至少一個數(shù)據(jù)單元chunk,每個chunk包括頭部chunk header和數(shù)據(jù)部分chunk data,對相應(yīng)的地址中內(nèi)容進行操作之后,還包括:
[0033]確定發(fā)生chunk data更新時,對發(fā)生更新的chunk data所在的chunk中的chunkheader的內(nèi)容進行更新。
[0034]優(yōu)選地,按照二進制文件解析方式解析包括至少一個塊block的Sparse格式的鏡像文件,具體包括:
[0035]導(dǎo)入并存儲Sparse格式的鏡像文件之后,或者操作Sparse格式的鏡像文件之后,或者Sparse格式的鏡像文件中的內(nèi)容更新時,或者收到對存儲的Sparse格式的鏡像文件的操作指令時,或者創(chuàng)建Sparse格式的鏡像文件時,按照二進制文件解析方式解析Sparse格式的鏡像文件。
[0036]本發(fā)明還提供一種操作Sparse格式的鏡像文件的裝置,包括:
[0037]chunk索引建立單元,用于按照二進制文件解析方式解析包括至少一個塊block的Sparse格式的鏡像文件,根據(jù)解析結(jié)果在內(nèi)存中創(chuàng)建用于索引Sparse格式的鏡像文件中每個block的chunk索引表;
[0038]管理信息讀取單元,用于確定將Sparse格式的鏡像文件轉(zhuǎn)換為Ext4格式的文件時,Ext4格式的文件中文件位置和目錄信息所在block的編號,根據(jù)所述chunk索引表確定Sparse格式的鏡像文件中該編號的block的地址,并從相應(yīng)的地址讀取文件位置和目錄信息;
[0039]操作單元,用于調(diào)用Ext4格式文件系統(tǒng)操作模塊,所述Ext4格式文件系統(tǒng)操作模塊根據(jù)讀取的文件位置和目錄信息,確定需操作的文件所在的block編號,根據(jù)所述chunk索引表確定Sparse格式的鏡像文件中需操作的文件所在的block編號的block的地址,并對相應(yīng)的地址中內(nèi)容進行操作。
[0040]優(yōu)選地,chunk索引建立單元創(chuàng)建用于索引Sparse格式的鏡像文件中每個block的chunk索弓I表之后,還用于:
[0041]利用所述chunk索引表得到對應(yīng)的地址映射表,所述地址映射表包括Sparse格式的鏡像文件中所有block的地址;
[0042]管理信息讀取單元根據(jù)chunk索引表確定Sparse格式的鏡像文件中該編號的block的地址,包括:
[0043]根據(jù)chunk索引表對應(yīng)的地址映射表,確定Sparse格式的鏡像文件中該編號的block的地址;
[0044]操作單元根據(jù)所述chunk索引表確定Sparse格式的鏡像文件中需操作的文件所在的block編號的block的地址,包括:
[0045]根據(jù)chunk索引表對應(yīng)的地址映射表,確定Sparse格式的鏡像文件中需操作的文件所在的block編號的block的地址。
[0046]優(yōu)選地,管理信息讀取單元或操作單元根據(jù)chunk索引表確定Sparse格式的鏡像文件中一個block的地址,具體包括:
[0047]根據(jù)chunk索引表確定block的大小及該block的編號所在的chunk的編號y ;
[0048]根據(jù)chunk索引表確定該block在編號y的chunk內(nèi)的block數(shù)目偏移及編號y的chunk的累計字節(jié)數(shù)偏移量;
[0049]根據(jù)該block在編號y的chunk內(nèi)的block數(shù)目偏移及block的大小,確定該block在編號y的chunk內(nèi)的字節(jié)數(shù)偏移量;
[0050]根據(jù)該block在編號y的chunk內(nèi)的字節(jié)數(shù)偏移量,及編號y的chunk的累計字節(jié)數(shù)偏移量,確定該block的字節(jié)數(shù)偏移量;
[0
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1