專利名稱:一種嵌入式設(shè)備文件檢測修復(fù)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式設(shè)備中的文件系統(tǒng)技術(shù),尤其涉及一種非日志文件系統(tǒng)的出錯
檢測修復(fù)技術(shù)。
背景技術(shù):
在某些嵌入式設(shè)備中,需要使用外部存儲介質(zhì)(硬盤或者閃存)來進(jìn)行數(shù)據(jù)的存 取。一般根據(jù)實際需要不同,會選擇不同種類的文件系統(tǒng)來進(jìn)行存儲介質(zhì)數(shù)據(jù)的管理。當(dāng)需 要存儲的數(shù)據(jù)極為重要,必須保證正確性,可靠性及可恢復(fù)性的時候,會選用帶有日志或者 事務(wù)功能的文件系統(tǒng),比如XFS, EXT3、ReiserFS和JFS等文件系統(tǒng);當(dāng)數(shù)據(jù)的重要性不是那 么高,少量數(shù)據(jù)偶爾的丟失對系統(tǒng)影響不大的時候,比如媒體文件的存儲,可以選擇FAT32 或者其他性能較好的文件系統(tǒng),這些系統(tǒng)可以不具有日志事務(wù)功能。例如在全球眼的終端 設(shè)備中,攝像頭錄制的錄像一般存儲在硬盤中,錄像文件一般較大,如果錄像文件視頻數(shù)據(jù) 有一兩幀的損壞,只要視頻還能夠正常播放,對設(shè)備的監(jiān)控作用來說,不會產(chǎn)生較大影響, 那么就沒有必要使用日志文件系統(tǒng)消耗額外的性能。使用FAT32這樣的文件系統(tǒng),如果當(dāng) 設(shè)備正在向存儲設(shè)備寫入數(shù)據(jù)時,系統(tǒng)突然掉電,就有可能出現(xiàn)系統(tǒng)緩存中的數(shù)據(jù)沒有及 時刷新到存儲介質(zhì)中去,從而導(dǎo)致部分?jǐn)?shù)據(jù)丟失。如果損壞的是文件系統(tǒng)關(guān)鍵數(shù)據(jù),比如文 件節(jié)點信息,文件塊簇記錄信息等,系統(tǒng)重啟時就有可能不能正常識別該文件系統(tǒng),導(dǎo)致整 個存儲介質(zhì)不能正常讀取。這種情況就必須要考慮對文件系統(tǒng)數(shù)據(jù)的進(jìn)行檢測修復(fù)?,F(xiàn)有 技術(shù)中一般文件系統(tǒng)修復(fù)都是采用全盤掃描文件系統(tǒng)信息,進(jìn)行出錯修改的辦法,在存儲 介質(zhì)容量較大,存儲文件較多或者設(shè)備本身的處理能力有限的情況下,很可能就需要消耗 大量的時間,有時是不能忍受的,比如在設(shè)備啟動時進(jìn)行文件系統(tǒng)檢測修復(fù),會帶給用戶較 差的使用體驗。
發(fā)明內(nèi)容
本發(fā)明主要解決的技術(shù)問題是,提供一種快速有效的嵌入式設(shè)備文件檢測修復(fù)方
法和裝置,減少嵌入式設(shè)備文件系統(tǒng)的檢測修復(fù)時間,提供較好的用戶體驗。 為解決上述技術(shù)問題,本發(fā)明提供了一種嵌入式設(shè)備文件檢測修復(fù)方法,包括以
下處理過程 設(shè)備運(yùn)行中對文件數(shù)據(jù)進(jìn)行操作時,將當(dāng)前操作文件的基本信息存儲在設(shè)備的日 志或者事務(wù)功能文件系統(tǒng)分區(qū)中; 對當(dāng)前操作文件中的數(shù)據(jù)進(jìn)行修改時,更新上述存儲的當(dāng)前操作文件的信息; 利用上述存儲的操作文件的信息進(jìn)行文件數(shù)據(jù)的檢測和修復(fù)。
進(jìn)一步的,對文件數(shù)據(jù)檢測和修復(fù)后還包括將修復(fù)文件的相關(guān)信息上報。 進(jìn)一步的,所述更新當(dāng)前操作文件的信息處理中,還包括以下處理過程如果當(dāng)前
操作文件正常關(guān)閉,則清空存儲的當(dāng)前操作文件的信息。 優(yōu)選的,所述設(shè)備的日志或者事務(wù)功能文件系統(tǒng)分區(qū)設(shè)置在設(shè)備的小容量可擦寫設(shè)備中,所述的操作文件數(shù)據(jù)設(shè)置在大容量外部存儲介質(zhì)中。
本發(fā)明還提供了一種嵌入式設(shè)備文件檢測修復(fù)裝置,包括 操作文件信息存儲單元,設(shè)置在設(shè)備的日志或者事務(wù)功能文件系統(tǒng)分區(qū)中,用于 在設(shè)備運(yùn)行中對文件數(shù)據(jù)進(jìn)行操作時,存儲將當(dāng)前操作文件的基本信息;
操作文件信息更新單元,用于在當(dāng)前操作文件中的數(shù)據(jù)進(jìn)行修改時,更新所述操 作文件信息存儲單元中存儲的當(dāng)前操作文件的信息; 檢測和修復(fù)單元,用于利用所述操作文件信息存儲單元中記錄的信息進(jìn)行文件數(shù) 據(jù)檢測和修復(fù)。 進(jìn)一步的,還包括信息上報單元,用于上報修復(fù)文件的相關(guān)信息。 進(jìn)一步的,還包括信息清空處理單元,用于在當(dāng)前操作文件正常關(guān)閉時,清空所述
操作文件信息存儲單元中存儲的當(dāng)前操作文件的信息。 優(yōu)選的,所述設(shè)備的日志或者事務(wù)功能文件系統(tǒng)分區(qū)設(shè)置在設(shè)備的小容量可擦寫 存儲設(shè)備中,所述的操作文件數(shù)據(jù)設(shè)置在大容量外部存儲介質(zhì)中。 本發(fā)明的有益效果是系統(tǒng)不需要掃描文件系統(tǒng)的所有數(shù)據(jù)信息,只需要對上次 運(yùn)行中,最后沒有正常關(guān)閉可能出錯的文件,進(jìn)行檢測,大大加快了檢測時間。同時,也能夠 保證文件系統(tǒng)的正常啟動。本發(fā)明特別適合系統(tǒng)單獨運(yùn)行在小容量可擦寫存儲設(shè)備中,并 使用大容量外部存儲介質(zhì)來記錄較多較大文件,并且不會頻繁進(jìn)行修改的嵌入式設(shè)備中。
圖1是本發(fā)明實施例一嵌入式設(shè)備文件檢測修復(fù)方法處理流程圖;
圖2是本發(fā)明實施例二嵌入式設(shè)備文件檢測修復(fù)裝置實施例原理圖。
具體實施例方式
下面通過具體實施方式
結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明。
實施例一 參考附圖1,以一種全球眼終端設(shè)備為例。在該全球眼終端設(shè)備中,設(shè)置了一塊小 容量可擦寫存儲單元,例如一塊64MFLASH存儲操作系統(tǒng)及應(yīng)用程序,并使用日志或者事 務(wù)功能文件系統(tǒng),如XFS日志文件系統(tǒng);同時,使用大容量存儲介質(zhì),例如用一塊320G的 硬盤存儲攝像頭錄制的視頻文件,使用FAT32文件系統(tǒng)管理硬盤數(shù)據(jù)。設(shè)備運(yùn)行時,同時會 有幾個錄像進(jìn)程向硬盤寫入錄像數(shù)據(jù)。
該實施方式主要包括以下步驟 步驟11 :在全球眼的FLASH中,將需要檢測的文件信息存儲在該FLASH的XFS日 志文件系統(tǒng)中??梢圆捎梦募问酱娣派鲜鲂畔?,即創(chuàng)建一個文件信息記錄文件,用來存儲 需要檢測的文件信息。在XFS日志文件系統(tǒng)中增加一個文件信息記錄區(qū)域,將文件信息記 錄文件存放在該記錄區(qū)域中。該文件記錄錄像文件的以下參數(shù)中的至少一種文件名,文件 路徑,文件屬性,文件大小,文件起始簇,文件結(jié)束簇,文件進(jìn)行讀寫的起始簇等信息。
步驟12 :在全球眼設(shè)備啟動以后,先初始化該記錄文件,該記錄文件動態(tài)存儲當(dāng) 前操作文件的相關(guān)信息。在準(zhǔn)備進(jìn)行錄像錄制時,會在硬盤上打開或創(chuàng)建視頻文件,這時, 首先在記錄文件中,記錄該文件的文件名,文件路徑信息,打開文件以后,再調(diào)用接口 ,獲取該文件的起始簇,結(jié)束簇,當(dāng)前操作的簇位置,記錄在記錄文件中。然后,開始進(jìn)行錄像錄 制,寫視頻文件。為了節(jié)約存儲空間,可以在設(shè)備運(yùn)行過程中,判斷所寫的視頻文件是否能 夠及時的關(guān)閉,并在關(guān)閉前調(diào)用刷新數(shù)據(jù)到磁盤的接口,對于正常關(guān)閉的視頻文件,可以把 FLASH中記錄文件對應(yīng)的文件信息刪除掉,表示該文件已經(jīng)正常處理了。 步驟13 :當(dāng)需要進(jìn)行檢測修復(fù)時,例如異常斷電后的設(shè)備重啟;文件系統(tǒng)出現(xiàn)錯 誤,讀寫文件失敗時;掛載文件系統(tǒng)或者其他文件系統(tǒng)相關(guān)接口出現(xiàn)錯誤時等等情況下, 可以利用上述記錄文件進(jìn)行檢測修復(fù)。以異常斷電設(shè)備重啟為例,設(shè)備重啟時,加載硬盤 FAT32文件系統(tǒng)數(shù)據(jù)之前,要進(jìn)行文件系統(tǒng)檢測。應(yīng)用程序打開記錄在FLASH上的文件信息 記錄文件,讀取記錄中所有上次運(yùn)行時操作過的文件信息,加載到內(nèi)存中。首先,讀取文件 系統(tǒng)超級塊信息,獲取文件系統(tǒng)整體信息,讀取FAT1和FAT2兩個FAT表,使用其中正確的 一個,逐一檢測FAT表項記錄的簇鏈值,如果超出文件系統(tǒng)的正常范圍,則該修正該FAT表 項值。然后,從文件系統(tǒng)根目錄開始,對目錄下文件或文件夾進(jìn)行逐個掃描,并與待檢測文 件的目錄層次名和文件名進(jìn)行比較,找到對應(yīng)的文件位置,對該文件層次上的所有文件夾 和該文件進(jìn)行檢測。對文件或文件夾進(jìn)行檢測時,讀取文件節(jié)點的所有基本信息,并對每個 簇進(jìn)行檢測。對文件記錄的屬性,大小,偏移,簇鏈等信息,發(fā)現(xiàn)不匹配的情況,將其修改一 致。比如,文件大小比文件實際的簇鏈大小要大,那么修改文件大小為簇鏈大小?;蛘甙l(fā)現(xiàn) 簇鏈內(nèi)容異常,則丟棄出錯的簇,釋放空間,并修改文件的FAT表項等信息,使文件系統(tǒng)信 息一致。 步驟14 :文件系統(tǒng)檢測完畢以后,把修改的文件信息上報給應(yīng)用程序,包括出錯 的文件名,文件大小,出錯位置等,再加載FAT32文件系統(tǒng),初始化文件記錄區(qū),重新進(jìn)入步 驟12。 以上的檢測修復(fù)處理機(jī)制也可以應(yīng)用在其它設(shè)備中。例如在機(jī)頂盒廣告機(jī)設(shè)備 中,使用FLASH存儲操作系統(tǒng)及應(yīng)用程序,使用可拆卸的硬盤存儲廣告等媒體信息,在廣告 機(jī)安裝新的媒體硬盤,進(jìn)行媒體下載或者斷電重啟的情況下,文件系統(tǒng)的文件可能出現(xiàn)損 壞的情況,也可以使用上述方法進(jìn)行檢測修復(fù)。
實施例二 參考附圖2,本發(fā)明的嵌入式設(shè)備文件檢測修復(fù)裝置,裝置包括 操作文件信息存儲單元21,設(shè)置在設(shè)備的日志或者事務(wù)功能文件系統(tǒng)分區(qū)中,用
于在設(shè)備運(yùn)行中對文件數(shù)據(jù)進(jìn)行操作時,存儲將當(dāng)前操作文件的基本信息;其中操作文件
信息存儲單元21中存儲的當(dāng)前操作文件的信息包括至少一種以下參數(shù)文件名、文件屬
性、文件起始簇、結(jié)束簇、當(dāng)前操作的簇位置、文件路徑、文件大小。 操作文件信息更新單元22,用于在當(dāng)前操作文件中的數(shù)據(jù)進(jìn)行修改時,更新所述 操作文件信息存儲單元中記錄的當(dāng)前操作文件的信息; 信息清空處理單元23,用于在當(dāng)前操作文件正常關(guān)閉時,清空所述操作文件信息 存儲單元中記錄的當(dāng)前操作文件的信息; 檢測和修復(fù)單元24,用于在設(shè)備重啟時,通過讀取所述操作文件信息存儲單元中 記錄的信息進(jìn)行文件數(shù)據(jù)檢測和修復(fù)。 信息上報單元25,用于上報修復(fù)文件的相關(guān)信息。 本實施例中可以將設(shè)備的日志或者事務(wù)功能文件系統(tǒng)分區(qū)設(shè)置在設(shè)備的小容量可擦寫存儲設(shè)備中,操作文件數(shù)據(jù)設(shè)置在大容量外部存儲介質(zhì)。 以上內(nèi)容是結(jié)合具體的實施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)
明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫 離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種嵌入式設(shè)備文件檢測修復(fù)方法,其特征在于,所述方法包括以下處理過程設(shè)備運(yùn)行中對文件數(shù)據(jù)進(jìn)行操作時,將當(dāng)前操作文件的基本信息存儲在設(shè)備的日志或者事務(wù)功能文件系統(tǒng)分區(qū)中;對當(dāng)前操作文件中的數(shù)據(jù)進(jìn)行修改時,更新上述存儲的當(dāng)前操作文件的信息;利用上述存儲的操作文件的信息進(jìn)行文件數(shù)據(jù)的檢測和修復(fù)。
2. 根據(jù)權(quán)利要求1所述的嵌入式設(shè)備文件檢測修復(fù)方法,其特征在于,對文件數(shù)據(jù)檢 測和修復(fù)后還包括將修復(fù)文件的相關(guān)信息上報。
3. 根據(jù)權(quán)利要求1所述的嵌入式設(shè)備文件檢測修復(fù)方法,其特征在于,所述更新當(dāng)前操作文件的信息處理中,還包括以下處理過程如果當(dāng)前操作文件正常關(guān)閉,則清空存儲的 當(dāng)前操作文件的信息。
4. 根據(jù)權(quán)利要求1-3任一項所述的嵌入式設(shè)備文件檢測修復(fù)方法,其特征在于,所述記錄的當(dāng)前操作文件的信息包括至少一種以下參數(shù)文件名、文件屬性、文件起始簇、結(jié)束 簇、當(dāng)前操作的簇位置、文件路徑、文件大小。
5. 根據(jù)權(quán)利要求4所述的嵌入式設(shè)備文件檢測修復(fù)方法,其特征在于,所述將當(dāng)前操作文件的基本信息存儲在設(shè)備的日志或者事務(wù)功能文件系統(tǒng)分區(qū)中具體為 在設(shè)備的日志或者事務(wù)功能文件系統(tǒng)分區(qū)中增加文件信息記錄區(qū)域; 將記錄的當(dāng)前操作文件的信息以文件形式存放在所述文件信息記錄區(qū)域中。
6. 根據(jù)權(quán)利要求5所述的嵌入式設(shè)備文件檢測修復(fù)方法,其特征在于,所述設(shè)備的日 志或者事務(wù)功能文件系統(tǒng)分區(qū)設(shè)置在設(shè)備的小容量可擦寫設(shè)備中,所述的操作文件數(shù)據(jù)設(shè) 置在大容量外部存儲介質(zhì)中。
7. 根據(jù)權(quán)利要求1-3任一項所述的嵌入式設(shè)備文件檢測修復(fù)方法,其特征在于,當(dāng)設(shè) 備重啟時,所述利用上述存儲的操作文件的信息進(jìn)行文件數(shù)據(jù)的檢測和修復(fù),具體為讀 取上次所述存儲的信息,對上次運(yùn)行中,最后沒有正常關(guān)閉可能出錯的文件,進(jìn)行檢測和修 復(fù)。
8. —種嵌入式設(shè)備文件檢測修復(fù)裝置,其特征在于,所述裝置包括操作文件信息存儲單元,設(shè)置在設(shè)備的日志或者事務(wù)功能文件系統(tǒng)分區(qū)中,用于在設(shè) 備運(yùn)行中對文件數(shù)據(jù)進(jìn)行操作時,存儲將當(dāng)前操作文件的基本信息;操作文件信息更新單元,用于在當(dāng)前操作文件中的數(shù)據(jù)進(jìn)行修改時,更新所述操作文 件信息存儲單元中存儲的當(dāng)前操作文件的信息;檢測和修復(fù)單元,用于利用所述操作文件信息存儲單元中記錄的信息進(jìn)行文件數(shù)據(jù)檢 測和修復(fù)。
9. 根據(jù)權(quán)利要求8所述的嵌入式設(shè)備文件檢測修復(fù)裝置,其特征在于,還包括信息上 報單元,用于上報修復(fù)文件的相關(guān)信息。
10. 根據(jù)權(quán)利要求8所述的嵌入式設(shè)備文件檢測修復(fù)裝置,其特征在于,還包括信息清 空處理單元,用于在當(dāng)前操作文件正常關(guān)閉時,清空所述操作文件信息存儲單元中存儲的 當(dāng)前操作文件的信息。
11. 根據(jù)權(quán)利要求8-10任一項所述的嵌入式設(shè)備文件檢測修復(fù)裝置,其特征在于,所述操作文件信息存儲單元中存儲的當(dāng)前操作文件的信息包括至少一種以下參數(shù)文件名、 文件屬性、文件起始簇、結(jié)束簇、當(dāng)前操作的簇位置、文件路徑、文件大小。
12.根據(jù)權(quán)利要求11所述的嵌入式設(shè)備文件檢測修復(fù)裝置,其特征在于,所述設(shè)備的 日志或者事務(wù)功能文件系統(tǒng)分區(qū)設(shè)置在設(shè)備的小容量可擦寫存儲設(shè)備中,所述的操作文件 數(shù)據(jù)設(shè)置在大容量外部存儲介質(zhì)中。
全文摘要
本發(fā)明公開了一種嵌入式設(shè)備文件檢測修復(fù)方法和裝置,通過將當(dāng)前操作文件的基本信息存儲在設(shè)備的日志或者事務(wù)功能文件系統(tǒng)分區(qū)中;當(dāng)前操作文件中的數(shù)據(jù)進(jìn)行修改了,記錄的信息也將被更新;檢測修復(fù)時,系統(tǒng)不需要掃描文件系統(tǒng)的所有數(shù)據(jù)信息,只需要對上次運(yùn)行中,最后沒有正常關(guān)閉可能出錯的文件,進(jìn)行檢測,大大加快了檢測時間。同時,也能夠保證文件系統(tǒng)的正常啟動。本發(fā)明特別適合系統(tǒng)單獨運(yùn)行在小容量可擦寫存儲設(shè)備,并使用大容量外部存儲介質(zhì)來記錄較多較大文件,并且不會頻繁進(jìn)行修改的嵌入式設(shè)備中。
文檔編號G06F11/14GK101706783SQ200910109629
公開日2010年5月12日 申請日期2009年11月16日 優(yōu)先權(quán)日2009年11月16日
發(fā)明者陳尚松 申請人:中興通訊股份有限公司