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