專利名稱:存儲器轉(zhuǎn)儲程序引導(dǎo)方法及機(jī)構(gòu)、和計(jì)算機(jī)可讀存儲介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及存儲器轉(zhuǎn)儲程序引導(dǎo)方法及機(jī)構(gòu)、和計(jì)算機(jī)可讀存儲介質(zhì),更具體地說,涉及一種存儲器轉(zhuǎn)儲程序引導(dǎo)方法和存儲器轉(zhuǎn)儲程序引導(dǎo)機(jī)構(gòu),用于在通過獨(dú)立轉(zhuǎn)儲程序進(jìn)行存儲器轉(zhuǎn)儲的計(jì)算機(jī)系統(tǒng)內(nèi)執(zhí)行與獨(dú)立轉(zhuǎn)儲程序相關(guān)的引導(dǎo)處理,并涉及一種計(jì)算機(jī)可讀存儲介質(zhì),其存儲用于使計(jì)算機(jī)執(zhí)行這種與獨(dú)立轉(zhuǎn)儲程序相關(guān)的引導(dǎo)處理的程序。
通常,計(jì)算機(jī)系統(tǒng)支持多個引導(dǎo)設(shè)備。通過設(shè)置引導(dǎo)設(shè)備的設(shè)備路徑信息,在多個可引導(dǎo)的設(shè)備中選擇并引導(dǎo)一個將實(shí)際引導(dǎo)的設(shè)備。安裝在多個引導(dǎo)設(shè)備內(nèi)的操作系統(tǒng)(OS)的種類可能相同,也可能不同。此外,即使OS的種類相同,OS的版本也可能不同。當(dāng)在這種計(jì)算機(jī)系統(tǒng)內(nèi)的某個OS的操作過程中產(chǎn)生故障時,通過引導(dǎo)獨(dú)立轉(zhuǎn)儲程序執(zhí)行存儲器轉(zhuǎn)儲。但是根據(jù)待操作的OS的種類,待引導(dǎo)的獨(dú)立轉(zhuǎn)儲程序應(yīng)當(dāng)是可選擇的。此外,希望通過僅當(dāng)產(chǎn)生故障時在OS內(nèi)生成的故障來觸發(fā)獨(dú)立轉(zhuǎn)儲程序的引導(dǎo)。
本發(fā)明涉及一種引導(dǎo)處理,當(dāng)在這樣一種計(jì)算機(jī)系統(tǒng)內(nèi)產(chǎn)生故障時,該引導(dǎo)處理能夠登記多個獨(dú)立轉(zhuǎn)儲程序,選擇并引導(dǎo)多個獨(dú)立轉(zhuǎn)儲程序中最合適的一個獨(dú)立轉(zhuǎn)儲程序。
背景技術(shù):
如果在計(jì)算機(jī)系統(tǒng)的操作過程中產(chǎn)生某種系統(tǒng)異常,則它變得難以繼續(xù)工作,必需立即重啟計(jì)算機(jī)系統(tǒng),從而能夠繼續(xù)工作。在這種情況下,為了隨后能夠檢查所產(chǎn)生故障的原因,通常將產(chǎn)生系統(tǒng)異常時計(jì)算機(jī)系統(tǒng)的存儲器內(nèi)的數(shù)據(jù)保存為轉(zhuǎn)儲數(shù)據(jù)。可以根據(jù)第一種方法或第二種方法執(zhí)行生成轉(zhuǎn)儲數(shù)據(jù)的處理。第一種方法在操作OS中嵌入有存儲器轉(zhuǎn)儲程序,如果在OS的操作過程中產(chǎn)生故障則通過將控制轉(zhuǎn)移給存儲器轉(zhuǎn)儲程序來執(zhí)行存儲器轉(zhuǎn)儲。另一方面,第二種方法是如果在OS的操作過程中產(chǎn)生故障,則在將存儲器數(shù)據(jù)保存在計(jì)算機(jī)系統(tǒng)內(nèi)的狀態(tài)下重置計(jì)算機(jī)系統(tǒng),并且引導(dǎo)不同于操作OS的獨(dú)立轉(zhuǎn)儲程序,從而轉(zhuǎn)儲所保存的存儲器數(shù)據(jù)。一些計(jì)算機(jī)系統(tǒng)支持僅使用第一種和第二種方法之一的處理,而其它計(jì)算機(jī)系統(tǒng)支持同時使用第一種和第二種方法的處理。
例如,日本特開平8-95834號公報提出了一種當(dāng)出現(xiàn)計(jì)算機(jī)系統(tǒng)的異常結(jié)束時使用的存儲器轉(zhuǎn)儲方法。
當(dāng)由獨(dú)立轉(zhuǎn)儲程序執(zhí)行存儲器轉(zhuǎn)儲時,在計(jì)算機(jī)系統(tǒng)支持多個OS的情況下會產(chǎn)生下述問題。
換句話說,在諸如大規(guī)模服務(wù)器系統(tǒng)的計(jì)算機(jī)系統(tǒng)的情況下,所安裝的主存儲器的大小經(jīng)常超過例如256GB。在這種計(jì)算機(jī)系統(tǒng)中,為了進(jìn)行故障分析,對所有的主存儲器進(jìn)行轉(zhuǎn)儲是不現(xiàn)實(shí)的。因此,當(dāng)進(jìn)行存儲器轉(zhuǎn)儲時,通常將轉(zhuǎn)儲目標(biāo)區(qū)域限制為對核心數(shù)據(jù)進(jìn)行故障分析等所需的特定區(qū)域。當(dāng)然,對核心數(shù)據(jù)進(jìn)行故障分析等所需的特定區(qū)域?qū)τ诓煌N類的OS來說是不同的區(qū)域。但是,即使在同一種類的OS的情況下,對于同一種類的OS的不同版本來說,該特定區(qū)域也可能變成不同的區(qū)域。因此,取決于OS的種類,通常需要不同的獨(dú)立轉(zhuǎn)儲程序,此外,即使在同一種類的OS的情況下,如果該同一種類的OS的版本不同,根據(jù)OS的種類,也可能需要不同的獨(dú)立轉(zhuǎn)儲程序。此外,在一些情況下,OS可能不支持通過獨(dú)立轉(zhuǎn)儲程序的存儲器轉(zhuǎn)儲。因此,在與獨(dú)立轉(zhuǎn)儲程序相關(guān)的引導(dǎo)處理中,需要以下功能在多個現(xiàn)有的獨(dú)立轉(zhuǎn)儲程序中選擇并引導(dǎo)與在產(chǎn)生故障之前正在操作的OS相對應(yīng)的獨(dú)立轉(zhuǎn)儲程序。
如果計(jì)算機(jī)系統(tǒng)僅允許引導(dǎo)一個OS,則只需要引導(dǎo)一個獨(dú)立轉(zhuǎn)儲程序。但是如果計(jì)算機(jī)系統(tǒng)允許能夠引導(dǎo)多個OS,并且通過在引導(dǎo)時選擇OS能夠操作不同的OS,則會存在以下問題除非引導(dǎo)了與產(chǎn)生故障時正在操作的OS相對應(yīng)的獨(dú)立轉(zhuǎn)儲程序,否則將無法進(jìn)行合適的存儲器轉(zhuǎn)儲。
發(fā)明內(nèi)容
因此,本發(fā)明的總體目的是提供一種新穎有用的存儲器轉(zhuǎn)儲程序引導(dǎo)方法及機(jī)構(gòu),和計(jì)算機(jī)可讀存儲介質(zhì),其中消除了上述問題。
本發(fā)明的另一個且更具體的目的是提供一種存儲器轉(zhuǎn)儲程序引導(dǎo)方法、存儲器轉(zhuǎn)儲程序引導(dǎo)機(jī)構(gòu)和計(jì)算機(jī)可讀存儲介質(zhì),可將它們應(yīng)用于這樣一種計(jì)算機(jī)系統(tǒng)在該計(jì)算機(jī)系統(tǒng)中能夠引導(dǎo)多種OS,并且在引導(dǎo)OS時,可以通過從多個引導(dǎo)目標(biāo)設(shè)備中自動地或手工地選擇引導(dǎo)目標(biāo)設(shè)備,來切換和操作這些OS,能夠設(shè)置當(dāng)在OS操作過程中產(chǎn)生故障時重置和啟動計(jì)算機(jī)系統(tǒng)的獨(dú)立轉(zhuǎn)儲程序,從而支持用于在產(chǎn)生故障之前正在操作的OS的最佳存儲器轉(zhuǎn)儲。
本發(fā)明的又一個目的是提供一種存儲器轉(zhuǎn)儲程序引導(dǎo)方法,包括(a)在由計(jì)算機(jī)系統(tǒng)的引導(dǎo)固件管理的非易失性變量中定義在計(jì)算機(jī)系統(tǒng)內(nèi)安裝的多個獨(dú)立轉(zhuǎn)儲程序的引導(dǎo)信息和表示多個獨(dú)立轉(zhuǎn)儲程序與多個操作系統(tǒng)的對應(yīng)關(guān)系的表變量;(b)當(dāng)引導(dǎo)固件引導(dǎo)多個操作系統(tǒng)中的任一個操作系統(tǒng)時,根據(jù)表變量指定多個獨(dú)立轉(zhuǎn)儲程序中的對應(yīng)一個的引導(dǎo)信息,并且將表示所指定引導(dǎo)信息的信息寫入當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的非易失性變量;以及(c)當(dāng)指示引導(dǎo)獨(dú)立轉(zhuǎn)儲時,通過檢查當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的變量的存在和如果變量存在則通過參考變量的信息,來引導(dǎo)多個獨(dú)立轉(zhuǎn)儲程序中的一個對應(yīng)的獨(dú)立轉(zhuǎn)儲程序。根據(jù)本發(fā)明,能夠?qū)崿F(xiàn)一種存儲器轉(zhuǎn)儲引導(dǎo)方法,它可以應(yīng)用于這樣一種計(jì)算機(jī)系統(tǒng),其中能夠引導(dǎo)多種OS,并且當(dāng)引導(dǎo)OS時,通過從多個引導(dǎo)目標(biāo)設(shè)備中自動地或手工地選擇引導(dǎo)目標(biāo)設(shè)備,能夠切換和操作這些OS,可以設(shè)置當(dāng)在OS操作過程中產(chǎn)生故障時重置和啟動計(jì)算機(jī)系統(tǒng)的獨(dú)立轉(zhuǎn)儲程序,從而支持用于在產(chǎn)生故障之前正在操作的OS的最佳存儲器轉(zhuǎn)儲。
本發(fā)明的又一個目的是提供一種存儲器轉(zhuǎn)儲程序引導(dǎo)設(shè)備,包括非易失性存儲器,其被配置為在由計(jì)算機(jī)系統(tǒng)的引導(dǎo)固件管理的非易失性變量內(nèi)存儲在計(jì)算機(jī)系統(tǒng)內(nèi)安裝的多個獨(dú)立轉(zhuǎn)儲程序的引導(dǎo)信息和表示多個獨(dú)立轉(zhuǎn)儲程序與多個操作系統(tǒng)的對應(yīng)關(guān)系的表變量;寫入裝置,用于當(dāng)引導(dǎo)固件引導(dǎo)多個操作系統(tǒng)中的任一個操作系統(tǒng)時,根據(jù)表變量指定多個獨(dú)立轉(zhuǎn)儲程序中的對應(yīng)一個的引導(dǎo)信息,并將表示所指定引導(dǎo)信息的信息寫入當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的非易失性變量中;以及,引導(dǎo)裝置,用于當(dāng)指示引導(dǎo)獨(dú)立轉(zhuǎn)儲時,通過檢查當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的變量的存在,并且如果變量存在則通過參考變量的信息,來引導(dǎo)多個獨(dú)立轉(zhuǎn)儲程序中的一個對應(yīng)的獨(dú)立轉(zhuǎn)儲程序。根據(jù)本發(fā)明,可以實(shí)現(xiàn)一種存儲器轉(zhuǎn)儲引導(dǎo)設(shè)備,它可以應(yīng)用于這樣一種計(jì)算機(jī)系統(tǒng),其中能夠引導(dǎo)多種OS,并且當(dāng)引導(dǎo)OS時,通過從多個引導(dǎo)目標(biāo)設(shè)備中自動地或手工地選擇引導(dǎo)目標(biāo)設(shè)備,能夠切換和操作這些OS,可以設(shè)置當(dāng)在OS操作過程中產(chǎn)生故障時重置和啟動計(jì)算機(jī)系統(tǒng)的獨(dú)立轉(zhuǎn)儲程序,從而支持用于在產(chǎn)生故障之前正在操作的OS的最佳存儲器轉(zhuǎn)儲。
本發(fā)明的另一個目的是提供一種計(jì)算機(jī)可讀存儲介質(zhì),它存儲用于使計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)引導(dǎo)存儲器轉(zhuǎn)儲程序的程序,該程序包括以下過程使計(jì)算機(jī)在由計(jì)算機(jī)系統(tǒng)的引導(dǎo)固件管理的非易失性變量中定義在計(jì)算機(jī)系統(tǒng)內(nèi)安裝的多個獨(dú)立轉(zhuǎn)儲程序的引導(dǎo)信息和表示多個獨(dú)立轉(zhuǎn)儲程序與多個操作系統(tǒng)的對應(yīng)關(guān)系的表變量;使計(jì)算機(jī)在引導(dǎo)固件引導(dǎo)多個操作系統(tǒng)中的任一個操作系統(tǒng)時,根據(jù)表變量指定多個獨(dú)立轉(zhuǎn)儲程序中的對應(yīng)一個的引導(dǎo)信息,將表示所指定引導(dǎo)信息的信息寫入當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的非易失性變量;以及,使計(jì)算機(jī)在指示引導(dǎo)獨(dú)立轉(zhuǎn)儲時,通過檢查當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的變量的存在,并且如果變量存在則通過參考變量的信息,引導(dǎo)多個獨(dú)立轉(zhuǎn)儲程序中的一個對應(yīng)的獨(dú)立轉(zhuǎn)儲程序。根據(jù)本發(fā)明,可以實(shí)現(xiàn)一種計(jì)算機(jī)可讀存儲介質(zhì),它可以應(yīng)用于這樣一種計(jì)算機(jī)系統(tǒng),其中能夠引導(dǎo)多種OS,并且當(dāng)引導(dǎo)OS時,通過從多個引導(dǎo)目標(biāo)設(shè)備中自動地或手工地選擇引導(dǎo)目標(biāo)設(shè)備,能夠切換和操作這些OS,并且可以設(shè)置當(dāng)在OS操作過程中產(chǎn)生故障時重置和啟動計(jì)算機(jī)系統(tǒng)的獨(dú)立轉(zhuǎn)儲程序,從而支持用于在產(chǎn)生故障之前正在操作的OS的最佳存儲器轉(zhuǎn)儲。
當(dāng)結(jié)合附圖閱讀下述詳細(xì)描述之后,本發(fā)明的其它目的和進(jìn)一步的特征將是顯而易見的。
圖1圖示應(yīng)用了本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng);圖2是用于解釋計(jì)算機(jī)系統(tǒng)的ROM固件和引導(dǎo)固件的處理的流程圖;圖3是用于解釋SADUMP裝載器的引導(dǎo)處理的流程圖;圖4是用于解釋通過使用FjSdBtTbl表變量來確定與BootXXXX變量相對應(yīng)的FjSdBootYYYY變量的處理的圖;圖5是用于解釋由SADUMP安裝器執(zhí)行的與NVRAM變量相關(guān)的處理的流程圖;和圖6是用于解釋由SADUMP卸載器執(zhí)行的與NVRAM變量相關(guān)的處理的流程圖。
具體實(shí)施例方式
參考附圖,將描述根據(jù)本發(fā)明的存儲器轉(zhuǎn)儲程序引導(dǎo)方法、存儲器轉(zhuǎn)儲程序引導(dǎo)機(jī)構(gòu)和計(jì)算機(jī)可讀存儲介質(zhì)的實(shí)施例。本發(fā)明的計(jì)算機(jī)可讀記錄介質(zhì)可以通過存儲程序的任一合適的記錄介質(zhì)構(gòu)成,并且可以從外部設(shè)備將該程序下載到該記錄介質(zhì)??梢允褂么庞涗浗橘|(zhì)、光記錄介質(zhì)、磁光記錄介質(zhì)和半導(dǎo)體存儲設(shè)備等作為記錄介質(zhì)。
圖1圖示應(yīng)用本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)。圖1所示的計(jì)算機(jī)系統(tǒng)1由主體11和系統(tǒng)監(jiān)視機(jī)構(gòu)12構(gòu)成。將多個硬盤驅(qū)動(HDD)2-1、2-2、2-3、……和CDROM或DVDROM(CDROM/DVDROM)驅(qū)動3連接到計(jì)算機(jī)系統(tǒng)1。主體11包括ROM固件21、只讀存儲器(ROM)或閃存(FMEM)22、諸如非易失性RAM(NVRAM)的非易失性存儲器23和主存儲器24。此外,主存儲器24包括引導(dǎo)固件241、操作系統(tǒng)(OS)裝載器程序242、OS 243、獨(dú)立轉(zhuǎn)儲程序安裝器(在下文中簡稱為SADUMP安裝器)244和獨(dú)立轉(zhuǎn)儲程序卸載器(在下文中簡稱為SADUMP卸載器)245??梢詫ADUMP卸載器245包括在SADUMP安裝器244內(nèi)。
在這個實(shí)施例中,將ROM固件21寫入在ROM或FMEM中,并且當(dāng)打開計(jì)算機(jī)系統(tǒng)1的電源時對其進(jìn)行引導(dǎo),從而執(zhí)行與計(jì)算機(jī)系統(tǒng)1內(nèi)的硬件相關(guān)的診斷和初始化處理。此后,將在計(jì)算機(jī)系統(tǒng)1內(nèi)的ROM或FMEM22內(nèi)壓縮并存儲的引導(dǎo)固件展開(develop)到主存儲器24內(nèi),并將控制轉(zhuǎn)移給引導(dǎo)固件241。引導(dǎo)固件241包括用于控制由計(jì)算機(jī)系統(tǒng)1支持的引導(dǎo)目標(biāo)設(shè)備的驅(qū)動器程序(在下文中簡稱為驅(qū)動器),并通過根據(jù)預(yù)先設(shè)置的引導(dǎo)信息從連接到計(jì)算機(jī)系統(tǒng)的引導(dǎo)目標(biāo)設(shè)備中選擇待實(shí)際引導(dǎo)的引導(dǎo)目標(biāo)設(shè)備來執(zhí)行引導(dǎo)處理。通常,引導(dǎo)固件241引導(dǎo)用于引導(dǎo)目標(biāo)OS 243的OS裝載器242。引導(dǎo)固件241并不需要能夠解譯OS 243的文件系統(tǒng)。因?yàn)榕cOS 243對應(yīng)的OS裝載器242能夠解譯OS 243的文件系統(tǒng),所以引導(dǎo)固件241能夠獲知OS裝載器242在引導(dǎo)目標(biāo)設(shè)備內(nèi)的位置,并且當(dāng)能夠引導(dǎo)OS裝載器242時,可以由OS裝載器242執(zhí)行將在此后執(zhí)行的OS 243的引導(dǎo)。
在圖1所示的計(jì)算機(jī)系統(tǒng)1內(nèi),將引導(dǎo)信息存儲在NVRAM 23內(nèi)。根據(jù)存儲在NVRAM 23內(nèi)的引導(dǎo)信息,從連接到計(jì)算機(jī)系統(tǒng)1的多個引導(dǎo)目標(biāo)設(shè)備中確定當(dāng)啟動計(jì)算機(jī)系統(tǒng)1時將自動引導(dǎo)的引導(dǎo)目標(biāo)設(shè)備。存儲在NVRAM 23內(nèi)的引導(dǎo)信息(或NVRAM變量)包括BootXXXX變量(其中XXXX是從0000到FFFF的十六進(jìn)制值)和BootOrder變量。BootXXXX變量包括表示在計(jì)算機(jī)系統(tǒng)1內(nèi)連接引導(dǎo)目標(biāo)設(shè)備的位置的設(shè)備路徑信息,和與OS裝載器242的文件位置和文件名相關(guān)的信息。BootOrder變量表示由BootXXXX變量表示的多個現(xiàn)有引導(dǎo)目標(biāo)設(shè)備待引導(dǎo)的順序。當(dāng)將控制轉(zhuǎn)移給引導(dǎo)固件241時,引導(dǎo)固件241初始化用于引導(dǎo)的各個驅(qū)動器,并執(zhí)行與連接到計(jì)算機(jī)系統(tǒng)1的HDD 2-1、2-2、2-3、……相關(guān)的探測處理。此后,根據(jù)NVRAM變量的BootOrder變量來指定BootXXXX變量的XXXX部分的值,從而引導(dǎo)由BootXXXX變量指定的引導(dǎo)目標(biāo)設(shè)備和OS裝載器242。
接著,將描述這個實(shí)施例的重要特征。在這個實(shí)施例中,除了上述的BootXXXX變量和BootOrder變量之外,在計(jì)算機(jī)系統(tǒng)1內(nèi)的NVRAM 23中存儲的引導(dǎo)信息(或NVRAM變量)包括用于引導(dǎo)SADUMP裝載器的下述變量V1)至V4),所述SADUMP裝載器是用于SADUMP程序(在下文中簡稱為SADUMP)的裝載器程序。
V1)FjSdBootYYYY(YYYY是從0000到FFFF的十六進(jìn)制值)該變量包括存儲SADUMP裝載器的引導(dǎo)目標(biāo)設(shè)備的設(shè)備路徑信息、SADUMP裝載器的文件位置和文件名。
V2)FjSdBtTbl此表變量存儲表示OS 243和SADUMP的對應(yīng)關(guān)系的信息。
V3)FjSdBootNext該變量保存FjSdBootYYYY變量的YYYY部分,它是下一次將要引導(dǎo)的SADUMP裝載器的引導(dǎo)信息。當(dāng)在OS 243的操作過程中產(chǎn)生故障,并且出現(xiàn)計(jì)算機(jī)系統(tǒng)1的死機(jī)(panic)和暫停(hang)等,而且重置計(jì)算機(jī)系統(tǒng)1以引導(dǎo)SADUMP時,使用根據(jù)該FjSdBootNext變量的FjSdBootYYYY變量作為SADUMP裝載器的引導(dǎo)信息。
V4)FjSdBtTerm該變量指定當(dāng)SADUMP的錯誤結(jié)束出現(xiàn)時的處理。如果這個FjSdBtTerm變量為“0”,則執(zhí)行錯誤通知,并重新引導(dǎo)OS 243。反之,當(dāng)這個FjSdBtTerm變量不是“0”時,通過將CDROM/DVDROM驅(qū)動3視為引導(dǎo)目標(biāo)設(shè)備來引導(dǎo)在CDROM或DVDROM內(nèi)記錄的SADUMP。
在連接到計(jì)算機(jī)系統(tǒng)1的HDD 2-1、2-2、2-3、……中,存在若干HDD,除了OS裝載器映像(image)和OS映像之外,它們存儲用于獨(dú)立轉(zhuǎn)儲的SADUMP裝載器映像和SADUMP映像。OS裝載器映像是指OS裝載器242的主體的映像,OS映像是指OS 243的主體的映像。而且,SADUMP映像是指SADUMP的主體的映像,并是通過由SADUMP裝載器引導(dǎo)來執(zhí)行存儲器轉(zhuǎn)儲的程序。SADUMP裝載器映像是指SADUMP裝載器的主體的映像。因?yàn)椴⒎撬械腛S 243都支持SADUMP,所以存在并不具有對應(yīng)的SADUMP裝載器映像和SADUMP映像的OS 243。SADUMP裝載器映像和SADUMP裝載器的存儲位置可能與存儲OS裝載器映像和OS映像的HDD 2-1、2-2、2-3、……無關(guān)。圖1示出了與OS 243無關(guān)地也將SADUMP裝載器映像和SADUMP映像存儲在CDROM/DVDROM驅(qū)動3內(nèi)的情況。為了方便,省略了SADUMP裝載器和SADUMP映像在主存儲器24內(nèi)的狀態(tài)的圖示。
圖2是用于解釋計(jì)算機(jī)系統(tǒng)1的ROM固件21和引導(dǎo)固件241的處理的流程圖。
當(dāng)在OS 243的操作過程中產(chǎn)生故障并且出現(xiàn)計(jì)算機(jī)系統(tǒng)1的死機(jī)或暫停時,執(zhí)行與系統(tǒng)監(jiān)視機(jī)構(gòu)12相關(guān)的獨(dú)立轉(zhuǎn)儲指令以發(fā)出重置請求。系統(tǒng)監(jiān)視機(jī)構(gòu)12由獨(dú)立于主體11的處理器操作的硬件構(gòu)成,并執(zhí)行諸如計(jì)算機(jī)系統(tǒng)1的電源控制、風(fēng)扇監(jiān)視和重置處理等處理。當(dāng)系統(tǒng)監(jiān)視機(jī)構(gòu)12接收獨(dú)立轉(zhuǎn)儲指令時,系統(tǒng)監(jiān)視機(jī)構(gòu)12在其中存儲的系統(tǒng)控制變量內(nèi)設(shè)置SADUMP指定標(biāo)記,并重置主體11。首先,當(dāng)重置主體11時,圖1所示的步驟S1引導(dǎo)ROM固件21,步驟S2執(zhí)行硬件診斷(包括存儲器診斷)和初始化。在這個狀態(tài)中,從系統(tǒng)監(jiān)視機(jī)構(gòu)12獲得SADUMP指定標(biāo)記,步驟S3確定SADUMP指定標(biāo)記是否為開啟。如果SADUMP指定標(biāo)記為開啟(ON)并且在步驟S3中的判定結(jié)果為是,則步驟S4并不執(zhí)行存儲器診斷,該處理前進(jìn)到步驟S6,并在保存存儲器數(shù)據(jù)的狀態(tài)下將控制轉(zhuǎn)移給引導(dǎo)固件241。另一方面,如果SADUMP指定標(biāo)記為關(guān)閉(OFF)并且在步驟S3中的判定結(jié)果為否,則步驟S5執(zhí)行存儲器診斷,該處理前進(jìn)到步驟S6。引導(dǎo)固件241執(zhí)行用于引導(dǎo)處理的與各個驅(qū)動器相關(guān)的初始化處理,并在步驟S6中執(zhí)行與連接到計(jì)算機(jī)系統(tǒng)1的HDD 2-1、2-2、2-3、……相關(guān)的探測處理,在步驟S7中確定SADUMP指定標(biāo)記是否是開啟。在這個狀態(tài)中,可以從系統(tǒng)監(jiān)視機(jī)構(gòu)12或者從ROM固件21中獲取SADUMP指定標(biāo)記的值。如果SADUMP指定標(biāo)記為開啟并且在步驟S8中的判定結(jié)果為是,則將控制轉(zhuǎn)移給隨后將結(jié)合圖3描述的SADUMP裝載器的引導(dǎo)處理。另一方面,如果SADUMP指定標(biāo)記為關(guān)閉并且在步驟S8中的判定結(jié)果為否,則將控制轉(zhuǎn)移給包括步驟S9及其隨后步驟的OS裝載器242的引導(dǎo)處理。
接著,將描述OS裝載器242的引導(dǎo)處理。首先,在OS裝載器242的引導(dǎo)處理中,步驟S9檢查FjSdBootNext變量的存在,并且如果它存在則刪除該FjSdBootNext變量。步驟S10檢查是否從系統(tǒng)監(jiān)視機(jī)構(gòu)12指示遠(yuǎn)程引導(dǎo),如果指示遠(yuǎn)程引導(dǎo)則執(zhí)行所指示的遠(yuǎn)程引導(dǎo)的處理。因?yàn)閺南到y(tǒng)監(jiān)視機(jī)構(gòu)12指示的遠(yuǎn)程引導(dǎo)并不與本發(fā)明的主題直接相關(guān),因此在該說明書中將省略對其的詳細(xì)描述。
接著,步驟S11從在NVRAM 23內(nèi)存在的多個BootXXXX變量中確定作為實(shí)際的待引導(dǎo)目標(biāo)的變量。步驟S11通常根據(jù)BootOrder變量設(shè)置的順序來確定變量,但是當(dāng)從系統(tǒng)監(jiān)視機(jī)構(gòu)12指示遠(yuǎn)程引導(dǎo)時,可以在不考慮BootOrder變量的情況下確定該變量。在任一種情況下,引導(dǎo)固件241將確定作為引導(dǎo)目標(biāo)的BootXXXX變量的XXXX部分的值設(shè)置為作為存儲器變量的BootCurrent變量。該BootCurrent變量由引導(dǎo)固件241管理,但不是NVRAM變量。因此,當(dāng)計(jì)算機(jī)系統(tǒng)1的電源關(guān)閉時,該BootCurrent變量丟失。通過在引導(dǎo)OS 243之后檢查BootCurrent變量,將可以判斷在OS 243中已經(jīng)引導(dǎo)了哪一個引導(dǎo)設(shè)備。
接著,在步驟S12,引導(dǎo)固件241確定所選擇的引導(dǎo)目標(biāo)設(shè)備是否不同于CDROM/DVDROM驅(qū)動3和網(wǎng)絡(luò)引導(dǎo)(PXE)。如果選定的引導(dǎo)目標(biāo)設(shè)備是CDROM/DVDROM驅(qū)動3或PXE,并且在步驟S12中的判定結(jié)果為否,則步驟S17立即根據(jù)選定的BootXXXX變量裝載并引導(dǎo)OS裝載器242。步驟S18引導(dǎo)OS 242,該處理結(jié)束。反之,如果選定的引導(dǎo)目標(biāo)設(shè)備不是CDROM/DVDROM驅(qū)動3和PXE,并且在步驟S12的判定結(jié)果為是,則步驟S13確定FjSdBtTbl表變量是否存在于NVRAM變量內(nèi)。如果FjSdBtTbl變量并不存在,在步驟S13的判定結(jié)果為否,則步驟S17立即根據(jù)選定的BootXXXX變量裝載和引導(dǎo)OS裝載器242。但是如果FjSdBtTbl變量存在,在步驟S13的判定結(jié)果為是,步驟S14使用選定BootXXXX變量的XXXX部分的值作為關(guān)鍵字搜索FjSdBtTbl變量。隨后將在說明書中描述這個步驟S14的搜索處理。作為在步驟S14執(zhí)行的搜索處理的結(jié)果,步驟S15確定是否存在與該關(guān)鍵字對應(yīng)的表目。如果在步驟S15的判定結(jié)果為否,則步驟S17立即根據(jù)選定的BootXXXX變量裝載和引導(dǎo)OS裝載器242。反之,如果在步驟S15的判定結(jié)果為是,則步驟S16從對應(yīng)的表目獲得FjSdBootYYYY變量的YYYY部分的值以建立FjSdBootNext變量,并將所獲得的YYYY部分的值設(shè)置給FjSdBootNext變量。在步驟S16之后,該處理前進(jìn)到步驟S17,它根據(jù)選定的BootXXXX變量裝載和引導(dǎo)OS裝載器242。
接著,將參考圖3描述SADUMP裝載器的引導(dǎo)處理。圖3是用于解釋SADUMP裝載器的引導(dǎo)處理的流程圖。
在圖3中,當(dāng)在步驟S21中啟動SADUMP裝載器的引導(dǎo)處理時,步驟S22首先確定FjSdBootNext變量是否存在。如果不存在FjSdBootNext變量并在步驟S22中的判定結(jié)果為否,則步驟S23在系統(tǒng)監(jiān)視機(jī)構(gòu)12中將SADUMP指定標(biāo)記清除為關(guān)閉狀態(tài),在進(jìn)行出錯通知之后重置計(jì)算機(jī)系統(tǒng)1,隨后該處理結(jié)束。反之,如果FjSdBootNext變量存在并在步驟S22的判定結(jié)果為是,則步驟S24解釋由FjSdBootNext變量指定的FjSdBootYYYY變量的數(shù)據(jù),并確定FjSdBootYYYY變量的設(shè)備路徑信息是否正確。換句話說,步驟S24檢查在引導(dǎo)信息中設(shè)置的設(shè)備信息和SADUMP裝載器信息,并確定是否存在與連接到計(jì)算機(jī)系統(tǒng)1的設(shè)備的信息的匹配。如果在步驟S24的判定結(jié)果為否,則步驟S25刪除這個FjSdBootNext變量,并在系統(tǒng)監(jiān)視機(jī)構(gòu)12中將SADUMP指定標(biāo)記清除為關(guān)閉狀態(tài)。此后,步驟S26檢查作為由出錯處理使用的NVRAM變量的FjSdBtTerm變量。更具體地說,步驟S26確定FjSdBtTerm變量的值是否為“0”。如果在步驟S26的判定結(jié)果為是,則步驟S27在進(jìn)行出錯通知之后重置計(jì)算機(jī)系統(tǒng)1,隨后該處理結(jié)束。反之,如果FjSdBtTerm變量的值不是“0”,并且在步驟S26中的判定結(jié)果為否,則步驟S28將CDROM/DVDROM驅(qū)動3視為引導(dǎo)目標(biāo)設(shè)備,步驟S35執(zhí)行與這個引導(dǎo)目標(biāo)設(shè)備相關(guān)的引導(dǎo)處理,隨后該處理結(jié)束。
如果對FjSdBootYYYY變量的數(shù)據(jù)進(jìn)行解釋的結(jié)果表明與連接到計(jì)算機(jī)系統(tǒng)1的設(shè)備的匹配并且在步驟S24中的判定結(jié)果為是,則步驟S29將在由FjSdBootNext變量指定的在FjSdBootYYYY變量內(nèi)設(shè)置的SADUMP裝載器視為引導(dǎo)目標(biāo)。在這種狀態(tài)下,在實(shí)際執(zhí)行引導(dǎo)處理之前,步驟S30檢查FjSdBtTerm變量。換句話說,步驟S30確定FjSdBtTerm變量的值是否為“0”。如果在步驟S30的判定結(jié)果為是,則即使當(dāng)此后產(chǎn)生錯誤時,該處理也不前進(jìn)到從CDROM/DVDROM驅(qū)動3重試。因而,步驟S31刪除FjSdBootNext變量,并將SADUMP指定標(biāo)記清除為關(guān)閉狀態(tài),步驟S35執(zhí)行與引導(dǎo)目標(biāo)設(shè)備相關(guān)的引導(dǎo)處理,隨后該處理結(jié)束。
如果FjSdBtTerm變量不為“0”和在步驟S30中的判定結(jié)果為否,則存在執(zhí)行從CDROM/DVDROM驅(qū)動3的重試的可能性。因此,步驟S32首先根據(jù)FjSdBootYYYY變量的設(shè)備信息來確定當(dāng)前的引導(dǎo)目標(biāo)設(shè)備是否已經(jīng)是CDROM/DVDROM驅(qū)動3。如果當(dāng)前的引導(dǎo)目標(biāo)設(shè)備是CDROM/DVDROM驅(qū)動3并且在步驟S32的判定結(jié)果為是,則即使當(dāng)出現(xiàn)錯誤結(jié)束時,也不再從CDROM/DVDROM驅(qū)動3執(zhí)行重試。因此,步驟S33刪除FjSdBootNext變量,并在系統(tǒng)監(jiān)視機(jī)構(gòu)12中將SADUMP指定標(biāo)記清除為關(guān)閉狀態(tài)。此后,步驟S35執(zhí)行與引導(dǎo)目標(biāo)設(shè)備相關(guān)的引導(dǎo)處理,隨后該處理結(jié)束。反之,如果當(dāng)前的引導(dǎo)目標(biāo)設(shè)備不是CDROM/DVDROM驅(qū)動3并且在步驟S32的判定結(jié)果為否,則步驟S34在FjSdBootNext變量中設(shè)置CDROM/DVDROM驅(qū)動3的信息,以便當(dāng)出現(xiàn)錯誤結(jié)束時,能夠接著從CDROM/DVDROM驅(qū)動3執(zhí)行重試,此后,步驟S35執(zhí)行與這個引導(dǎo)目標(biāo)設(shè)備相關(guān)的引導(dǎo)處理,隨后該處理結(jié)束。
接著,將描述FjSdBtTbl表變量的規(guī)定。FjSdBtTbl表變量由具有兩字節(jié)OsBootNum變量和兩字節(jié)SdBootNum變量作為成員的結(jié)構(gòu)形成的單元陣列構(gòu)成。兩字節(jié)OsBootNum變量具有BootXXXX變量的XXXX部分的值,所述BootXXXX變量是指定OS裝載器242的引導(dǎo)目標(biāo)設(shè)備的引導(dǎo)選項(xiàng)變量。兩字節(jié)SdBootNum變量具有FjSdBootYYYY變量的YYYY部分的值,所述FjSdBootYYYY變量是指定SADUMP裝載器的引導(dǎo)目標(biāo)設(shè)備的引導(dǎo)選項(xiàng)變量。
Typedef struct_FJSV_SD_BT_TBL_ENTRY{UNIT16 OsBootNum;//與BootXXXX的XXXX部分相對應(yīng)的值UNIT16 SdBootNum;//與FjSdBootYYYY的YYYY部分的值}FJSV_SD_BT_TBL_ENTRY;在這個實(shí)施例中,為了方便,假設(shè)將與OS裝載器242相對應(yīng)的SADUMP裝載器的表目數(shù)據(jù)預(yù)先設(shè)置在FjSdBtTbl表變量內(nèi)??梢杂蒘ADUMP安裝器244根據(jù)下述規(guī)則來執(zhí)行該FjSdBtTbl表變量的設(shè)置。
(1)為了方便,假設(shè)FjSdBtTbl表變量僅由分別與由在計(jì)算機(jī)系統(tǒng)1內(nèi)安裝的SADUMP支持的OS 243相對應(yīng)的引導(dǎo)選項(xiàng)BootXXXX(BootXXXX變量)的表目構(gòu)成。由SADUMP支持的OS 243是如下這樣當(dāng)在該OS 243的操作過程中產(chǎn)生故障時,該OS 243能夠通過引導(dǎo)SADUMP來執(zhí)行用于檢查故障的存儲器轉(zhuǎn)儲。例如,在多個OS 243可以在計(jì)算機(jī)系統(tǒng)1內(nèi)引導(dǎo)但是所安裝的SADUMP僅支持某些OS 243的情況下,F(xiàn)jSdBtTbl表變量僅由與所支持的OS 243的引導(dǎo)選項(xiàng)BootXXXX相對應(yīng)的表目組成。此外,即使SADUMP支持OS 243,但是如果FjSdBtTbl表變量的表目并不包括與該OS 243的引導(dǎo)選項(xiàng)BootXXXX對應(yīng)的表目,則當(dāng)在該OS 243的操作過程中產(chǎn)生故障時,也不引導(dǎo)SADUMP。
(2)設(shè)置OsBootNum變量的值使得OsBootNum變量為FjSdBtTbl表變量的更小的表目采取更小的值。
(3)單個SADUMP能夠支持多個OS 243。因此,SdBootNum變量可以具有用于不同表目的相同值。
(4)可以在計(jì)算機(jī)系統(tǒng)1內(nèi)安裝多個SADUMP。然而,必需唯一地確定多個OS 243分別對應(yīng)的所安裝的SADUMP。
(5)通過確定與在計(jì)算機(jī)系統(tǒng)1內(nèi)可引導(dǎo)的OS 243的對應(yīng)關(guān)系,當(dāng)安裝SADUMP時,由SADUMP安裝器244建立FjSdBtTbl表變量。此外,當(dāng)卸載該SADUMP時,刪除具有由SADUMP卸載器245卸載的SADUMP的裝載器編號(值)的所有表目。此外,通過在安裝SADUMP之后新安裝或卸載OS 243時引導(dǎo)SADUMP安裝器244,通過確定新OS 243和SADUMP的對應(yīng)關(guān)系來添加新表目,刪除具有所卸載的OS 243的引導(dǎo)選項(xiàng)編號(值)的表目,能夠執(zhí)行維護(hù)。
接著,將描述通過使用FjSdBtTbl表變量,獲取與OS裝載器242的引導(dǎo)目標(biāo)設(shè)備相對應(yīng)的SADUMP裝載器的引導(dǎo)目標(biāo)設(shè)備的處理。
當(dāng)引導(dǎo)OS 243時,從多個現(xiàn)有的引導(dǎo)選項(xiàng)中選擇引導(dǎo)目標(biāo)的引導(dǎo)選項(xiàng)BootXXXX。但是為了預(yù)先設(shè)置在計(jì)算機(jī)系統(tǒng)1內(nèi)安裝的并且當(dāng)通過選定的OS 243在計(jì)算機(jī)系統(tǒng)1的操作過程中產(chǎn)生故障時將引導(dǎo)的SADUMP,建立FjSdBootNext變量,并設(shè)置所引導(dǎo)的SADUMP的引導(dǎo)選項(xiàng)FjSdBootYYYY的YYYY部分的值。使用FjSdBtTbl表變量來發(fā)現(xiàn)與選定OS 243的引導(dǎo)選項(xiàng)BootXXXX相對應(yīng)的引導(dǎo)選項(xiàng)FjSdBootYYYY。也就是,從較小的表目開始向較大的表目,連續(xù)地比較選定引導(dǎo)目標(biāo)的引導(dǎo)選項(xiàng)BootXXXX的XXXX部分的值與FjSdBtTbl表變量的OsBootNum變量的值。如果比較了所有的現(xiàn)有表目,但是沒有一個匹配,則不建立FjSdBootNext變量,根據(jù)引導(dǎo)選項(xiàng)BootXXXX來引導(dǎo)OS 243。在這種情況下,因?yàn)樗龑?dǎo)的OS 243并不具有對應(yīng)的SADUMP,并不執(zhí)行SADUMP。反之,如果作為比較的結(jié)果存在匹配表目,則建立FjSdBootNext變量,并將該匹配表目的SdBootNum變量內(nèi)的值設(shè)置為FjSdBootNext變量的值。
圖4是用于解釋使用FjSdBtTbl表變量來確定與BootXXXX變量相對應(yīng)的FjSdBootYYYY變量的處理的圖。圖4圖示FjSdBoot0002變量與Boot0003變量相對應(yīng)的情況。
在OS裝載器242的常規(guī)引導(dǎo)處理中,根據(jù)諸如BootOrder變量和BootNext變量的引導(dǎo)變量(或NVRAM變量)來確定引導(dǎo)目標(biāo)的BootXXXX變量。將所確定的Boot變量BootXXXX的XXXX部分的值設(shè)置在BootCurrent變量(存儲器變量)內(nèi)。但是,除此之外,使用XXXX部分的值作為關(guān)鍵字來搜索FjSdBtTbl表變量,并且如果存在與該關(guān)鍵字相對應(yīng)的表目,則建立作為NVRAM變量的FjSdNext變量。從與該關(guān)鍵字相對應(yīng)的表目獲得FjSdBootYYYY變量的YYYY部分的值,并將該值設(shè)置在FjSdBootNext變量內(nèi)。如果不存在與該關(guān)鍵字相對應(yīng)的表目,則刪除作為NVRAM變量的FjSdBootNext變量。此后,從在Boot0003變量內(nèi)設(shè)置的引導(dǎo)目標(biāo)設(shè)備引導(dǎo)OS裝載器242。
接著,將描述FjSdBootYYYY變量的規(guī)定。例如,F(xiàn)jSdBootYYYY變量的規(guī)定如下,其中Attribute變量、FilePathListLength變量、FilePathList變量和OptionalData變量定義如下。
Typedef struct_FJSV_SD_BOOT{UNIT32 Attributes;UNIT16 FilePathListLength;CHAR16 Decription[];DEVICE_PATH FilePathList[];UNIT8OptionalData[];}FJ_SD_BOOT;1)Attributes規(guī)定當(dāng)裝載SADUMP時的附加處理的信息。
2)FilePathListLength表示FilePathList變量的字節(jié)大小的信息。
3)Description用于插入SADUMP引導(dǎo)選項(xiàng)的描述和由以NULL字符結(jié)束的單代碼字符串構(gòu)成的信息。
4)FilePathList規(guī)定用于引導(dǎo)目標(biāo)SADUMP的SADUMP裝載器的位置的設(shè)備路徑信息。
5)OptionalData將傳送給SADUMP裝載器的數(shù)據(jù)。
圖5是用于解釋將由SADUMP安裝器244執(zhí)行的與NVRAM變量相關(guān)的處理的流程圖。
在圖5中,當(dāng)在步驟S41啟動在安裝SADUMP時執(zhí)行的SADUMP引導(dǎo)選項(xiàng)設(shè)置處理時,步驟S42啟動SADUMP的引導(dǎo)選項(xiàng)設(shè)置,步驟S43確定FjSdBootZZZZ變量是否在NVRAM 23中存在。如果在步驟S43的判定結(jié)果為是,則步驟S44通過更新FjSdBootZZZZ變量的ZZZZ部分的值來建立新的FjSdBootYYYY變量,并設(shè)置待安裝的SADUMP的SADUMP裝載器的設(shè)備路徑信息。反之,如果在步驟S43中的判定結(jié)果為否,則步驟S45建立FjSdBoot0000變量,并設(shè)置待安裝的SADUMP的SADUMP裝載器的設(shè)備路徑信息。
在步驟S44或S45之后,步驟S46確定在VARAM 23中是否存在FjSdBtTbl表變量。如果在步驟S46中的判定結(jié)果為是,則步驟S47從NVRAM 23讀取FjSdBtTbl表變量。如果在步驟S46中的判定結(jié)果為否,或者在步驟S47之后,步驟S48建立新建立的FjSdBootYYYY變量的YYYY部分的值與對應(yīng)的OS裝載器242的引導(dǎo)選項(xiàng)BootXXXX(BootXXXX變量)的XXXX部分成對的數(shù)據(jù),如果在NVRAM 23內(nèi)存在FjSdBtTbl表變量,則將數(shù)據(jù)添加給現(xiàn)有數(shù)據(jù)以構(gòu)成新的FjSdBtTbl表變量。而且,步驟S49結(jié)束SADUMP的引導(dǎo)選項(xiàng)設(shè)置。
圖6是用于解釋由SADUMP卸載器245執(zhí)行的與NVRAM變量相關(guān)的處理的流程圖。
在圖6中,當(dāng)在步驟S51中啟動在卸載SADUMP時執(zhí)行的SADUMP引導(dǎo)選項(xiàng)刪除處理時,步驟S52從NVRAM 23讀取FjSdBtTbl表變量。此外,步驟S52建立數(shù)據(jù),在該數(shù)據(jù)中刪除了具有待卸載的SADUMP的引導(dǎo)選項(xiàng)的值(FjSdBootYYYY變量的YYYY部分)的表目,并使用該數(shù)據(jù)作為新的FjSdBtTbl表變量。如果刪除了所有的表目,則步驟S52并不建立已刪除的FjSdBtTbl表變量。步驟S53刪除作為待卸載的SADUMP的引導(dǎo)選項(xiàng)的FjSdBootYYYY變量。步驟54結(jié)束SADUMP的引導(dǎo)選項(xiàng)刪除。
因此,本發(fā)明應(yīng)用于一種計(jì)算機(jī)系統(tǒng),其中能夠引導(dǎo)多個OS,當(dāng)引導(dǎo)OS時,通過從多個引導(dǎo)目標(biāo)設(shè)備中自動地或手工地選擇引導(dǎo)目標(biāo)設(shè)備能夠切換和操作OS??梢詫?dāng)在OS操作過程中產(chǎn)生故障時重置和啟動計(jì)算機(jī)系統(tǒng)的獨(dú)立轉(zhuǎn)儲程序設(shè)置為支持用于在產(chǎn)生故障之前正在操作的OS的最佳存儲器轉(zhuǎn)儲的程序。
此外,本發(fā)明并不限制于這些實(shí)施例,在不脫離本發(fā)明保護(hù)范圍的情況下,可以對其進(jìn)行各種改變和修改。
權(quán)利要求
1.一種存儲器轉(zhuǎn)儲程序引導(dǎo)方法,其特征在于(a)在由計(jì)算機(jī)系統(tǒng)的引導(dǎo)固件管理的非易失性變量中定義在計(jì)算機(jī)系統(tǒng)內(nèi)安裝的多個獨(dú)立轉(zhuǎn)儲程序的引導(dǎo)信息和表示多個獨(dú)立轉(zhuǎn)儲程序與多個操作系統(tǒng)的對應(yīng)關(guān)系的表變量;(b)當(dāng)引導(dǎo)固件引導(dǎo)多個操作系統(tǒng)中的任一個操作系統(tǒng)時,根據(jù)表變量指定多個獨(dú)立轉(zhuǎn)儲程序中的對應(yīng)一個的引導(dǎo)信息,并將表示所指定引導(dǎo)信息的信息寫入當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的非易失性變量;和(c)當(dāng)指示引導(dǎo)獨(dú)立轉(zhuǎn)儲時,通過檢查當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的變量的存在,并且如果所述變量存在則通過參考所述變量的信息,來引導(dǎo)多個獨(dú)立轉(zhuǎn)儲程序中的一個對應(yīng)的獨(dú)立轉(zhuǎn)儲程序。
2.根據(jù)權(quán)利要求1所述的存儲器轉(zhuǎn)儲程序引導(dǎo)方法,其特征在于,如果待引導(dǎo)的多個操作系統(tǒng)中的任一操作系統(tǒng)不具有對應(yīng)的獨(dú)立轉(zhuǎn)儲程序,則不建立當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的變量。
3.根據(jù)權(quán)利要求1或2所述的存儲器轉(zhuǎn)儲程序引導(dǎo)方法,其特征在于所述引導(dǎo)信息包括第一、第二、第三、第四和第五變量;所述第一變量包括表示計(jì)算機(jī)系統(tǒng)中的連接有引導(dǎo)目標(biāo)設(shè)備的位置的設(shè)備路徑信息,以及與操作系統(tǒng)裝載器程序的文件位置和文件名相關(guān)的信息;所述第二變量表示對由第一變量表示的多個現(xiàn)有引導(dǎo)目標(biāo)設(shè)備進(jìn)行引導(dǎo)的順序;所述第三變量包括存儲獨(dú)立轉(zhuǎn)儲程序的裝載器程序的引導(dǎo)目標(biāo)設(shè)備的設(shè)備路徑信息,以及與獨(dú)立轉(zhuǎn)儲程序的裝載器程序的文件位置和文件名相關(guān)的信息;所述第四變量保存作為下一次將引導(dǎo)的獨(dú)立轉(zhuǎn)儲程序的裝載器程序的引導(dǎo)信息的第三變量;而所述第五變量指定當(dāng)出現(xiàn)獨(dú)立轉(zhuǎn)儲錯誤結(jié)束時執(zhí)行的處理。
4.根據(jù)權(quán)利要求3所述的存儲器轉(zhuǎn)儲程序引導(dǎo)方法,其特征在于所述引導(dǎo)目標(biāo)設(shè)備包括硬盤驅(qū)動和/或CDROM驅(qū)動和/或DVDROM驅(qū)動;并且所述第五變量規(guī)定執(zhí)行錯誤通知并重新引導(dǎo)多個操作系統(tǒng)中的任一操作系統(tǒng),或規(guī)定引導(dǎo)存儲在構(gòu)成引導(dǎo)目標(biāo)設(shè)備的CDROM驅(qū)動或DVDROM驅(qū)動內(nèi)的獨(dú)立轉(zhuǎn)儲程序。
5.根據(jù)權(quán)利要求1至4中的任一項(xiàng)所述的存儲器轉(zhuǎn)儲程序引導(dǎo)方法,其特征在于,將獨(dú)立轉(zhuǎn)儲程序的裝載器程序的映像和獨(dú)立轉(zhuǎn)儲程序的映像存儲在一存儲位置上,所述存儲位置獨(dú)立于連接到計(jì)算機(jī)系統(tǒng)的引導(dǎo)目標(biāo)設(shè)備內(nèi)的存儲位置,并且存儲操作系統(tǒng)的裝載器程序的映像和操作系統(tǒng)的映像。
6.根據(jù)權(quán)利要求1至5中的任一項(xiàng)所述的存儲器轉(zhuǎn)儲程序引導(dǎo)方法,其特征在于,所述方法還包括(d)由通過獨(dú)立于計(jì)算機(jī)系統(tǒng)主體的硬件操作的系統(tǒng)監(jiān)視機(jī)構(gòu)來管理表示是否執(zhí)行存儲器診斷的標(biāo)記。
7.一種存儲器轉(zhuǎn)儲程序引導(dǎo)設(shè)備,其特征在于,所述設(shè)備包括非易失性存儲器,其被配置為在由計(jì)算機(jī)系統(tǒng)的引導(dǎo)固件管理的非易失性變量內(nèi)存儲在計(jì)算機(jī)系統(tǒng)內(nèi)安裝的多個獨(dú)立轉(zhuǎn)儲程序的引導(dǎo)信息和表示多個獨(dú)立轉(zhuǎn)儲程序與多個操作系統(tǒng)的對應(yīng)關(guān)系的表變量;寫入裝置,用于當(dāng)引導(dǎo)固件引導(dǎo)多個操作系統(tǒng)中的任一個操作系統(tǒng)時,根據(jù)表變量指定多個獨(dú)立轉(zhuǎn)儲程序中的對應(yīng)一個的引導(dǎo)信息,并將表示所指定引導(dǎo)信息的信息寫入當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的非易失性變量;和引導(dǎo)裝置,用于當(dāng)指示引導(dǎo)獨(dú)立轉(zhuǎn)儲時,通過檢查當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的變量的存在,并且如果所述變量存在則通過參考所述變量的信息,來引導(dǎo)多個獨(dú)立轉(zhuǎn)儲程序中的一個對應(yīng)的獨(dú)立轉(zhuǎn)儲程序。
8.根據(jù)權(quán)利要求7所述的存儲器轉(zhuǎn)儲程序引導(dǎo)設(shè)備,其特征在于,如果待引導(dǎo)的多個操作系統(tǒng)中的任一操作系統(tǒng)不具有對應(yīng)的獨(dú)立轉(zhuǎn)儲程序,則不建立當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的變量。
9.根據(jù)權(quán)利要求7或8所述的存儲器轉(zhuǎn)儲程序引導(dǎo)設(shè)備,其特征在于所述引導(dǎo)信息包括第一、第二、第三、第四和第五變量;所述第一變量包括表示在計(jì)算機(jī)系統(tǒng)中連接有引導(dǎo)目標(biāo)設(shè)備的位置的設(shè)備路徑信息,以及與操作系統(tǒng)裝載器程序的文件位置和文件名相關(guān)的信息;所述第二變量表示對由第一變量表示的多個現(xiàn)有引導(dǎo)目標(biāo)設(shè)備進(jìn)行引導(dǎo)的順序;所述第三變量包括存儲獨(dú)立轉(zhuǎn)儲程序的裝載器程序的引導(dǎo)目標(biāo)設(shè)備的設(shè)備路徑信息,以及與獨(dú)立轉(zhuǎn)儲程序的裝載器程序的文件位置和文件名相關(guān)的信息;所述第四變量保存作為下一次將引導(dǎo)的獨(dú)立轉(zhuǎn)儲程序的裝載器程序的引導(dǎo)信息的第三變量;而所述第五變量指定當(dāng)出現(xiàn)獨(dú)立轉(zhuǎn)儲錯誤結(jié)束時執(zhí)行的處理。
10.根據(jù)權(quán)利要求9所述的存儲器轉(zhuǎn)儲程序引導(dǎo)設(shè)備,其特征在于所述引導(dǎo)目標(biāo)設(shè)備包括硬盤驅(qū)動和/或CDROM驅(qū)動和/或DVDROM驅(qū)動;并且所述第五變量規(guī)定執(zhí)行錯誤通知并且重新引導(dǎo)多個操作系統(tǒng)中的任一操作系統(tǒng),或規(guī)定引導(dǎo)在構(gòu)成引導(dǎo)目標(biāo)設(shè)備的CDROM驅(qū)動或DVDROM驅(qū)動內(nèi)存儲的獨(dú)立轉(zhuǎn)儲程序。
11.根據(jù)權(quán)利要求7至10中的任一權(quán)利要求所述的存儲器轉(zhuǎn)儲程序引導(dǎo)設(shè)備,其特征在于,將獨(dú)立轉(zhuǎn)儲程序的裝載器程序的映像和獨(dú)立轉(zhuǎn)儲程序的映像存儲在一存儲位置上,該存儲位置獨(dú)立于連接到計(jì)算機(jī)系統(tǒng)的引導(dǎo)目標(biāo)設(shè)備內(nèi)的存儲位置,并且存儲操作系統(tǒng)的裝載器程序的映像和操作系統(tǒng)的映像。
12.根據(jù)權(quán)利要求7至11中的任一項(xiàng)所述的存儲器轉(zhuǎn)儲程序引導(dǎo)設(shè)備,其特征還在于系統(tǒng)監(jiān)視機(jī)構(gòu)被配置為通過操作獨(dú)立于計(jì)算機(jī)系統(tǒng)主體的硬件來管理表示是否執(zhí)行存儲器診斷的標(biāo)記。
13.一種計(jì)算機(jī)可讀存儲介質(zhì),其存儲用于使計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)引導(dǎo)存儲器轉(zhuǎn)儲程序的程序,其特征在于所述程序包括使計(jì)算機(jī)執(zhí)行以下操作的程序在由計(jì)算機(jī)系統(tǒng)的引導(dǎo)固件管理的非易失性變量中定義在計(jì)算機(jī)系統(tǒng)內(nèi)安裝的多個獨(dú)立轉(zhuǎn)儲程序的引導(dǎo)信息和表示多個獨(dú)立轉(zhuǎn)儲程序與多個操作系統(tǒng)的對應(yīng)關(guān)系的表變量;使計(jì)算機(jī)執(zhí)行以下操作的程序當(dāng)引導(dǎo)固件引導(dǎo)多個操作系統(tǒng)中的任一個操作系統(tǒng)時,根據(jù)表變量指定多個獨(dú)立轉(zhuǎn)儲程序中的對應(yīng)一個的引導(dǎo)信息,并將表示所指定引導(dǎo)信息的信息寫入當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的非易失性變量;以及使計(jì)算機(jī)執(zhí)行以下操作的程序當(dāng)指示引導(dǎo)獨(dú)立轉(zhuǎn)儲時,通過檢查當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的變量的存在和如果變量存在則通過參考變量的信息,來引導(dǎo)多個獨(dú)立轉(zhuǎn)儲程序中的一個對應(yīng)的獨(dú)立轉(zhuǎn)儲程序。
14.根據(jù)權(quán)利要求13所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,如果待引導(dǎo)的多個操作系統(tǒng)中的任一操作系統(tǒng)不具有對應(yīng)的獨(dú)立轉(zhuǎn)儲程序,則不建立當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的變量。
15.根據(jù)權(quán)利要求13或14所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于引導(dǎo)信息包括第一、第二、第三、第四和第五變量;所述第一變量包括表示在計(jì)算機(jī)系統(tǒng)中的連接有引導(dǎo)目標(biāo)設(shè)備的位置的設(shè)備路徑信息,以及與操作系統(tǒng)裝載器程序的文件位置和文件名相關(guān)的信息;所述第二變量表示對由第一變量表示的多個現(xiàn)有引導(dǎo)目標(biāo)設(shè)備進(jìn)行引導(dǎo)的順序;所述第三變量包括存儲獨(dú)立轉(zhuǎn)儲程序的裝載器程序的引導(dǎo)目標(biāo)設(shè)備的設(shè)備路徑信息,以及與獨(dú)立轉(zhuǎn)儲程序的裝載器程序的文件位置和文件名相關(guān)的信息;所述第四變量保存作為下一次將引導(dǎo)的獨(dú)立轉(zhuǎn)儲程序的裝載器程序的引導(dǎo)信息的第三變量;而所述第五變量指定當(dāng)出現(xiàn)獨(dú)立轉(zhuǎn)儲錯誤結(jié)束時執(zhí)行的處理。
16.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于所述引導(dǎo)目標(biāo)設(shè)備包括硬盤驅(qū)動和/或CDROM驅(qū)動和/或DVDROM驅(qū)動;并且所述第五變量規(guī)定執(zhí)行錯誤通知并重新引導(dǎo)多個操作系統(tǒng)中的任一操作系統(tǒng),或規(guī)定引導(dǎo)在構(gòu)成引導(dǎo)目標(biāo)設(shè)備的CDROM驅(qū)動或DVDROM驅(qū)動內(nèi)存儲的獨(dú)立轉(zhuǎn)儲程序。
17.根據(jù)權(quán)利要求13至16中的任一項(xiàng)所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,將獨(dú)立轉(zhuǎn)儲程序的裝載器程序的映像和獨(dú)立轉(zhuǎn)儲程序的映像存儲在一存儲位置上,該存儲位置獨(dú)立于連接到計(jì)算機(jī)系統(tǒng)的引導(dǎo)目標(biāo)設(shè)備內(nèi)的存儲位置,并存儲操作系統(tǒng)的裝載器程序的映像和操作系統(tǒng)的映像。
18.根據(jù)權(quán)利要求13至17中的任一項(xiàng)所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述程序還包括使計(jì)算機(jī)執(zhí)行以下操作的程序通過操作獨(dú)立于計(jì)算機(jī)系統(tǒng)主體的硬件的系統(tǒng)監(jiān)視機(jī)構(gòu)來管理表示是否執(zhí)行存儲器診斷的標(biāo)記。
全文摘要
一種存儲器轉(zhuǎn)儲程序引導(dǎo)方法,包括如下步驟在由計(jì)算機(jī)系統(tǒng)的引導(dǎo)固件管理的非易失性變量中定義在計(jì)算機(jī)系統(tǒng)內(nèi)安裝的多個獨(dú)立轉(zhuǎn)儲程序的引導(dǎo)信息和表示多個獨(dú)立轉(zhuǎn)儲程序與多個操作系統(tǒng)的對應(yīng)關(guān)系的表變量;當(dāng)引導(dǎo)固件引導(dǎo)多個操作系統(tǒng)中的任一個操作系統(tǒng)時,根據(jù)該表變量來指定多個獨(dú)立轉(zhuǎn)儲程序中的對應(yīng)一個的引導(dǎo)信息,并將表示所指定引導(dǎo)信息的信息寫入當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的非易失性變量;并且當(dāng)指示引導(dǎo)獨(dú)立轉(zhuǎn)儲時,通過檢查當(dāng)執(zhí)行獨(dú)立轉(zhuǎn)儲時參考的變量的存在,并且如果變量存在則通過參考變量的信息,來引導(dǎo)多個獨(dú)立轉(zhuǎn)儲程序中的一個對應(yīng)的獨(dú)立轉(zhuǎn)儲程序。
文檔編號G06F9/445GK1811723SQ20051007404
公開日2006年8月2日 申請日期2005年5月25日 優(yōu)先權(quán)日2005年1月26日
發(fā)明者小熊幸雄 申請人:富士通株式會社