本發(fā)明涉及計(jì)算機(jī)啟動(dòng)技術(shù),特別涉及一種多備份啟動(dòng)方法。
背景技術(shù):
目前尚沒(méi)有針對(duì)多種存儲(chǔ)類(lèi)型的同一文件的多個(gè)備份的啟動(dòng)方法。無(wú)法對(duì)同時(shí)存在的同一文件的備份進(jìn)行有效管理。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種多備份啟動(dòng)方法,用于解決上述現(xiàn)有技術(shù)的問(wèn)題。
本發(fā)明的一種多備份啟動(dòng)方法,其中,包括:步驟1:對(duì)需要優(yōu)先啟動(dòng)的分區(qū)表上建立一表最先啟動(dòng)的文件、一啟動(dòng)順序表以及一啟動(dòng)文件列表;步驟2:按照啟動(dòng)順序表依次進(jìn)入分區(qū),判斷分區(qū)表的類(lèi)型;步驟3:按照分區(qū)表的類(lèi)型開(kāi)始加載文件;步驟4:檢索任一分區(qū)內(nèi)是否存在該最先啟動(dòng)的文件,如果沒(méi)有最先啟動(dòng)的文件,跳到下一個(gè)分區(qū);如果有,通過(guò)算法校驗(yàn)是否與啟動(dòng)文件列表的文件相匹配,如果匹配,執(zhí)行步驟5,如果不匹配,則標(biāo)志這個(gè)分區(qū)為錯(cuò)誤分區(qū),不再掃描;步驟5:加載與該最先啟動(dòng)的文件相關(guān)聯(lián)的文件。
根據(jù)本發(fā)明的多備份啟動(dòng)方法的一實(shí)施例,其中,該分區(qū)表的類(lèi)型可以是USB、nand flash、sd卡和/或硬盤(pán)。
根據(jù)本發(fā)明的多備份啟動(dòng)方法的一實(shí)施例,其中,步驟4還包括:如果所有的分區(qū)都不存在最先啟動(dòng)的文件,按照默認(rèn)順序啟動(dòng),直到有一個(gè)分區(qū)可以校驗(yàn)成功,然后啟動(dòng)該分區(qū)。
根據(jù)本發(fā)明的多備份啟動(dòng)方法的一實(shí)施例,其中,步驟3包括,如果是分區(qū)表是nand類(lèi)型執(zhí)行步驟31,如果是USB執(zhí)行步驟32,如果是sd卡執(zhí)行步驟33,如果是硬盤(pán)執(zhí)行步驟33;步驟31:進(jìn)行nand加載,如加載成功,轉(zhuǎn)步驟4;步驟32:進(jìn)行USB加載,如加載成功,轉(zhuǎn)步驟4;步驟33:進(jìn)行sd卡加載,如加載成功,轉(zhuǎn)步驟4;步驟34:進(jìn)行硬盤(pán)加載,如加載成功,轉(zhuǎn)步驟4。
根據(jù)本發(fā)明的多備份啟動(dòng)方法的一實(shí)施例,其中,啟動(dòng)文件列表包含有文件名、文件大小信息以及檢驗(yàn)碼,將該最先啟動(dòng)的文件與文件名、文件大小信息以及檢驗(yàn)碼進(jìn)行比對(duì),如果匹配,執(zhí)行步驟5,如果不匹配,則標(biāo)志這個(gè)分區(qū)為錯(cuò)誤分區(qū),不再掃描。
綜上,本發(fā)明的多備份啟動(dòng)方法的效果是:解決了目前尚沒(méi)有針對(duì)多種存儲(chǔ)類(lèi)型的同一文件的多個(gè)備份的啟動(dòng)方法,能夠?qū)ν瑫r(shí)存在的同一文件的備份進(jìn)行有效管理。
附圖說(shuō)明
圖1所示為本發(fā)明多備份啟動(dòng)方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明提供的硬盤(pán)運(yùn)行狀態(tài)監(jiān)測(cè)系統(tǒng)做詳細(xì)說(shuō)明。
圖1所示為本發(fā)明多備份啟動(dòng)方法的流程圖,如圖1所示,本發(fā)明多備份啟動(dòng)方法包括:
步驟1:對(duì)需要優(yōu)先啟動(dòng)的分區(qū)表上建立一各分區(qū)表最先啟動(dòng)的文件以及一啟動(dòng)文件列表;
步驟2:進(jìn)行輪詢(xún)分區(qū)表,并判斷分區(qū)表的類(lèi)型;
輪詢(xún)分區(qū)表的即按照分區(qū)的啟動(dòng)順序依次確認(rèn)分區(qū)是否可以啟動(dòng);
比如啟動(dòng)順序?yàn)椋?usb,0)(nand,1)(usb,2);代表啟動(dòng)順序?yàn)閡sb分區(qū)0,nand分區(qū)1,usb分區(qū)2,進(jìn)入分區(qū)前判斷分區(qū)類(lèi)型,然后進(jìn)入分區(qū)檢索是否有update文件,如果所有分區(qū)都沒(méi)有update文件,然后按照順序校驗(yàn)文件校驗(yàn)碼是否正確。
分區(qū)表的類(lèi)型可以是USB、nand flash、sd卡、硬盤(pán)等;
步驟3:根據(jù)分區(qū)表的類(lèi)型進(jìn)行加載軟件;
加載的類(lèi)型可以是USB、nand flash、sd卡、硬盤(pán)等,與步驟2中的分區(qū)表類(lèi)型對(duì)應(yīng);
步驟4:首先檢索任一一分區(qū)內(nèi)是否存在最先啟動(dòng)的文件,如果有,通過(guò)算法校驗(yàn)是否與啟動(dòng)文件列表的文件相匹配,如果校驗(yàn)失敗,則標(biāo)志這個(gè)分區(qū)為錯(cuò)誤分區(qū),不再掃描,如果沒(méi)有最先啟動(dòng)的文件,跳到下一個(gè)分區(qū);如果所有的分區(qū)都不存在最先啟動(dòng)的文件,按照默認(rèn)順序啟動(dòng),直到有一個(gè)分區(qū)可以校驗(yàn)成功,然后啟動(dòng)該分區(qū)。
如圖1所示,對(duì)于一較佳實(shí)施例,其中,
步驟3包括:判斷分區(qū)表的類(lèi)型,如果是nand執(zhí)行步驟41,如果是USB執(zhí)行步驟42,如果是sd卡執(zhí)行步驟43,如果是硬盤(pán)執(zhí)行步驟43;
步驟4包括:
步驟41:進(jìn)行nand加載,如加載成功,步驟5;
步驟42:進(jìn)行USB加載,如加載成功,轉(zhuǎn)步驟5;
步驟43:進(jìn)行sd卡加載,如加載成功,轉(zhuǎn)步驟5;
步驟44:進(jìn)行硬盤(pán)加載,如加載成功,轉(zhuǎn)步驟5;
如圖1所示,該各分區(qū)表最先啟動(dòng)的文件可以命名為Update文件,Update文件可以是一個(gè)空文件,通過(guò)touch命令產(chǎn)生。比如在windows上創(chuàng)建個(gè)空文件叫update,不帶后綴。進(jìn)入分區(qū)前判斷分區(qū)類(lèi)型,然后進(jìn)入分區(qū)檢索是否有update文件,如果所有分區(qū)都沒(méi)有update文件,然后按照順序校驗(yàn)文件校驗(yàn)碼是否正確。
啟動(dòng)文件列表可以命名為file_list.txt,是在每個(gè)分區(qū)根目錄下需存的在一個(gè)文件,包含所有需要校驗(yàn)的軟件的信息。描述各軟件包,依次包含該軟件包的文件名、文件大小和校驗(yàn)值。
步驟5的通過(guò)算法校驗(yàn)是否與啟動(dòng)文件列表的文件相匹配包括:
File_list文件的格式類(lèi)似:
文件名1 文件大小 檢驗(yàn)碼;
文件名2 文件大小 校驗(yàn)碼;
通過(guò)算法校驗(yàn)是否與啟動(dòng)文件列表的文件相匹配具體包括:定義每次讀取數(shù)據(jù)512K字節(jié),計(jì)算此塊數(shù)據(jù)以字節(jié)為單位的累加數(shù)據(jù)和。然后將累加數(shù)據(jù)和與前一次計(jì)算數(shù)據(jù)和進(jìn)行異或操作,直到這個(gè)文件全部計(jì)算完成,文件最后如果所剩字節(jié)不滿(mǎn)512K字節(jié)以實(shí)際字節(jié)計(jì)算累加和,計(jì)算結(jié)果與之前的數(shù)據(jù)再進(jìn)行異或。
先輪詢(xún)file_list,根據(jù)文件內(nèi)容中的文件名,查看文件夾中是否有該update文件,如果有,計(jì)算大小,計(jì)算校驗(yàn)和,跟file_list中的值比對(duì),如果正確,繼續(xù)比對(duì)下一個(gè)update文件,如果都比對(duì)完畢,全部正確,就認(rèn)為該分區(qū)的文件可以啟動(dòng),啟動(dòng)該分區(qū),如果啟動(dòng)失敗后,進(jìn)行報(bào)錯(cuò)。校驗(yàn)和的主要作用就是保證數(shù)據(jù)的準(zhǔn)確,確保不會(huì)出現(xiàn)版本文件缺失,或者版本不對(duì)的問(wèn)題。多個(gè)分區(qū)的update文件按照順序執(zhí)行,第一個(gè)出現(xiàn)update文件并且版本校驗(yàn)通過(guò)的,就可以加載。
綜上,本發(fā)明的多備份啟動(dòng)方法的效果是:解決了目前尚沒(méi)有針對(duì)多種存儲(chǔ)類(lèi)型的同一文件的多個(gè)備份的啟動(dòng)方法,能夠?qū)ν瑫r(shí)存在的同一文件的備份進(jìn)行有效管理。