專利名稱:計算機(jī)開機(jī)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種開機(jī)方法,且特別是有關(guān)于一種計算機(jī)開機(jī)方法(computer bootstrapping method)。
背景技術(shù):
—般而言,計算機(jī)在開機(jī)的時候,皆通過基本輸入輸出系統(tǒng)(Basiclnput/Output System,BIOS)對計算機(jī)上的硬件初始化,并將計算機(jī)導(dǎo)入操作系統(tǒng),而使計算機(jī)正常運(yùn)作。 BIOS的程序代碼包含還原碼(recovery code)以及系統(tǒng)碼(system code)。其中,在系統(tǒng) 碼損毀時,還原碼可通過已被還原碼初始化的硬件裝置,如光驅(qū)、外接硬盤或其它可讀取外 部數(shù)據(jù)的硬件裝置,讀取更新程序,而對系統(tǒng)碼進(jìn)行回復(fù)救援。因此, 一般計算機(jī)會利用一 些硬件保護(hù)機(jī)制,如將儲存還原碼的閃存區(qū)塊預(yù)設(shè)為防寫入(write protection),防止還 原碼遭到修改而產(chǎn)生系統(tǒng)損毀的危險。 隨著計算機(jī)外設(shè)硬件裝置不斷地推陳出新,有時候也需要對還原碼作更新,以使 得還原碼可對應(yīng)到新型的硬件裝置,或通過更新而對有問題的還原碼作修正。因此,先前技 術(shù)利用一些機(jī)制,使得儲存還原碼的閃存區(qū)塊可在更新時解除防寫入。然而,若對還原碼更 新失敗,則會使得系統(tǒng)損毀。此外,還原碼更新失敗后,便無法利用還原碼初始化硬件裝置, 以取得更新程序重新更新還原碼。如此一來,僅能將更新失敗的閃存送回原廠,并利用燒錄 的方式將還原碼以及系統(tǒng)碼還原至閃存。
發(fā)明內(nèi)容
因此本發(fā)明的目的是提供一種計算機(jī)開機(jī)方法,將第一還原碼預(yù)先燒錄在設(shè)為防寫入 的第一啟動區(qū)塊,并在更新時,將第二還原碼儲存至設(shè)為可寫入的第二啟動區(qū)塊。在開機(jī)的時候, 先檢測第二啟動區(qū)塊是否有第二還原碼。在第二啟動區(qū)i央存有第二還原碼時,執(zhí)行第二還原碼完
成開機(jī)流程。然而,在第二啟動區(qū)塊沒有第二還原碼時,則繼續(xù)執(zhí)行第一還原碼完成開機(jī)流程。 根據(jù)本發(fā)明一實(shí)施例,一種計算機(jī)開機(jī)方法包含以下步驟自一計算機(jī)的一閃存 的一第一啟動區(qū)塊讀取并執(zhí)行一第一還原碼;檢測閃存的一第二啟動區(qū)塊是否有一第二還 原碼;在第二啟動區(qū)塊有第二還原碼時,自第二啟動區(qū)塊讀取第二還原碼;執(zhí)行第二還原 碼;自閃存的一系統(tǒng)區(qū)塊讀取一目前系統(tǒng)碼;執(zhí)行目前系統(tǒng)碼,并使計算機(jī)正常運(yùn)作。
由上述本發(fā)明較佳實(shí)施例可知,應(yīng)用本發(fā)明具有下列優(yōu)點(diǎn)??蓪Υ嬖歼€原碼 的閃存區(qū)塊設(shè)為防寫入,而避免原始還原碼遭到修改。如此一來,在系統(tǒng)碼或新版的還原碼 損毀時,仍可通過原始還原碼所初始化的硬件裝置作更新或系統(tǒng)回復(fù)救援,而不需將閃存 送回原廠利用燒錄而回復(fù)還原碼以及系統(tǒng)碼。此外,僅需增加儲存新版還原碼所需的閃存 容量,而不需變更硬件線路設(shè)計,因而可輕易的應(yīng)用于現(xiàn)有的硬件架構(gòu)上。
為讓本發(fā)明的上述和其它目的、特征、優(yōu)點(diǎn)與實(shí)施例能更明顯易懂,附圖的詳細(xì)說明如下 圖1是依照本發(fā)明一實(shí)施例的開機(jī)方法的流程圖; 圖2是圖1中更新第二還原碼以及目前系統(tǒng)碼(步驟220)的一實(shí)施例。
主要元件符號說明
100:開機(jī)方法
110 230:步驟
具體實(shí)施例方式
參照圖1 ,其是依照本發(fā)明一實(shí)施例的開機(jī)方法的流程圖。計算機(jī)開機(jī)方法將第一 還原碼預(yù)先燒錄在設(shè)為防寫入的第一啟動區(qū)塊,并在更新時,將第二還原碼儲存至設(shè)為可 寫入的第二啟動區(qū)塊。在計算機(jī)開機(jī)的時候,先檢測第二啟動區(qū)塊是否有第二還原碼。在 第二啟動區(qū)塊存有第二還原碼時,執(zhí)行第二還原碼完成開機(jī)流程。然而,在第二啟動區(qū)塊沒 有第二還原碼時,則繼續(xù)執(zhí)行第一還原碼完成開機(jī)流程。開機(jī)方法100包含以下步驟
在步驟110中,自計算機(jī)的一閃存的一第一啟動區(qū)塊讀取并執(zhí)行一第一還原碼。 其中,將第一啟動區(qū)塊設(shè)為防寫入,以避免存在第一啟動區(qū)塊的第一還原碼遭到修改,而產(chǎn) 生系統(tǒng)損毀的危險。 在步驟120中,檢測閃存的一第二啟動區(qū)塊是否有一第二還原碼。其中,檢測第二 啟動區(qū)塊是否有第二還原碼是通過第一還原碼的一檢測程序所完成。 在第二啟動區(qū)塊有第二還原碼時,自第二啟動區(qū)塊讀取第二還原碼(步驟130), 并執(zhí)行第二還原碼(步驟160)。然而,在第二啟動區(qū)塊沒有第二還原碼時,則在執(zhí)行完檢測 程序后,繼續(xù)執(zhí)行第一還原碼(步驟140)。 在執(zhí)行第二還原碼(步驟160)前,可先行檢測第二還原碼是否有錯誤(步驟 150)。其中,檢測第二還原碼是否有錯誤(步驟150)可通過核對和(checksum)或其它偵 錯方法來完成。然后,在第二還原碼沒有錯誤時,才執(zhí)行第二還原碼(步驟160)。在第二還 原碼有錯誤時,通過更新第二還原碼以及目前系統(tǒng)碼(步驟220),以進(jìn)行系統(tǒng)回復(fù)救援。其 中,一般系統(tǒng)碼會與還原碼的版本產(chǎn)生兼容性的問題。因此,在更新時,需同時更新第二還 原碼以及目前系統(tǒng)碼(步驟220)。接下來,在更新完成后,使計算機(jī)重新開機(jī)(步驟230), 而使計算機(jī)可通過更新后的還原碼以及系統(tǒng)碼開機(jī)。 在步驟170中,自閃存的一系統(tǒng)區(qū)塊讀取一目前系統(tǒng)碼。然后,在步驟190中,執(zhí) 行目前系統(tǒng)碼,以完成正常開機(jī)流程。接下來,在步驟200中,即可使計算機(jī)正常運(yùn)作。
在執(zhí)行目前系統(tǒng)碼(步驟190)前,可檢測目前系統(tǒng)碼是否有錯誤(步驟180)。其 中,檢測目前系統(tǒng)碼是否有錯誤(步驟180)可通過核對和(checksum)或其它偵錯方法來 完成。然后,在目前系統(tǒng)碼沒有錯誤時,才執(zhí)行目前系統(tǒng)碼(步驟190)。在目前系統(tǒng)碼有錯 誤時,通過更新第二還原碼以及目前系統(tǒng)碼(步驟220),以進(jìn)行系統(tǒng)回復(fù)救援。
此外,在計算機(jī)正常運(yùn)作的過程中,可檢測是否收到更新第二還原碼以及目前系 統(tǒng)碼的要求(步驟210)。在收到更新第二還原碼以及目前系統(tǒng)碼的要求后,對第二還原碼 以及目前系統(tǒng)碼作更新(步驟220)。在沒有收到更新第二還原碼以及目前系統(tǒng)碼的要求 時,則使計算機(jī)繼續(xù)正常運(yùn)作(步驟200)。 參照圖2,是圖1中更新第二還原碼以及目前系統(tǒng)碼(步驟220)的一實(shí)施例。更新第二還原碼以及目前系統(tǒng)碼(步驟220)包含以下步驟 在步驟221中,讀取一更新還原碼以及一更新系統(tǒng)碼。其中,更新還原碼的版本是 對應(yīng)于更新系統(tǒng)碼。更新還原碼以及更新系統(tǒng)碼是通過第一還原碼所初始化的硬件裝置, 如光驅(qū)、外接硬盤或其它硬件裝置,所讀取。 接下來,將更新還原碼更新至第二啟動區(qū)(步驟223),并將更新系統(tǒng)碼更新至系 統(tǒng)區(qū)塊(步驟224)。如此一來,即可通過第一還原碼所初始化的硬件讀取更新還原碼以及 更新系統(tǒng)碼,以更新第二啟動區(qū)塊。 此外,在將更新還原碼更新至第二啟動區(qū)(步驟223)前,可比對更新還原碼的版 本與第一還原碼的版本是否相同(步驟222)。在更新還原碼的版本與第一還原碼的版本不 同時,將更新還原碼更新至第二啟動區(qū)(步驟223)。然而,在更新還原碼的版本與第一還原 碼的版本相同時,清空第二啟動區(qū)塊(步驟224)。如此一來,僅需在更新還原碼的版本與第 一還原碼的版本不同時,將更新還原碼更新至第二啟動區(qū)。 由上述本發(fā)明較佳實(shí)施例可知,應(yīng)用本發(fā)明具有下列優(yōu)點(diǎn)??蓪Υ嬖歼€原碼 的閃存區(qū)塊設(shè)為防寫入,而避免原始還原碼遭到修改。如此一來,在系統(tǒng)碼或新版的還原碼 損毀時,仍可通過原始還原碼所初始化的硬件裝置作更新或系統(tǒng)回復(fù)救援,而不需將閃存 送回原廠利用燒錄而回復(fù)還原碼以及系統(tǒng)碼。此外,僅需增加儲存新版還原碼所需的閃存 容量,而不需變更硬件線路設(shè)計,因而可輕易的應(yīng)用于現(xiàn)有的硬件架構(gòu)上。
雖然本發(fā)明已以一實(shí)施例揭露如上,然其并非用以限定本發(fā)明,任何熟悉此技術(shù) 的人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動與潤飾,因此本發(fā)明的保護(hù)范 圍當(dāng)視所附的權(quán)利要求書所界定的范圍為準(zhǔn)。
權(quán)利要求
一種計算機(jī)開機(jī)方法,其特征在于,包含自一計算機(jī)的一閃存的一第一啟動區(qū)塊讀取并執(zhí)行一第一還原碼;檢測該閃存的一第二啟動區(qū)塊是否有一第二還原碼;在該第二啟動區(qū)塊有該第二還原碼時,自第二啟動區(qū)塊讀取該第二還原碼;執(zhí)行該第二還原碼;自該閃存的一系統(tǒng)區(qū)塊讀取一目前系統(tǒng)碼;以及執(zhí)行該目前系統(tǒng)碼,并使該計算機(jī)正常運(yùn)作。
2. 根據(jù)權(quán)利要求1所述的計算機(jī)開機(jī)方法,其特征在于,還包含 檢測是否收到更新該第二還原碼以及該目前系統(tǒng)碼的要求;以及在收到更新該第二還原碼以及該目前系統(tǒng)碼的要求后,更新該第二還原碼以及該目前 系統(tǒng)碼。
3. 根據(jù)權(quán)利要求1所述的計算機(jī)開機(jī)方法,其特征在于,還包含 在執(zhí)行該第二還原碼前,檢測該第二還原碼是否有錯誤;以及 在該第二還原碼有錯誤時,更新該第二還原碼以及該目前系統(tǒng)碼。
4. 根據(jù)權(quán)利要求1所述的計算機(jī)開機(jī)方法,其特征在于,還包含 在執(zhí)行該目前系統(tǒng)碼前,檢測該目前系統(tǒng)碼是否有錯誤;以及 在該目前系統(tǒng)碼有錯誤時,更新該第二還原碼以及該目前系統(tǒng)碼。
5. 根據(jù)權(quán)利要求2、3或4所述的計算機(jī)開機(jī)方法,其特征在于,更新該第二還原碼以及 該目前系統(tǒng)碼的步驟包含讀取一更新還原碼以及一更新系統(tǒng)碼;以及將該更新還原碼更新至該第二啟動區(qū)塊,并將該更新系統(tǒng)碼更新至該系統(tǒng)區(qū)塊。
6. 根據(jù)權(quán)利要求2、3或4所述的計算機(jī)開機(jī)方法,其特征在于,更新該第二還原碼以及 該目前系統(tǒng)碼的步驟包含比對該更新還原碼的版本與該第一還原碼的版本是否相同;以及在該更新還原碼的版本與該第一還原碼的版本不同時,將該更新還原碼更新至該第二 啟動區(qū)塊;在該更新還原碼的版本與該第一還原碼的版本相同時,清空該第二啟動區(qū)塊;以及 將該更新系統(tǒng)碼更新至該系統(tǒng)區(qū)塊。
7. 根據(jù)權(quán)利要求2、3或4所述的計算機(jī)開機(jī)方法,其特征在于,還包含 在更新該第二還原碼以及該目前系統(tǒng)碼后,令該計算機(jī)重新啟動。
8. 根據(jù)權(quán)利要求1所述的計算機(jī)開機(jī)方法,其特征在于,檢測該第二啟動區(qū)塊是否有 該第二還原碼是通過執(zhí)行該第一還原碼的一檢測程序所完成。
9. 根據(jù)權(quán)利要求8所述的計算機(jī)開機(jī)方法,其特征在于,還包含在該第二啟動區(qū)塊沒有該第二還原碼時,則在執(zhí)行完該檢測程序后,繼續(xù)執(zhí)行該第一 還原碼。
10. 根據(jù)權(quán)利要求1所述的計算機(jī)開機(jī)方法,其特征在于,該第一啟動區(qū)塊為防寫入?yún)^(qū)
全文摘要
本發(fā)明涉及一種計算機(jī)開機(jī)方法,包含以下步驟自計算機(jī)的一閃存的一第一啟動區(qū)塊讀取并執(zhí)行一第一還原碼;檢測閃存的一第二啟動區(qū)塊是否有一第二還原碼;在第二啟動區(qū)塊有第二還原碼時,自第二啟動區(qū)塊讀取第二還原碼;執(zhí)行第二還原碼;自閃存的一系統(tǒng)區(qū)塊讀取一目前系統(tǒng)碼;執(zhí)行目前系統(tǒng)碼,并使計算機(jī)正常運(yùn)作。
文檔編號G06F9/445GK101739269SQ20081018105
公開日2010年6月16日 申請日期2008年11月20日 優(yōu)先權(quán)日2008年11月20日
發(fā)明者盧曉芬, 陳志偉 申請人:英業(yè)達(dá)股份有限公司