一種系統(tǒng)升級(jí)方法和裝置的制造方法
【專利摘要】本發(fā)明提供了一種系統(tǒng)升級(jí)方法和裝置,嵌入式設(shè)備至少包括第一系統(tǒng)分區(qū)和第二系統(tǒng)分區(qū),該方法包括:升級(jí)之前,對(duì)上一次正常啟動(dòng)的啟動(dòng)參數(shù)進(jìn)行備份,設(shè)置升級(jí)標(biāo)志位;依據(jù)運(yùn)行系統(tǒng)信息,判斷正在運(yùn)行的系統(tǒng)所在的系統(tǒng)分區(qū)為第一系統(tǒng)分區(qū),對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入;若新的系統(tǒng)鏡像寫(xiě)入成功,則針對(duì)第二系統(tǒng)分區(qū)修改啟動(dòng)參數(shù)并清除升級(jí)標(biāo)志位;在所述嵌入式設(shè)備啟動(dòng)時(shí),若所述升級(jí)標(biāo)志位被設(shè)置,則利用備份的啟動(dòng)參數(shù)進(jìn)行啟動(dòng),第一系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū)。本發(fā)明能夠提高嵌入式設(shè)備系統(tǒng)升級(jí)的安全可靠性。
【專利說(shuō)明】
_種系統(tǒng)升級(jí)方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,特別涉及一種系統(tǒng)升級(jí)方法和裝置。
【【背景技術(shù)】】
[0002]隨著電子、通信以及計(jì)算機(jī)技術(shù)的迅猛發(fā)展,嵌入式設(shè)備已經(jīng)廣泛應(yīng)用于各領(lǐng)域,各行業(yè)對(duì)嵌入式設(shè)備的系統(tǒng)功能、性能以及規(guī)模的要求都在日益提高,因此對(duì)于嵌入式設(shè)備的系統(tǒng)升級(jí)也越發(fā)頻繁。
[0003]目前對(duì)于嵌入式設(shè)備的系統(tǒng)升級(jí),主要采用的是“單系統(tǒng)”升級(jí)方案,及在整個(gè)嵌入式設(shè)備中只存儲(chǔ)和運(yùn)行一套系統(tǒng),在需要升級(jí)時(shí),先通過(guò)網(wǎng)絡(luò)或者串口等方式把新的系統(tǒng)鏡像下載到系統(tǒng)內(nèi)存,然后開(kāi)始一次性地擦除設(shè)備的整個(gè)系統(tǒng)分區(qū)(包括內(nèi)核分區(qū)及文件系統(tǒng)分區(qū)),最后再將新的系統(tǒng)鏡像寫(xiě)入系統(tǒng)分區(qū),從而完成嵌入式設(shè)備的系統(tǒng)升級(jí)。
[0004]但現(xiàn)有技術(shù)中采用的這種“單系統(tǒng)”升級(jí)方案不能夠保證升級(jí)過(guò)程中的安全可靠性,當(dāng)在升級(jí)過(guò)程中出現(xiàn)斷電、斷網(wǎng)等異常情況時(shí),會(huì)對(duì)嵌入式設(shè)備造成不可恢復(fù)的損失,使設(shè)備變“磚”,無(wú)法重新正常啟動(dòng)。
【
【發(fā)明內(nèi)容】
】
[0005]有鑒于此,本發(fā)明提供了一種系統(tǒng)升級(jí)方法和裝置,以便于提高嵌入式設(shè)備系統(tǒng)升級(jí)的安全可靠性。
[0006]具體技術(shù)方案如下:
[0007]本發(fā)明提供了一種系統(tǒng)升級(jí)方法,嵌入式設(shè)備至少包括第一系統(tǒng)分區(qū)和第二系統(tǒng)分區(qū),該方法包括:
[0008]升級(jí)之前,對(duì)上一次正常啟動(dòng)的啟動(dòng)參數(shù)進(jìn)行備份,設(shè)置升級(jí)標(biāo)志位;
[0009]依據(jù)運(yùn)行系統(tǒng)信息,判斷正在運(yùn)行的系統(tǒng)所在的系統(tǒng)分區(qū)為第一系統(tǒng)分區(qū),對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入;
[0010]若新的系統(tǒng)鏡像寫(xiě)入成功,則針對(duì)第二系統(tǒng)分區(qū)修改啟動(dòng)參數(shù)并清除升級(jí)標(biāo)志位;
[0011]在所述嵌入式設(shè)備啟動(dòng)時(shí),若所述升級(jí)標(biāo)志位被設(shè)置,則利用備份的啟動(dòng)參數(shù)進(jìn)行啟動(dòng),第一系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū)。
[0012 ]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,該方法還包括:
[0013]在所述嵌入式設(shè)備啟動(dòng)時(shí),若所述升級(jí)標(biāo)志位已被清除,則利用當(dāng)前的啟動(dòng)參數(shù)啟動(dòng)所述第二系統(tǒng)分區(qū)中的系統(tǒng)鏡像,第二系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū)。
[0014]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,所述嵌入式設(shè)備還包括維護(hù)所述運(yùn)行系統(tǒng)信息的運(yùn)行系統(tǒng)信息分區(qū)。
[0015]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,該方法還包括:
[0016]若新的系統(tǒng)鏡像寫(xiě)入成功,則將所述第一系統(tǒng)分區(qū)的用戶配置信息添加至所述第二系統(tǒng)分區(qū)。
[0017]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,該方法還包括:
[0018]在升級(jí)之前,從網(wǎng)絡(luò)或者串口獲取所述新的系統(tǒng)鏡像,并寫(xiě)入內(nèi)存。
[0019]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,在所述對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入之前,還包括:
[0020]對(duì)獲取的所述新的系統(tǒng)鏡像進(jìn)行校驗(yàn),如果校驗(yàn)成功,則繼續(xù)執(zhí)行所述對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入;如果校驗(yàn)失敗,則結(jié)束當(dāng)前升級(jí)過(guò)程。
[0021]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,所述校驗(yàn)包括:
[0022]對(duì)所述新的系統(tǒng)鏡像進(jìn)行完整性檢查;和/或,
[0023]檢驗(yàn)所述新的系統(tǒng)鏡像是否適用于所述嵌入式設(shè)備。
[0024]本發(fā)明還提供了一種系統(tǒng)升級(jí)裝置,嵌入式設(shè)備至少包括第一系統(tǒng)分區(qū)和第二系統(tǒng)分區(qū),該裝置包括:
[0025]參數(shù)維護(hù)單元,用于在升級(jí)之前,對(duì)上一次正常啟動(dòng)的啟動(dòng)參數(shù)進(jìn)行備份并設(shè)置升級(jí)標(biāo)志位;新的系統(tǒng)鏡像寫(xiě)入成功后,針對(duì)第二系統(tǒng)分區(qū)修改啟動(dòng)參數(shù)并清除升級(jí)標(biāo)志位;
[0026]鏡像寫(xiě)入單元,用于依據(jù)運(yùn)行系統(tǒng)信息,判斷正在運(yùn)行的系統(tǒng)所在的系統(tǒng)分區(qū)為第一系統(tǒng)分區(qū),對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入;
[0027]系統(tǒng)啟動(dòng)單元,用于在所述嵌入式設(shè)備啟動(dòng)時(shí),若所述升級(jí)標(biāo)志位被設(shè)置,則利用備份的啟動(dòng)參數(shù)進(jìn)行啟動(dòng),第一系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū)。
[0028]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,所述系統(tǒng)啟動(dòng)單元,還用于在所述嵌入式設(shè)備啟動(dòng)時(shí),若所述升級(jí)標(biāo)志位已被清除,則利用當(dāng)前的啟動(dòng)參數(shù)啟動(dòng)所述第二系統(tǒng)分區(qū)中的系統(tǒng)鏡像,第二系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū)。
[0029]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,所述參數(shù)維護(hù)單元,還用于在運(yùn)行系統(tǒng)信息分區(qū)中維護(hù)所述運(yùn)行系統(tǒng)信息。
[0030]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,該裝置還包括:
[0031]配置維護(hù)單元,用于若新的系統(tǒng)鏡像寫(xiě)入成功,則將所述第一系統(tǒng)分區(qū)的用戶配置信息添加至所述第二系統(tǒng)分區(qū)。
[0032 ]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,該裝置還包括:
[0033]鏡像獲取單元,用于在升級(jí)之前,從網(wǎng)絡(luò)或者串口獲取所述新的系統(tǒng)鏡像,并寫(xiě)入內(nèi)存。
[0034]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,該裝置還包括:
[0035]鏡像校驗(yàn)單元,用于對(duì)獲取的所述新的系統(tǒng)鏡像進(jìn)行校驗(yàn),如果校驗(yàn)成功,則觸發(fā)所述鏡像寫(xiě)入單元執(zhí)行所述對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入;如果校驗(yàn)失敗,則結(jié)束當(dāng)前升級(jí)過(guò)程。
[0036]根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,所述鏡像檢驗(yàn)單元執(zhí)行的校驗(yàn)包括:
[0037]對(duì)所述新的系統(tǒng)鏡像進(jìn)行完整性檢查;和/或,
[0038]檢驗(yàn)所述新的系統(tǒng)鏡像是否適用于所述嵌入式設(shè)備。
[0039]由以上技術(shù)方案可以看出,本發(fā)明采用至少兩個(gè)系統(tǒng)分區(qū)的方式,將升級(jí)采用的新的系統(tǒng)鏡像寫(xiě)入除正在運(yùn)行的系統(tǒng)所在的系統(tǒng)分區(qū)的另一系統(tǒng)分區(qū),并且對(duì)啟動(dòng)參數(shù)進(jìn)行備份并設(shè)置升級(jí)標(biāo)志位,以便在系統(tǒng)鏡像寫(xiě)入失敗時(shí),也能夠依據(jù)升級(jí)標(biāo)志位的設(shè)置利用備份的啟動(dòng)參數(shù)正常啟動(dòng),提高了嵌入式設(shè)備系統(tǒng)升級(jí)的安全可靠性。
【【附圖說(shuō)明】】
[0040]圖1為本發(fā)明實(shí)施例提供的一種方法流程圖;
[0041 ]圖2為本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)圖。
【【具體實(shí)施方式】】
[0042]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
[0043]在本發(fā)明實(shí)施例中使用的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本發(fā)明。在本發(fā)明實(shí)施例和所附權(quán)利要求書(shū)中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。
[0044]應(yīng)當(dāng)理解,本文中使用的術(shù)語(yǔ)“和/或”僅僅是一種描述關(guān)聯(lián)對(duì)象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,六和/或B,可以表示:單獨(dú)存在A,同時(shí)存在A和B,單獨(dú)存在B這三種情況。另外,本文中字符,一般表示前后關(guān)聯(lián)對(duì)象是一種“或”的關(guān)系。
[0045]取決于語(yǔ)境,如在此所使用的詞語(yǔ)“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”或“響應(yīng)于檢測(cè)”。類似地,取決于語(yǔ)境,短語(yǔ)“如果確定”或“如果檢測(cè)(陳述的條件或事件)”可以被解釋成為“當(dāng)確定時(shí)”或“響應(yīng)于確定”或“當(dāng)檢測(cè)(陳述的條件或事件)時(shí)”或“響應(yīng)于檢測(cè)(陳述的條件或事件)”。
[0046]本發(fā)明實(shí)施例提供的系統(tǒng)升級(jí)方式,采用“雙系統(tǒng)”升級(jí)方案,但需要說(shuō)明的是,此處的“雙系統(tǒng)”指的是,正在運(yùn)行的系統(tǒng)所在的系統(tǒng)分區(qū)與升級(jí)時(shí)采用的系統(tǒng)分區(qū)為兩個(gè)獨(dú)立的系統(tǒng)分區(qū),但并非限制只能采用兩個(gè)系統(tǒng)分區(qū),若存在更多數(shù)量的系統(tǒng)分區(qū),本發(fā)明同樣適用。在本發(fā)明的后續(xù)實(shí)施例中僅以兩個(gè)系統(tǒng)分區(qū)為例進(jìn)行描述,為了方面描述,對(duì)這兩個(gè)系統(tǒng)分區(qū)分別命名為第一系統(tǒng)分區(qū)和第二系統(tǒng)分區(qū),另外,嵌入式設(shè)備還存在其他分區(qū)用于維護(hù)其他信息,將在后續(xù)實(shí)施例中涉及到。
[0047]圖1為本發(fā)明實(shí)施例提供的一種方法流程圖,如圖1所示,該方法可以包括以下步驟:
[0048]在101中,將獲取的新的系統(tǒng)鏡像寫(xiě)入內(nèi)存。
[0049]當(dāng)需要對(duì)嵌入式設(shè)備進(jìn)行升級(jí)時(shí),可以通過(guò)網(wǎng)絡(luò)的方式或者串口的方式將新的系統(tǒng)鏡像寫(xiě)入嵌入式設(shè)備的內(nèi)存。例如,維護(hù)人員可以從網(wǎng)絡(luò)下載新的系統(tǒng)鏡像至嵌入式設(shè)備的內(nèi)存?;蛘呔S護(hù)人員可以通過(guò)遠(yuǎn)程通訊的方式,將新的系統(tǒng)鏡像通過(guò)網(wǎng)絡(luò)推送至嵌入式設(shè)備,由嵌入式設(shè)備寫(xiě)入內(nèi)存。再或者,維護(hù)人員可以通過(guò)串口從其他諸如U盤、移動(dòng)硬盤等等存儲(chǔ)設(shè)備獲取新的系統(tǒng)鏡像,并寫(xiě)入嵌入式設(shè)備的內(nèi)存;等等。
[0050]在102中,升級(jí)之前,對(duì)上一次正常啟動(dòng)的啟動(dòng)參數(shù)進(jìn)行備份,設(shè)置升級(jí)標(biāo)志位。[0051 ]啟動(dòng)參數(shù)是系統(tǒng)啟動(dòng)時(shí)需要用到的參數(shù),包括諸如系統(tǒng)內(nèi)核的加載地址信息、需要掛載的文件系統(tǒng)信息,等等。在本發(fā)明實(shí)施例中為了避免升級(jí)失敗后系統(tǒng)無(wú)法正常啟動(dòng),可以在升級(jí)之前,對(duì)上一次正常啟動(dòng)的啟動(dòng)參數(shù)進(jìn)行備份。
[0052]本發(fā)明實(shí)施例設(shè)置了一個(gè)新的信息標(biāo)志位,即升級(jí)標(biāo)志位,用于標(biāo)識(shí)升級(jí)是否成功,通過(guò)該升級(jí)標(biāo)志位設(shè)置,能夠使得在系統(tǒng)重啟過(guò)程中,獲知上次系統(tǒng)升級(jí)是否成功,從而確定是否從新的系統(tǒng)鏡像進(jìn)行啟動(dòng)。
[0053]在升級(jí)之前,首先對(duì)升級(jí)標(biāo)識(shí)位進(jìn)行設(shè)置,該設(shè)置用于指示升級(jí)且并未成功。上述的啟動(dòng)參數(shù)和升級(jí)標(biāo)志位都可以作為啟動(dòng)代碼(Bootloader)中額外添加的環(huán)境變量。
[0054]在103中,對(duì)獲取的新的系統(tǒng)鏡像進(jìn)行校驗(yàn),如果校驗(yàn)成功,則繼續(xù)執(zhí)行104;否則結(jié)束當(dāng)前升級(jí)過(guò)程。
[0055]在系統(tǒng)鏡像的文件頭中通常會(huì)包含兩種信息:一個(gè)是該系統(tǒng)鏡像文件所使用的硬件信息,另一個(gè)是系統(tǒng)鏡像文件的MD5值。
[0056]本步驟中進(jìn)行的校驗(yàn)可以包括檢驗(yàn)該新的系統(tǒng)鏡像是否適用于該嵌入式設(shè)備,SP判斷本嵌入式設(shè)備是否符合系統(tǒng)鏡像的文件頭中包含的硬件信息,如果是,則說(shuō)明該新的系統(tǒng)鏡像適用于該嵌入式設(shè)備。
[0057]本步驟中進(jìn)行的校驗(yàn)也可以包括對(duì)新的系統(tǒng)鏡像進(jìn)行完整性檢查,例如對(duì)新的系統(tǒng)鏡像中的文件進(jìn)行MD5處理,將得到的MD5值與新的系統(tǒng)鏡像的文件頭中包含的MD5值進(jìn)行比較,如果一致,則通過(guò)完整性檢查;否則未通過(guò)完整性檢查。
[0058]本步驟是為了提高升級(jí)成功率所優(yōu)選執(zhí)行的步驟,并不是本發(fā)明所必須的步驟。另外,本步驟的執(zhí)行也可以在新的系統(tǒng)鏡像寫(xiě)入內(nèi)存后就執(zhí)行,只要保證在步驟104之前執(zhí)行即可。若新的系統(tǒng)鏡像校驗(yàn)失敗,除了結(jié)束當(dāng)前升級(jí)流程之外,還可以進(jìn)行報(bào)錯(cuò),提示維護(hù)人員新的系統(tǒng)鏡像校驗(yàn)失敗。
[0059]在104中,依據(jù)運(yùn)行系統(tǒng)信息,判斷正在運(yùn)行的系統(tǒng)所在的系統(tǒng)分區(qū)為第一系統(tǒng)分區(qū),對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入。
[0060]在本發(fā)明實(shí)施例中,可以通過(guò)一個(gè)專門的分區(qū),即運(yùn)行系統(tǒng)信息分區(qū)(ISSU,InService System Upgrade)來(lái)維護(hù)運(yùn)行系統(tǒng)信息,從該運(yùn)行系統(tǒng)信息中可以確定正在運(yùn)行的系統(tǒng)所在系統(tǒng)分區(qū)。當(dāng)然,除了采用專門分區(qū)的方式來(lái)進(jìn)行維護(hù)之外,還可以采用其他方式,例如通過(guò)一個(gè)標(biāo)志位來(lái)標(biāo)識(shí)當(dāng)前運(yùn)行的系統(tǒng)所在的分區(qū),等等。
[0061]本步驟實(shí)際上是將升級(jí)后的系統(tǒng)安裝于除了當(dāng)前運(yùn)行的系統(tǒng)之外的其他系統(tǒng)分區(qū),由于本實(shí)施例以兩個(gè)系統(tǒng)分區(qū)為例,因此對(duì)第二系統(tǒng)分區(qū)進(jìn)行格式化和新的系統(tǒng)鏡像的寫(xiě)入。
[0062]在新的系統(tǒng)鏡像的寫(xiě)入過(guò)程中,可能一切順利最終寫(xiě)入成功,也可能發(fā)生諸如斷電等異常,因此可以在105中,判斷新的系統(tǒng)鏡像是否寫(xiě)入成功,如果是,則執(zhí)行106;否則,在異常清除后自動(dòng)或者手動(dòng)進(jìn)行嵌入式設(shè)備的重啟,轉(zhuǎn)至執(zhí)行107。
[0063]在106中,針對(duì)第二系統(tǒng)分區(qū)修改啟動(dòng)參數(shù),并清除升級(jí)標(biāo)志位。然后自動(dòng)或者手動(dòng)進(jìn)行嵌入式設(shè)備的重啟,執(zhí)行107。
[0064]如果系統(tǒng)鏡像寫(xiě)入成功,則下次嵌入式設(shè)備可以從第二系統(tǒng)分區(qū)啟動(dòng),因此啟動(dòng)參數(shù)針對(duì)第二系統(tǒng)分區(qū)進(jìn)行修改,以指向第二系統(tǒng)分區(qū)。清除升級(jí)標(biāo)志位以指示升級(jí)成功,也是為了指示下次可以從第二系統(tǒng)分區(qū)啟動(dòng),若升級(jí)標(biāo)志位被設(shè)置,則只能從原來(lái)運(yùn)行的系統(tǒng)分區(qū)啟動(dòng)。
[0065]在本發(fā)明實(shí)施例中,設(shè)置升級(jí)標(biāo)志位可以將升級(jí)標(biāo)志位置I,清除升級(jí)標(biāo)識(shí)位可以將升級(jí)標(biāo)志位置O。當(dāng)然也可以采用其他升級(jí)標(biāo)志位的設(shè)置和清除方式,在此不一一舉例。
[0066]由于新的系統(tǒng)鏡像的寫(xiě)入完成,在本步驟中,還可以進(jìn)一步將第一系統(tǒng)分區(qū)的用戶配置信息添加至第二系統(tǒng)分區(qū),以便從第二系統(tǒng)分區(qū)啟動(dòng)后能夠快速恢復(fù)用戶配置。這種方式實(shí)際上就是將第一系統(tǒng)分區(qū)的用戶配置信息拷貝到第二系統(tǒng)分區(qū),實(shí)現(xiàn)方式非常簡(jiǎn)便。
[0067]在107中,嵌入式設(shè)備啟動(dòng)過(guò)程中,判斷升級(jí)標(biāo)志位是否被設(shè)置,如果是,執(zhí)行108;否則,執(zhí)行109。
[0068]若升級(jí)標(biāo)志位處于被設(shè)置的狀態(tài),則說(shuō)明升級(jí)未成功,因此在108中,利用備份的啟動(dòng)參數(shù)進(jìn)行啟動(dòng),第一系統(tǒng)分區(qū)為正在運(yùn)行的系統(tǒng)分區(qū),結(jié)束本次升級(jí)過(guò)程。也就是說(shuō),升級(jí)未成功也可以保證從原來(lái)運(yùn)行的系統(tǒng)重新啟動(dòng),保證設(shè)備不會(huì)變“磚”。
[0069]若升級(jí)標(biāo)識(shí)位被清除,則說(shuō)明在第二系統(tǒng)分區(qū)中的系統(tǒng)鏡像被寫(xiě)入成功,因此在109中,依據(jù)當(dāng)前的啟動(dòng)參數(shù),啟動(dòng)第二系統(tǒng)分區(qū)寫(xiě)入的新的系統(tǒng)鏡像,第二系統(tǒng)分區(qū)為正在運(yùn)行的系統(tǒng)分區(qū),本次升級(jí)視為成功。即順利啟動(dòng)升級(jí)后的系統(tǒng)。
[0070]在后續(xù)嵌入式設(shè)備啟動(dòng)過(guò)程中,由于啟動(dòng)參數(shù)是針對(duì)第二系統(tǒng)分區(qū)修改后的啟動(dòng)參數(shù),啟動(dòng)參數(shù)的啟動(dòng)位置都指向第二系統(tǒng)分區(qū),也就是說(shuō),默認(rèn)從第二系統(tǒng)分區(qū)啟動(dòng)。
[0071]但也可以由人工手動(dòng)選擇從哪個(gè)系統(tǒng)分區(qū)啟動(dòng),如果第二系統(tǒng)分區(qū)中的系統(tǒng)鏡像被寫(xiě)入成功,就相當(dāng)于在嵌入式設(shè)備中安裝了兩個(gè)系統(tǒng),即升級(jí)前的系統(tǒng)和升級(jí)后的系統(tǒng),這兩個(gè)系統(tǒng)都能夠被啟動(dòng)和運(yùn)行。因此,在嵌入式設(shè)備的啟動(dòng)過(guò)程中,也可以由用戶選擇啟動(dòng)的系統(tǒng)分區(qū),然后從用戶選擇的系統(tǒng)分區(qū)啟動(dòng)系統(tǒng)。
[0072]以上是針對(duì)本發(fā)明所提供方法進(jìn)行的詳細(xì)描述,下面結(jié)合實(shí)施例對(duì)本發(fā)明所提供的裝置進(jìn)行詳細(xì)描述。
[0073]圖2為本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)圖,該裝置設(shè)置于嵌入式設(shè)備,該嵌入式設(shè)備至少包括第一系統(tǒng)分區(qū)和第二系統(tǒng)分區(qū),如圖2所示,該裝置可以包括:參數(shù)維護(hù)單元01、鏡像寫(xiě)入單元02和系統(tǒng)啟動(dòng)單元03,還可以進(jìn)一步包括配置維護(hù)單元04、鏡像獲取單元05以及鏡像校驗(yàn)單元06。其中各組成單元的主要功能如下:
[0074]當(dāng)需要對(duì)嵌入式設(shè)備進(jìn)行升級(jí)時(shí),鏡像獲取單元05在升級(jí)之前,從網(wǎng)絡(luò)或者串口獲取新的系統(tǒng)鏡像,并寫(xiě)入內(nèi)存。
[0075]參數(shù)維護(hù)單元01負(fù)責(zé)在升級(jí)之前,對(duì)上一次正常啟動(dòng)的啟動(dòng)參數(shù)進(jìn)行備份并設(shè)置升級(jí)標(biāo)志位;新的系統(tǒng)鏡像寫(xiě)入成功后,針對(duì)第二系統(tǒng)分區(qū)設(shè)置啟動(dòng)參數(shù)并清除升級(jí)標(biāo)志位。
[0076]啟動(dòng)參數(shù)是系統(tǒng)啟動(dòng)時(shí)需要用到的參數(shù),包括諸如系統(tǒng)內(nèi)核的加載地址信息、需要掛載的文件系統(tǒng)信息,等等。在本發(fā)明實(shí)施例中為了避免升級(jí)失敗后系統(tǒng)無(wú)法正常啟動(dòng),可以在升級(jí)之前,對(duì)上一次正常啟動(dòng)的啟動(dòng)參數(shù)進(jìn)行備份。
[0077]本發(fā)明實(shí)施例設(shè)置了一個(gè)新的信息標(biāo)志位,即升級(jí)標(biāo)志位,用于標(biāo)識(shí)升級(jí)是否成功,通過(guò)該升級(jí)標(biāo)志位設(shè)置,能夠使得在系統(tǒng)重啟過(guò)程中,獲知上次系統(tǒng)升級(jí)是否成功,從而確定是否從新的系統(tǒng)鏡像進(jìn)行啟動(dòng)。
[0078]在升級(jí)之前,首先對(duì)升級(jí)標(biāo)識(shí)位進(jìn)行設(shè)置,該設(shè)置用于指示升級(jí)且并未成功。
[0079]如果系統(tǒng)鏡像寫(xiě)入成功,則下次嵌入式設(shè)備可以從第二系統(tǒng)分區(qū)啟動(dòng),因此啟動(dòng)參數(shù)針對(duì)第二系統(tǒng)分區(qū)設(shè)置。清除升級(jí)標(biāo)志位以指示升級(jí)成功,也是為了指示下次可以從第二系統(tǒng)分區(qū)啟動(dòng),若升級(jí)標(biāo)志位被設(shè)置,則只能從原來(lái)運(yùn)行的系統(tǒng)分區(qū)啟動(dòng)。
[0080]鏡像校驗(yàn)單元06,用于對(duì)獲取的新的系統(tǒng)鏡像進(jìn)行校驗(yàn),如果校驗(yàn)成功,則觸發(fā)鏡像寫(xiě)入單元02執(zhí)行對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入;如果校驗(yàn)失敗,則結(jié)束當(dāng)前升級(jí)過(guò)程。
[0081 ]其中,鏡像校驗(yàn)單元06執(zhí)行的校驗(yàn)包括:
[0082]對(duì)新的系統(tǒng)鏡像進(jìn)行完整性檢查;和/或,檢驗(yàn)新的系統(tǒng)鏡像是否適用于嵌入式設(shè)備。
[0083]鏡像寫(xiě)入單元02負(fù)責(zé)依據(jù)運(yùn)行系統(tǒng)信息,判斷正在運(yùn)行的系統(tǒng)所在的系統(tǒng)分區(qū)為第一系統(tǒng)分區(qū),對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入。
[0084]參數(shù)維護(hù)單元01可以通過(guò)一個(gè)專門的分區(qū)即ISSU中維護(hù)運(yùn)行系統(tǒng)信息。當(dāng)然,除了采用專門分區(qū)的方式來(lái)進(jìn)行維護(hù)之外,還可以采用其他方式,例如通過(guò)一個(gè)標(biāo)志位來(lái)標(biāo)識(shí)當(dāng)前運(yùn)行的系統(tǒng)所在的分區(qū),等等。
[0085]系統(tǒng)啟動(dòng)單元03負(fù)責(zé)在嵌入式設(shè)備啟動(dòng)時(shí),若升級(jí)標(biāo)志位被設(shè)置,則利用備份的啟動(dòng)參數(shù)進(jìn)行啟動(dòng),第一系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū)。若升級(jí)標(biāo)志位被清除,則利用當(dāng)前的啟動(dòng)參數(shù)啟動(dòng)第二系統(tǒng)分區(qū)中的系統(tǒng)鏡像(即新的系統(tǒng)鏡像),第二系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū)。
[0086]在后續(xù)嵌入式設(shè)備啟動(dòng)過(guò)程中,由于啟動(dòng)參數(shù)是針對(duì)第二系統(tǒng)分區(qū)修改后的啟動(dòng)參數(shù),啟動(dòng)參數(shù)的啟動(dòng)位置都指向第二系統(tǒng)分區(qū),也就是說(shuō),默認(rèn)從第二系統(tǒng)分區(qū)啟動(dòng)。
[0087]但也可以由人工手動(dòng)選擇從哪個(gè)系統(tǒng)分區(qū)啟動(dòng),如果第二系統(tǒng)分區(qū)中的系統(tǒng)鏡像被寫(xiě)入成功,就相當(dāng)于在嵌入式設(shè)備中安裝了兩個(gè)系統(tǒng),即升級(jí)前的系統(tǒng)和升級(jí)后的系統(tǒng),這兩個(gè)系統(tǒng)都能夠被啟動(dòng)和運(yùn)行。因此,在啟動(dòng)新的系統(tǒng)鏡像之前,系統(tǒng)啟動(dòng)單元03還可以提示用戶選擇啟動(dòng)的系統(tǒng)分區(qū);若用戶選擇第一系統(tǒng)分區(qū),則從第一系統(tǒng)分區(qū)中的系統(tǒng)鏡像啟動(dòng),在啟動(dòng)成功后,觸發(fā)參數(shù)維護(hù)單元更新啟動(dòng)參數(shù),第一系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū);若用戶選擇第二系統(tǒng)分區(qū),則繼續(xù)執(zhí)行啟動(dòng)新的系統(tǒng)鏡像的操作。
[0088]更進(jìn)一步地,為了恢復(fù)用戶配置,配置維護(hù)單元04負(fù)責(zé)在升級(jí)之前保存正在運(yùn)行的系統(tǒng)的用戶配置信息;若新的系統(tǒng)鏡像寫(xiě)入成功,則將保存的用戶配置信息添加至第二系統(tǒng)分區(qū)。
[0089]本發(fā)明所提供方法的執(zhí)行主體,也就是本發(fā)明所提供的上述裝置可以位于本地終端系統(tǒng)級(jí)別的應(yīng)用,或者還可以為該系統(tǒng)界別的應(yīng)用的插件或軟件開(kāi)發(fā)工具包(SoftwareDevelopment Kit,SDK)等功能單元,本發(fā)明實(shí)施例對(duì)此不進(jìn)行特別限定。
[0090]在此舉一個(gè)具體的應(yīng)用場(chǎng)景:
[0091]智能路由器被部署于諸如商場(chǎng)、醫(yī)院、車站、機(jī)場(chǎng)等公共場(chǎng)所,通過(guò)一定的協(xié)議與后端各公司部署的服務(wù)器通信,完成對(duì)這些智能路由器的管理。其中管理包括:升級(jí)、重啟等操作。因?yàn)橄到y(tǒng)的更新或者應(yīng)用軟件的更新,通常需要對(duì)智能路由器進(jìn)行系統(tǒng)升級(jí)操作,然而這些智能路由器布設(shè)的十分廣泛且數(shù)量很大,不可能人工到現(xiàn)場(chǎng)逐一完成設(shè)備升級(jí),遠(yuǎn)程管理就成為一種優(yōu)選的方式。然而現(xiàn)實(shí)中,如果遠(yuǎn)程對(duì)智能路由器進(jìn)行升級(jí)的過(guò)程中,智能路由器出現(xiàn)了斷電等異常情況發(fā)生時(shí),可能會(huì)使智能路由器變“磚”,或者用戶配置信息丟失,智能路由器則無(wú)法正常工作,這就會(huì)給維護(hù)帶來(lái)困難和成本的增加。如果采用本發(fā)明實(shí)施例中提供的上述方式,則可以保證智能路由器即便在升級(jí)過(guò)程中出現(xiàn)異常情況,也不會(huì)影響其正常工作。
[0092]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式。
[0093]所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
[0094]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
[0095]上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(Read-Only Memory,R0M)、隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0096]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種系統(tǒng)升級(jí)方法,其特征在于,嵌入式設(shè)備至少包括第一系統(tǒng)分區(qū)和第二系統(tǒng)分區(qū),該方法包括: 升級(jí)之前,對(duì)上一次正常啟動(dòng)的啟動(dòng)參數(shù)進(jìn)行備份,設(shè)置升級(jí)標(biāo)志位; 依據(jù)運(yùn)行系統(tǒng)信息,判斷正在運(yùn)行的系統(tǒng)所在的系統(tǒng)分區(qū)為第一系統(tǒng)分區(qū),對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入; 若新的系統(tǒng)鏡像寫(xiě)入成功,則針對(duì)第二系統(tǒng)分區(qū)修改啟動(dòng)參數(shù)并清除升級(jí)標(biāo)志位; 在所述嵌入式設(shè)備啟動(dòng)時(shí),若所述升級(jí)標(biāo)志位被設(shè)置,則利用備份的啟動(dòng)參數(shù)進(jìn)行啟動(dòng),第一系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū)。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法還包括: 在所述嵌入式設(shè)備啟動(dòng)時(shí),若所述升級(jí)標(biāo)志位已被清除,則利用當(dāng)前的啟動(dòng)參數(shù)啟動(dòng)所述第二系統(tǒng)分區(qū)中的系統(tǒng)鏡像,第二系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū)。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述嵌入式設(shè)備還包括維護(hù)所述運(yùn)行系統(tǒng)信息的運(yùn)行系統(tǒng)信息分區(qū)。4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,該方法還包括: 若新的系統(tǒng)鏡像寫(xiě)入成功,則將所述第一系統(tǒng)分區(qū)的用戶配置信息添加至所述第二系統(tǒng)分區(qū)。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法還包括: 在升級(jí)之前,從網(wǎng)絡(luò)或者串口獲取所述新的系統(tǒng)鏡像,并寫(xiě)入內(nèi)存。6.根據(jù)權(quán)利要求1或5所述的方法,其特征在于,在所述對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入之前,還包括: 對(duì)獲取的所述新的系統(tǒng)鏡像進(jìn)行校驗(yàn),如果校驗(yàn)成功,則繼續(xù)執(zhí)行所述對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入;如果校驗(yàn)失敗,則結(jié)束當(dāng)前升級(jí)過(guò)程。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述校驗(yàn)包括: 對(duì)所述新的系統(tǒng)鏡像進(jìn)行完整性檢查;和/或, 檢驗(yàn)所述新的系統(tǒng)鏡像是否適用于所述嵌入式設(shè)備。8.—種系統(tǒng)升級(jí)裝置,其特征在于,嵌入式設(shè)備至少包括第一系統(tǒng)分區(qū)和第二系統(tǒng)分區(qū),該裝置包括: 參數(shù)維護(hù)單元,用于在升級(jí)之前,對(duì)上一次正常啟動(dòng)的啟動(dòng)參數(shù)進(jìn)行備份并設(shè)置升級(jí)標(biāo)志位;新的系統(tǒng)鏡像寫(xiě)入成功后,針對(duì)第二系統(tǒng)分區(qū)修改啟動(dòng)參數(shù)并清除升級(jí)標(biāo)志位; 鏡像寫(xiě)入單元,用于依據(jù)運(yùn)行系統(tǒng)信息,判斷正在運(yùn)行的系統(tǒng)所在的系統(tǒng)分區(qū)為第一系統(tǒng)分區(qū),對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入; 系統(tǒng)啟動(dòng)單元,用于在所述嵌入式設(shè)備啟動(dòng)時(shí),若所述升級(jí)標(biāo)志位被設(shè)置,則利用備份的啟動(dòng)參數(shù)進(jìn)行啟動(dòng),第一系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū)。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述系統(tǒng)啟動(dòng)單元,還用于在所述嵌入式設(shè)備啟動(dòng)時(shí),若所述升級(jí)標(biāo)志位已被清除,則利用當(dāng)前的啟動(dòng)參數(shù)啟動(dòng)所述第二系統(tǒng)分區(qū)中的系統(tǒng)鏡像,第二系統(tǒng)分區(qū)作為正在運(yùn)行的系統(tǒng)分區(qū)。10.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述參數(shù)維護(hù)單元,還用于在運(yùn)行系統(tǒng)信息分區(qū)中維護(hù)所述運(yùn)行系統(tǒng)信息。11.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,該裝置還包括: 配置維護(hù)單元,用于若新的系統(tǒng)鏡像寫(xiě)入成功,則將所述第一系統(tǒng)分區(qū)的用戶配置信息添加至所述第二系統(tǒng)分區(qū)。12.根據(jù)權(quán)利要求8所述的裝置,其特征在于,該裝置還包括: 鏡像獲取單元,用于在升級(jí)之前,從網(wǎng)絡(luò)或者串口獲取所述新的系統(tǒng)鏡像,并寫(xiě)入內(nèi)存。13.根據(jù)權(quán)利要求8或12所述的裝置,其特征在于,該裝置還包括: 鏡像校驗(yàn)單元,用于對(duì)獲取的所述新的系統(tǒng)鏡像進(jìn)行校驗(yàn),如果校驗(yàn)成功,則觸發(fā)所述鏡像寫(xiě)入單元執(zhí)行所述對(duì)第二系統(tǒng)分區(qū)進(jìn)行數(shù)據(jù)擦除和新的系統(tǒng)鏡像的寫(xiě)入;如果校驗(yàn)失敗,則結(jié)束當(dāng)前升級(jí)過(guò)程。14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述鏡像檢驗(yàn)單元執(zhí)行的校驗(yàn)包括: 對(duì)所述新的系統(tǒng)鏡像進(jìn)行完整性檢查;和/或, 檢驗(yàn)所述新的系統(tǒng)鏡像是否適用于所述嵌入式設(shè)備。
【文檔編號(hào)】G06F9/445GK106020865SQ201610305460
【公開(kāi)日】2016年10月12日
【申請(qǐng)日】2016年5月10日
【發(fā)明人】陳卓, 吳名宇, 吳明豪
【申請(qǐng)人】百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司