新四季網

基於linux的設備雙系統保護及升級方法

2023-07-02 07:18:21

基於linux的設備雙系統保護及升級方法
【專利摘要】本發明公開了一種基於linux的設備雙系統保護及升級方法,其中,上述的linux的設備雙系統保護方法,包括如下步驟:S01、在linux文件系統存儲空間中建立一個備份系統;S02、判斷linux系統是否為第一次啟動;S03、判斷params分區中的damaged標誌位是否被置位,若是,則從備用系統中恢復kernel分區及rootfs分區,若否,則執行步驟S04;S04、判斷判斷params分區中的appupdate標誌位是否被置位;S05、判斷params分區中的kernel、rootfs及appfs更新標誌位是否同時被置位;S06、檢查kernel分區鏡像是否完好;S07、檢查rootfs分區鏡像是否完好;S08、加載內核分區,linux系統開始工作。本發明通過對系統重要分區進行備份,檢測到損壞時用來恢復整個系統。
【專利說明】基於I inux的設備雙系統保護及升級方法
【技術領域】
[0001]本發明涉及嵌入式Iinux系統的【技術領域】,尤其涉及一種基於Iinux的設備雙系統保護及升級方法。
【背景技術】
[0002]一個典型的嵌入式Linux系統按照存儲空間的劃分通常包括引導區,內核區與文件系統區,引導區存放Boot Loader與系統參數,內核區存放特定嵌入式平臺的定製Linux內核。文件系統包括根文件系統和建立與Flash內存設備之上的文件系統。圖形界面系統和用戶應用程式就放在文件系統區中:l、Boot Loader佔用的空間一般都比較小,它後面緊挨著一個啟動參數區,用來保存Linux內核啟動參數和用戶啟動配置。2、Boot Loader程序是嵌入式系統的引導加載程序,是系統加電後運行的第一段軟體代碼。Boot Loader程序的主要任務就是初始化硬體設備,建立內存空間的映射圖,從而將系統的軟硬體環境帶到一個合適的環境中,Boot Loader程序最重要的任務就是啟動Linux內核。3、文件系統是嵌入式Iinux系統佔用空間最大的部分,它通常佔據了 Boot Loader和內核之外的所有空間,Linux啟動完畢之後會加載一個根文件系統,根文件系統包含了系統必備、配置信息、庫函數和shell解釋器以及核心目錄。其他的文件系統則可以掛載在根文件系統下面。BootLoader 一般通過JTAG接口和仿真器燒寫到存儲器,而內核和文件系統則可以通過串口和網口燒寫到存儲器。
[0003]現有技術中的嵌入式設備通常使用nandflash作為系統的存儲單元,當flash出現壞塊等情況時,會極大的影響系統的穩定性和可靠性。另外,系統程序進行升級時,flash出現壞塊等情況也會帶來對系統穩定性的影響。

【發明內容】

[0004]本發明提出了一種基於Iinux的設備雙系統保護及升級方法,主要解決的技術問題是現有技術中flash出現壞塊等情況時,會極大地影響系統的穩定性和可靠性的問題。
[0005]為解決上述技術問題,本發明採用的一個技術方案是:提供一種基於Iinux的設備雙系統保護方法,包括如下步驟:
[0006]S01、在Iinux文件系統存儲空間中建立一個備份系統,並在備份系統上設置有bakkernel分區、bakrootfs分區及bakappfs分區,Iinux文件系統上設置有params分區、kernel分區、rootfs分區及appfs分區,其中,params分區包括damage、appupdate標誌位、以及ker、rootfs與appfs更新標誌位;
[0007]S02、判斷Iinux系統是否為第一次啟動,若是,初始化params分區,並將更新的uprootfs鏡像去掉包頭後寫入rootfs分區及bakrootfs分區,以及將更新的upappfs鏡像去掉包括頭後寫入appfs分區及bakappfs分區,若否,則直接步驟S03 ;
[0008]S03、判斷params分區中的damaged標誌位是否被置位,若是,貝U從備用系統中恢復kernel分區及rootfs分區,若否,則執行步驟S04 ;[0009]S04、判斷判斷params分區中的appupdate標誌位是否被置位,若是,貝U檢查upappfs鏡像是否損壞,若損壞,則忽略此次更新,恢復appupdate標誌位並初始化params分區;若否,則將去掉包頭的鏡像寫入appfs分區之後,初始化params分區;
[0010]S05、判斷params分區中的kernel、rootfs及appfs更新標誌位是否同時被置位,若是,則檢查需更新的upker、uprootfs及upappfs鏡像是否損壞,若是,則忽略此次升級,並恢復kernel、rootfs及appfs更新標誌位;若否,則將upkernel、去掉包頭的uprootfs、upappfs 鏡像寫入到 kernel、rootfs、appfs 分區中;
[0011]S06、檢查kernel分區鏡像是否完好,若損壞,則將damaged標誌位置位,並從bakkernel、bakrootfs、bakappfs 中恢復 kerne 1、rootfs、appfs 分區後,刪除 damaged 標誌位;
[0012]S07、檢查rootfs分區鏡像是否完好,若損壞,則將damaged標誌位置位,並從bakkernel、bakrootfs、bakappfs 中恢復 kernel、rootfs、appfs 分區後,刪除 damaged 標誌位;
[0013]S08、加載內核分區,Iinux系統開始工作。
[0014]其中,所述步驟S02中將更新的upappfs鏡像去掉包括頭後寫入appfs及bakappfs分區,還包括初始化Ptb表,所述Ptb表保存有更新後的各分區校驗碼及版本信
肩、O
[0015]其中,所述備份系統還包括bakparamfs分區,所述bakparamfs分區包含初始的params 分區。
[0016]其中,所述步驟S03之後,還包括判斷params中的factory標誌位是否被置位,若是,則從備份系統中的bakparamfs分區恢復params分區、kernel分區、rootfs分區及appfs分區。
[0017]其中,所述步驟S04中,當upappfs鏡像無損壞時,還包括將upappfs中前64byte的包頭信息提取,更新到Ptb表中。
[0018]其中,所述步驟S05中,當更新的upker、uprootfs及upappfs鏡像無損壞時,還包括提取uprootfs及upappfs的前64byte的包頭信息,更新到ptb表中。
[0019]為解決上述技術問題,本發明採用的一個技術方案是:提供了一種基於Iinux的設備雙系統升級方法,包括如下步驟:
[0020]S01、接收下載的應用程式的升級包;
[0021]S02、校驗下載的應用程式的升級包是否為準確,若否,則停止升級,並向網頁返回錯誤;若是,貝U通過nandwrite將鏡像寫入到相應的upkernel、uprootfs、upappfs中;
[0022]S03、設置params分區中的標誌位;
[0023]S04、重啟系統後,執行上述的基於Iinux的設備雙系統保護方法的步驟。
[0024]本發明的有益技術效果是:區別於現有技術中flash出現壞塊等情況時,會極大地影響系統的穩定性和可靠性的問題,本發明提供了一種基於Iinux的設備雙系統保護方法,採用了雙系統的設計方法,通過對系統重要分區進行備份,檢測到損壞時用來恢復整個系統,具體備用系統包括bakkernel分區、bakrootfs分區及bakappfs分區,在params中的標誌位被置位後,若kernel、rootfs以及appfs分區被損壞時,能夠通過bakkernel分區、bakrootfs分區及bakappfs分區恢復,能夠提高系統的穩定性。【專利附圖】

【附圖說明】
[0025]圖1是本發明基於Iinux的設備雙系統保護的流程圖;
[0026]圖2是本發明基於Iinux的設備雙系統升級的部分流程圖。
【具體實施方式】
[0027]為詳細說明本發明的技術內容、構造特徵、所實現目的及效果,以下結合實施方式並配合附圖詳予說明。
[0028]params分區:傳遞用戶空間的標誌位到uboot, uboot表示bootloader ;
[0029]Ptb分區:儲存有Ptb表,用於保存各個分區的crc校驗碼、版本號等信息;
[0030]kernel分區:內核分區,用於系統運行的內核;
[0031]bakkernel分區:內核備份分區,用於恢復損壞的主內核;
[0032]rootfs分區:根文件系統分區,用於儲存系統的根文件系統;
[0033]bakrootfs分區:根文件系統備份分區:恢復損壞的根文件系統;
[0034]paramfs分區:系統數據分區,用於保存應用程式需要的參數;
[0035]bakparamfs分區:系統數據備份分區,用於恢復出廠設置時使用;
[0036]appfs分區:應用程式分區,用於保存系統運行的各個應用程式;
[0037]bakappfs分區:應用程式備份分區,用於恢復損壞的應用程式分區;
[0038]upkernel分區:內核升級分區,用於保存內核升級鏡像;
[0039]uprootfs分區:根文件系統升級分區,用於保存根文件系統升級鏡像;
[0040]upappfs分區:應用程式升級分區,用於保存應用程式升級鏡像。
[0041]請參閱圖1,本實施例提供了基於Iinux的設備雙系統保護方法,包括如下步驟:
[0042]S01、在Iinux文件系統存儲空間中建立一個備份系統,並在備份系統上設置有bakkernel分區、bakrootfs分區及bakappfs分區,Iinux文件系統上設置有params分區、kernel分區、rootfs分區及appfs分區,其中,params分區包括damage、appupdate標誌位、以及ker、rootfs與appfs更新標誌位,並可以將其傳遞至bootloader ;該步驟對系統進行分區,搭建雙備份升級系統。
[0043]S02、判斷Iinux系統是否為第一次啟動,若是,初始化params分區,並將更新的uprootfs鏡像去掉包頭後寫入rootfs分區及bakrootfs分區,以及將更新的upappfs鏡像去掉包括頭後寫入appfs分區及bakappfs分區,若否,則直接步驟S03 ;該對upappfs及uprootfs鏡像寫入Iinux系統及備份系統中。該步驟在於判斷系統為第一次啟動時,初始化系統參數。
[0044]S03、判斷params分區中的damaged標誌位是否被置位,若是,貝U從備用系統中恢復kernel分區及rootfs分區,若否,則執行步驟S04 ;該步驟在於,如果上一次系統恢復過程中kernel分區及rootfs分區出現了異常,則重新對kernel分區及rootfs分區進行恢復操作。
[0045]S04、判斷判斷params分區中的appupdate標誌位是否被置位,若是,則檢查upappfs鏡像是否損壞,若損壞,則忽略此次更新,恢復appupdate標誌位並初始化params分區;若否,則將去掉包頭的鏡像寫入appfs分區之後,初始化params分區;該步驟在於,檢查是否有應用程式升級請求,以置位為標誌,如果有則進行升級。
[0046]S05、判斷params分區中的kernel、rootfs及appfs更新標誌位是否同時被置位,若是,則檢查需更新的upker、uprootfs及upappfs鏡像是否損壞,若損壞,則忽略此次升級,並恢復kernel、rootfs及appfs更新標誌位;若否,則將upkernel、去掉包頭的uprootfs、upappfs鏡像寫入到kernel、rootfs、appfs分區中;該步驟在於,檢查是否有內核、文件系統的升級請求,以置位為標誌,如果有則進行升級。
[0047]S06、檢查kernel分區鏡像是否完好,若損壞,則將damaged標誌位置位,並從bakkernel、bakrootfs、bakappfs 中恢復 kernel、rootfs、appfs 分區後,刪除 damaged 標誌位;該步驟在於,對內核進行檢查,如果損壞,則進行恢復。
[0048]S07、檢查rootfs分區鏡像是否完好,若損壞,則將damaged標誌位置位,並從bakkernel、bakrootfs、bakappfs 中恢復 kernel、rootfs、appfs 分區後,刪除 damaged 標誌位;該步驟在於,對文件系統進行檢查,如果損壞,則進行恢復。
[0049]S08、加載內核分區,Iinux系統開始工作。
[0050]在一實施例中,所述步驟S02中將更新的upappfs鏡像去掉包括頭後寫入appfs及bakappfs分區,還包括初始化Ptb表,所述Ptb表保存有更新後的各分區校驗碼及版本信息。
[0051]在一實施例中,所述備份系統還包括bakparamfs分區,所述bakparamfs分區包含初始的params分區。
[0052]在一實施例中,所述步驟S03之後,還包括判斷params中的factory標誌位是否被置位,若是,則從備份系統中的bakparamfs分區恢復params分區、kernel分區、rootfs分區及appfs分區。
[0053]在一實施例中,所述步驟S04中,當upappfs鏡像無損壞時,還包括將upappfs中前64byte的包頭信息提取,更新到ptb表中。
[0054]在一實施例中,所述步驟S05中,當更新的upker、uprootfs及upappfs鏡像無損壞時,還包括提取uprootfs及upappfs的前64byte的包頭信息,更新到ptb表中。
[0055]本發明區別於現有技術中flash出現壞塊等情況時,會極大地影響系統的穩定性和可靠性的問題,本發明提供了一種基於Iinux的設備雙系統保護方法,採用了雙系統的設計方法,通過對系統重要分區進行備份,檢測到損壞時用來恢復整個系統,具體備用系統包括bakkernel分區、bakrootfs分區及bakappfs分區,在params中的標誌位被置位後,若kernel、rootfs以及appfs分區被損壞時,能夠通過bakkernel分區、bakrootfs分區及bakappfs分區恢復,能夠提高系統的穩定性。
[0056]參閱圖2,本發明,提供了一種基於Iinux的設備雙系統升級方法,包括如下步驟:
[0057]S01、接收下載的應用程式的升級包;
[0058]S02、校驗下載的應用程式的升級包是否為準確,若否,則停止升級,並向網頁返回錯誤;若是,貝U通過nandwrite將鏡像寫入到相應的upkernel、uprootfs、upappfs中;
[0059]S03、設置params分區中的標誌位;
[0060]S04、重啟系統後,執行上述的基於Iinux的設備雙系統保護方法的步驟;
[0061]S04、在Iinux文件系統存儲空間中建立一個備份系統,並在備份系統上設置有bakkernel分區、bakrootfs分區及bakappfs分區,I inux文件系統上設置有params分區、kernel分區、rootfs分區及appfs分區,其中,params分區包括damage、appupdate標誌位、以及ker、rootfs與appfs更新標誌位,並將其傳遞至bootloader ;
[0062]S05、判斷Iinux系統是否為第一次啟動,若是,初始化params分區,並將更新的uprootfs鏡像去掉包頭後寫入rootfs分區及bakrootfs分區,以及將更新的upappfs鏡像去掉包括頭後寫入appfs分區及bakappfs分區,若否,則直接步驟S03 ;
[0063]S06、判斷params分區中的damaged標誌位是否被置位,若是,貝U從備用系統中恢復kernel分區及rootfs分區,若否,則執行步驟S04 ;
[0064]S07、判斷判斷params分區中的appupdate標誌位是否被置位,若是,則檢查upappfs鏡像是否損壞,若損壞,則忽略此次更新,恢復appupdate標誌位並初始化params分區;若否,則將去掉包頭的鏡像寫入appfs分區之後,初始化params分區;
[0065]S08、判斷params分區中的kernel、rootfs及appfs更新標誌位是否同時被置位,若是,則檢查需更新的upker、uprootfs及upappfs鏡像是否損壞,若損壞,則忽略此次升級,並恢復kernel、rootfs及appfs更新標誌位;若否,則將upkernel、去掉包頭的uprootfs、upappfs 鏡像寫入到 kernel、rootfs、appfs 分區中;
[0066]S09、檢查kernel分區鏡像是否完好,若損壞,則將damaged標誌位置位,並從bakkernel、bakrootfs、bakappfs 中恢復 kernel、rootfs、appfs 分區後,刪除 damaged 標誌位;
[0067]S10、檢查rootfs分區鏡像是否完好,若損壞,則將damaged標誌位置位,並從bakkernel、bakrootfs、bakappfs 中恢復 kernel、rootfs、appfs 分區後,刪除 damaged 標誌位;
[0068]S11、加載內核分區,Iinux系統開始工作。
[0069]本發明升級基於Iinux的設備雙系統升級方法,可分為下載和實際寫入兩個階段,分別交給應用程式和bootloader完成,通過應用上述的基於Iinux的設備雙系統保護方法,可以提高系統準確性及穩定性。
[0070]另外:
[0071]params分區定義如下:
[0072]
【權利要求】
1.一種基於Iinux的設備雙系統保護方法,其特徵在於,包括如下步驟: 501、在Iinux文件系統存儲空間中建立一個備份系統,並在備份系統上設置有bakkernel分區、bakrootfs分區及bakappfs分區,Iinux文件系統上設置有params分區、kernel分區、rootfs分區及appfs分區,其中,params分區包括damage、appupdate標誌位、以及ker、rootfs與appfs更新標誌位; 502、判斷Iinux系統是否為第一次啟動,若是,初始化params分區,並將更新的uprootfs鏡像去掉包頭後寫入rootfs分區及bakrootfs分區,以及將更新的upappfs鏡像去掉包括頭後寫入appfs分區及bakappfs分區,若否,則直接步驟S03 ; 503、判斷params分區中的damaged標誌位是否被置位,若是,則從備用系統中恢復kernel分區及rootfs分區,若否,則執行步驟S04 ; 504、判斷判斷params分區中的appupdate標誌位是否被置位,若是,則檢查upappfs鏡像是否損壞,若損壞,則忽略此次更新,恢復appupdate標誌位並初始化params分區;若否,則將去掉包頭的鏡像寫入appfs分區之後,初始化params分區; 505、判斷params分區中的kernel、rootfs及appfs更新標誌位是否同時被置位,若是,貝1J檢查需更新的upker、uprootfs及upappfs鏡像是否損壞,若損壞,則忽略此次升級,並恢復kernel、rootfs及appfs更新標誌位;若否,則將upkernel、去掉包頭的uprootfs、upappfs 鏡像寫入到 kernel、rootfs、appfs 分區中; 506、檢查kernel分區鏡像是否完好,若損壞,則將damaged標誌位置位,並從bakkernel、bakrootfs、bakappfs 中恢復 kerne 1、rootfs、appfs 分區後,刪除 damaged 標誌位; 507、檢查rootfs分區鏡像是否完好,若損壞,則將damaged標誌位置位,並從bakkernel、bakrootfs、bakappfs 中恢復 kernel、rootfs、appfs 分區後,刪除 damaged 標誌位; 508、加載內核分區,Iinux系統開始工作。
2.一種基於Iinux的設備雙系統保護方法,其特徵在於,所述步驟S02中將更新的upappfs鏡像去掉包括頭後寫入appfs及bakappfs分區,還包括初始化Ptb表,所述Ptb表保存有更新後的各分區校驗碼及版本信息。
3.根據權利要求1所述的基於Iinux的設備雙系統保護方法,其特徵在於,所述備份系統還包括bakparamfs分區,所述bakparamfs分區包含初始的params分區。
4.根據權利要求3所述的基於Iinux的設備雙系統保護方法,其特徵在於,所述步驟S03之後,還包括判斷params中的factory標誌位是否被置位,若是,則從備份系統中的bakparamfs分區恢復params分區、kernel分區、rootfs分區及appfs分區。
5.根據權利要求1所述的基於Iinux的設備雙系統保護方法,其特徵在於,所述步驟S04中,當upappfs鏡像無損壞時,還包括將upappfs中前64byte的包頭信息提取,更新到ptb表中。
6.根據權利要求1所述的基於Iinux的設備雙系統保護方法,其特徵在於,所述步驟S05中,當更新的upker、uprootfs及upappfs鏡像無損壞時,還包括提取uprootfs及upappfs的前64byte的包頭信息,更新到ptb表中。
7.一種基於Iinux的設備雙系統升級方法,其特徵在於,包括如下步驟:S01、接收下載的應用程式的升級包; S02、校驗下載的應用程式的升級包是否為準確,若否,則停止升級,並向網頁返回錯誤;若是,則通過nandwrite將鏡像寫入到相應的upkernel、uprootfs、upappfs中; S03、設置par ams分區中的標誌位; S04、重啟系統後,執行權利要求1-6任一項所述的基於1inux的設備雙系統保護方法的步驟。
【文檔編號】G06F17/30GK103677947SQ201410003631
【公開日】2014年3月26日 申請日期:2014年1月3日 優先權日:2014年1月3日
【發明者】李遠哲 申請人:深圳英飛拓科技股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀