一種嵌入式操作系統備份與恢復的方法及裝置的制造方法
【技術領域】
[0001]本發明涉及計算機技術領域,特別涉及一種嵌入式操作系統備份與恢復的方法及
目.0
【背景技術】
[0002]嵌入式操作系統是嵌入式系統的操作系統,是一種完全嵌入受控器件內部,為特定應用而設計的專用計算機系統,通過對嵌入式系統的全部軟件、硬件資源進行分配,實現控制、監視或輔助設備、機器以及工廠運作,執行帶有特定要求的預先定義的任務。
[0003]嵌入式操作系統在實際使用過程中,由于掉電、用戶錯誤或惡意地對數據進行修改和刪除以及一部分無法在開發中充分測試的錯誤等都會導致嵌入式操作系統功能失效,嚴重的還可能導致嵌入式操作系統癱瘓。
[0004]目前,當嵌入式操作系統出現問題無法啟動時,需要人工對系統進行更新,重新布置嵌入式操作系統。
[0005]由于存儲嵌入式操作系統的非易失存儲器一般都位于設備內部,通過人工對嵌入式操作系統進行更新時,由于非易失存儲器安裝位置的原因,導致嵌入式操作系統更新困難,嵌入式操作系統恢復需要較長時間。
【發明內容】
[0006]本發明提供一種嵌入式操作系統備份與恢復的方法及裝置,能夠減少嵌入式操作系統恢復所需的時間。
[0007]本發明實施例提供了一種嵌入式操作系統備份與恢復的方法,劃分至少兩個存儲分區,在每個所述存儲分區內均存儲所述嵌入式操作系統的鏡像文件,對所述至少兩個存儲分區中的指定存儲分區設置引導標識,還包括:
[0008]檢測當前具有所述引導標識的當前第一存儲分區;
[0009]將所述引導標識轉移至所述至少兩個存儲分區中的當前第二存儲分區;
[0010]加載所述當前第一存儲分區內的所述鏡像文件,啟動所述嵌入式操作系統;
[0011]判斷所述嵌入式操作系統是否啟動成功;
[0012]如果是,將所述引導標識轉移至所述當前第一存儲分區,如果否,將所述當前第二存儲分區作為第一存儲分區,返回執行所述檢測當前具有所述引導標識的當前第一存儲分區。
[0013]優選地,當所述存儲分區個數大于兩個時,對各個所述存儲分區進行循環排序,所述指定存儲分區為:排于第一個的存儲分區;
[0014]所述當前第二存儲分區包括:如果所述當前第一存儲分區為所述存儲分區排序中的最后一個存儲分區,則所述當前第二存儲分區為所述存儲分區排序中的第一個存儲分區,如果所述當前第一存儲分區不是所述存儲分區排序中的最后一個,則所述當前第二存儲分區為與所述當前第一存儲分區相鄰的下一個存儲分區。
[0015]優選地,在判斷所述嵌入式操作系統啟動失敗之后,并在所述將所述當前第二存儲分區作為第一存儲分區,返回執行所述檢測當前具有所述引導標識的當前第一存儲分區之前進一步包括:
[0016]將所述當前第二存儲分區中存儲的鏡像文件復制到所述當前第一存儲分區中,覆蓋所述當前第一存儲分區內原有鏡像文件。
[0017]優選地,該方法進一步包括:為每個所述存儲分區設置對應的引導參數r_active ;
[0018]所述對所述至少兩個存儲分區中的指定存儲分區設置引導標識包括:將所述指定存儲分區對應的引導參數r_active設置為YES ;
[0019]所述對所述至少兩個存儲分區中的指定存儲分區設置引導標識進一步包括:將其他各個所述存儲分區對應的引導參數r_active設置為NO ;
[0020]所述檢測當前具有所述引導標識的當前第一存儲分區包括:根據所述存儲分區的排序結果,依次檢測所述各個存儲分區對應的引導參數r_active,如果當前存儲分區對應的引導參數r_active為YES,則停止檢測,當前分區即為所述當前第一存儲分區,如果當前存儲分區對應的引導參數r_active為NO,則繼續檢測下一個存儲分區,直至檢測到引導參數r_active為YES的存儲分區。
[0021]優選地,該方法進一步包括:為每個所述存儲分區設置對應的鏡像恢復標識rec_image,其中,所述鏡像恢復標識rec_image的默認值為NO ;
[0022]在所述將所述引導標識轉移至所述至少兩個存儲分區中的當前第二存儲分區之后,并在加載所述當前第一存儲分區內的所述鏡像文件之前進一步包括:將所述當前第一存儲分區對應的鏡像恢復標識recjmage設置為YES ;
[0023]所述將所述當前第二存儲分區中存儲的鏡像文件復制到所述當前第一存儲分區中包括:根據所述存儲分區的排序結果,依次檢測所述各個存儲分區對應的鏡像恢復標識rec_image,如果當前存儲分區對應的鏡像恢復標識rec_image為YES,則停止檢測,當前分區即為所述當前第一存儲分區,將所述當前第二存儲分區中存儲的鏡像文件復制到所述當前第一存儲分區中,如果當前存儲分區對應的鏡像恢復標識recjmage為NO,則繼續檢測下一個存儲分區,直至檢測到鏡像恢復標識recjmage為YES的所述當前第一存儲分區,執行所述將所述當前第二存儲分區中存儲的鏡像文件復制到所述當前第一存儲分區中;
[0024]在所述將所述當前第二存儲分區中存儲的所述鏡像文件復制到所述當前第一存儲分區中,覆蓋所述當前第一存儲分區內原有所述鏡像文件之后,并在所述將所述當前第二存儲分區作為第一存儲分區,返回執行所述檢測當前具有所述引導標識的當前第一存儲分區之前進一步包括:將所述當前第一存儲分區對應的鏡像恢復標識reC_image設置為NO ;
[0025]在所述將所述引導標識轉移至所述當前第一存儲分區之后進一步包括:將所述當前第一存儲分區對應的鏡像恢復標識recjmage設置為NO。
[0026]本發明實施例還提供了一種嵌入式操作系統備份與恢復的裝置,包括:
[0027]分區單元,用于劃分至少兩個存儲分區;
[0028]存儲單元,用于在所述分區單元劃分的每個所述存儲分區內均存儲所述嵌入式操作系統的鏡像文件;
[0029]第一設置單元,用于對所述分區單元劃分的至少兩個存儲分區中的指定存儲分區設置引導標識;
[0030]檢測單元,用于檢測當前具有所述第一設置單元設置的引導標識的當前第一存儲分區;
[0031]轉移單元,用于將所述第一設置單元設置的引導標識轉移至所述劃分單元劃分的至少兩個存儲分區中的當前第二存儲分區;
[0032]加載單元,用于加載所述存儲單元存儲在所述當前第一存儲分區內的所述鏡像文件,啟動所述嵌入式操作系統;
[0033]判斷單元,用于判斷所述嵌入式操作系統是否啟動成功;
[0034]執行單元,用于根據所述判斷單元的判斷結果,如果是,將所述引導標識轉移至所述當前第一存儲分區,如果否,將所述當前第二存儲分區作為第一存儲分區,由所述檢測單元檢測當前具有所述引導標識的當前第一存儲分區。
[0035]優選地,該裝置進一步包括:排序單元;
[0036]所述排序單元,用于當所述存儲分區個數大于兩個時,對各個所述存儲分區進行循環排序;
[0037]所述第一設置單元,用于根據所述存儲分區的排序結果,對排于第一個的所述存儲分區設置所述引導標識;
[0038]所述轉移單元,用于如果所述當前第一存儲分區為所述存儲分區排序中的最后一個存儲分區,則將所述引導標識轉移至位于所述存儲分區排序第一的當前第二存儲分區,如果所述當前第一存儲分區不是所述存儲分區排序中的最后一個,則將所述引導標識轉移至所述當前第一存儲分區的下一個且與其相鄰的當前第二存儲分區。
[0039]優選地,該裝置進一步包括:復制單元;
[0040]所述復制單元,用于在所述判斷單元判斷所述嵌入式操作系統啟動失敗之后,并在所述執行單元將所述當前第二存儲分區作為第一存儲分區,由所述檢測單元檢測當前具有所述引導標識的當前第一存儲分區之前,將所述當前第二存儲分區中存儲的鏡像文件復制到所述當前第一存儲分區中,覆蓋所述當前第一存儲分區內原有鏡像文件。
[0041]優選地,該裝置進一步包括:第二設置單元;
[0042]所述第二設置單元,用于為每個所述存儲分區設置對應的引導參數r_actiVe ;
[0043]所述第一設置單元,用于將所述指定存儲分區對應的引導參數r_aCtiVe設置為YES,其他各個所述存儲分區對應的引導參數r_active設置為NO ;
[0044]所述檢測單元,用于根據所述存儲分區的排序結果,依次檢測所述各個存儲分區對應的引導參數r_active,如果當前存儲分區對應的引導參數r_active為YES,則停止檢測,當前分區即為所述當前第一存儲分區,如果當前存儲分區對應的引導參數r_aCtiVe為NO,則繼續檢測下一個存儲分區,直至檢測到引導參為YES的存儲分區。
[0045]優選地,該裝置進一步包括:第三設置單元、第四設置單元、第五設置單元及第六設置單元;
[0046]所述第三設置單元,用于為每個所述存儲分區設置對應的鏡像恢復標識rec_im