專利名稱:改變到計算機存儲器中邏輯驅(qū)動器的分區(qū)映象的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及用來控制訪問計算機磁盤的計算機及操作系統(tǒng)碼,更具體地涉及一種用來動態(tài)地改變到操作系統(tǒng)碼的邏輯驅(qū)動器的磁盤的分區(qū)映象的方法。
在帶有一個或多個諸如硬盤的存儲裝置的計算機中,存儲裝置通常被分成不同的分區(qū),這樣一些數(shù)據(jù)或程序可分開存儲。例如,在使用華盛頓,雷德蒙德的微軟公司的微軟DOS或WINDOWS操作系統(tǒng)的計算機中,單個計算機硬盤驅(qū)動器可分成初始分區(qū)和實用分區(qū),前者包含DOS或WINDOWS操作系統(tǒng)以及其它應(yīng)用程序,而后者包含應(yīng)用或維護型程序。
在某些情形下,并不希望在計算機的一般操作中允許用戶訪問實用分區(qū),因為用戶可以容易地丟失或損壞其硬盤驅(qū)動器上的數(shù)據(jù),重新配置計算機,或進行其他禁止用戶從事的情況。因此,解決方法就是配置實用分區(qū),以使它對于操作系統(tǒng)是“看不見”的,因此用戶不能訪問。這可通過將實用分區(qū)的分區(qū)類型碼設(shè)置成一個值來完成,該值是操作系統(tǒng)不能識別的或?qū)ζ涫菬o效的,并將一活動標志設(shè)置為“非活動”。然而,初始分區(qū)保留“可見”,帶有操作系統(tǒng)可識別或?qū)ζ溆行У姆謪^(qū)類型碼,及一被設(shè)置為“活動”的活動標志。
盡管實用分區(qū)對用戶不可見的,但上述情況仍存在與此相關(guān)的幾個問題。一個問題發(fā)生在當軟件下載到硬盤驅(qū)動器上時的制造過程中。在這樣的情形下,希望在實用和初始分區(qū)之間進行交替。然而,計算機的操作系統(tǒng)僅將可見分區(qū)作為邏輯驅(qū)動器,分配或“映象”給它們一個用于參考的驅(qū)動器字母。例如使用DOS操作系統(tǒng)時,硬盤驅(qū)動器上初始分區(qū)是一個活動分區(qū),并被分配給“C”驅(qū)動器字母。同時,實用分區(qū)是非活動的,而且不帶有所分配的驅(qū)動器字母。與上述情形相關(guān)的另一個問題是許多軟件下載過程包括硬盤驅(qū)動器的單一邏輯參考(logical reference),例如DOS示例中的“C”驅(qū)動器,因此不能在兩個分區(qū)之間進行分辨。這是因為,如上所述,只有一個分區(qū)具有相關(guān)的驅(qū)動器字母。
對上述問題的典型解決方法是將所希望的分區(qū)的分區(qū)類型碼變?yōu)椤盎顒印?,并重啟動計算機。然而,這樣的重啟動會花費大量的時間和資源,是很昂貴的。而且,重啟動趨向于釋放或重新配置計算機的某些方面,而這可能是用戶想要保留的。例如,如果初始分區(qū)里存儲的程序在某些情況下引起計算機發(fā)生故障,可能希望使用實用分區(qū)里的維護程序來診斷計算機。然而,要訪問維護程序,計算機必須重新啟動,因此不能診斷處于故障中的計算機的狀態(tài)。
針對這種情況,提供一種用來改變到計算機的存儲設(shè)備中邏輯驅(qū)動器的分區(qū)映象的系統(tǒng)和方法。在一個實施例中,計算機包括用來運行操作系統(tǒng)碼的處理器和硬盤驅(qū)動器存儲裝置。能夠由處理器訪問的硬盤驅(qū)動器至少包括兩個分區(qū),第一分區(qū)起初是活動的并具有可由操作系統(tǒng)識別的類型,而第二分區(qū)起初是非活動的并具有操作系統(tǒng)不能識別的類型。
當計算機開始工作時,操作系統(tǒng)碼中的邏輯參考值指向第一分區(qū)。然后,運行參考變更程序,用于動態(tài)地將邏輯參考值變換到第二分區(qū)。通過使參考變更程序改變操作碼中某些預(yù)定的表格就能實現(xiàn)這一點。這些表格由操作系統(tǒng)碼所使用,以邏輯地將該邏輯參考映象到一特定分區(qū)。因此,在參考變更程序?qū)⒃撨壿媴⒖贾赶虻诙謪^(qū)之后,處理器可以繼續(xù)運行操作碼,而不需要計算機再啟動。
可得到的技術(shù)優(yōu)點是能夠訪問存儲裝置的兩個分區(qū),而不需要在其間再啟動,由此節(jié)省大量時間。
可得到的另一個技術(shù)優(yōu)點是一個分區(qū)中的程序可用來配置計算機,而然后另一分區(qū)中的程序可用來在所配置的計算機上進行維護或其它實用操作。
圖1是用來實施一個實施例的計算機的方框圖。
圖2是圖1的計算機的硬盤驅(qū)動器的布局設(shè)計。
圖3是圖1的計算機所運行的程序的流程圖。
下面的說明內(nèi)容綜合參照了與本發(fā)明一同申請的名稱為“用來更新到計算機存儲裝置中邏輯驅(qū)動器的分區(qū)映象的方法”(Method forUpdating Partition Mappings to Logical Drives in a CompaterMemory Device)的美國專利申請(代理人案卷號DC-1314)和名稱為“用來模擬計算機存儲裝置的方法”(Method for Simulating aCompater Storage Device)美國專利申請(代理人案卷號DC-1315)。
參照圖1,參考數(shù)字10指帶有幾個元件,包括處理器12,隨機存儲器(RAM)14a和只讀存儲器(ROM)14b的一存儲單元,硬盤16及網(wǎng)絡(luò)接口18的計算機。每個元件都能與處理器12通信,如圖中的通用總線20所表示的。在本實例中,計算機10是運行微軟DOS和/或WINDOWS的個人計算機。然而,應(yīng)當明白,計算機10及其元件僅僅是公知的許多不同類型的計算機及元件的代表,這一點本領(lǐng)域的普通專業(yè)人員能夠理解。
參照圖2,硬盤16進一步分為三個不同分區(qū)主引導記錄30,實用分區(qū)32及初始分區(qū)34。位于主引導記錄30中的是引導程序碼40和主分區(qū)表42。主分區(qū)表包括表示每個分區(qū)32和34的類型的碼。應(yīng)當明白,主引導記錄30也包含常規(guī)碼,諸如在本領(lǐng)域里是公知的用來啟動計算機10的碼。
實用分區(qū)32包括引導記錄50和一個或多個軟件,諸如維護程序52。在正常操作中,實用分區(qū)32將僅在特殊情形下使用,例如在維護和計算機診斷操作中。初始分區(qū)34也包含引導記錄60和一個或多個軟件,例如程序62。在正常操作中,初始分區(qū)34將經(jīng)常被使用,并將占用大部分的硬盤驅(qū)動器16。因此,在正常操作之中,當操作系統(tǒng)訪問硬盤驅(qū)動器16時,它將只看見及訪問初始分區(qū)34而不能訪問實用分區(qū)32。
下面的表1和表2表示主分區(qū)表42中的某些樣本項。表1說明當初始分區(qū)34對于DOS是可見的而實用分區(qū)32對于DOS是不可見的時主分區(qū)表42的一部分。表2說明當實用分區(qū)32對于DOS是可見的而初始分區(qū)34對于DOS是不可見的時主分區(qū)表42的一部分。
表1
p><p>表2
參照圖3,名為“窩伏爾(Waffle)”的程序100允許操作系統(tǒng)在兩個分區(qū)32、34之間前后轉(zhuǎn)換。例如,實用分區(qū)32起初是非活動的而初始分區(qū)34是活動的。而且,實用分區(qū)32的分區(qū)類型碼被設(shè)置為無效類型,而初始分區(qū)的分區(qū)類型碼被設(shè)置為有效類型。仍然在上述例子中,操作系統(tǒng)是DOS,類型06h是有效分區(qū)類型碼,類型DEh是無效分區(qū)類型碼,并且初始分區(qū)有一被分配的C驅(qū)動器字母。因此,DOS起初識別或“看見”初始分區(qū)34,但不能識別實用分區(qū)32。還有,用于注明每個活動驅(qū)動器(包括邏輯C驅(qū)動器)的布局及組織映象關(guān)系的某些表格由DOS使用以將邏輯C驅(qū)動器映象到初始分區(qū)34。因此,到C驅(qū)動器的所有讀和寫操作都在初始分區(qū)34上進行。應(yīng)當明白,上述參考碼和驅(qū)動器字母由DOS來定義,或由所使用的操作系統(tǒng)來定義,這一點本領(lǐng)域的普通技術(shù)人員能夠理解。
窩伏爾由將其裝入RAM14a中的處理器12啟動。窩伏爾是一個邏輯參考更改程序,在本實施例中經(jīng)由網(wǎng)絡(luò)接口18從相連接的網(wǎng)絡(luò)被下載。另外,網(wǎng)絡(luò)包括一些操作系統(tǒng)碼,以使計算機10可在此步驟通過網(wǎng)絡(luò)重引導,也就是計算機使用從網(wǎng)絡(luò)接口18得到的操作系統(tǒng)碼進行重引導。要么,處理器12可從分區(qū)32和34兩者或其中之一裝載窩伏爾,也可以從軟盤(未示出)或其它源裝載窩伏爾。
在步驟112,接收到表示要訪問的特定分區(qū)的指令。在本實施例中,通過試圖在分區(qū)32、34兩者或之一上下載軟件的制造過程提供該指令。指令“實用”表示希望訪問實用分區(qū)32,而指令“初始”表示希望訪問初始分區(qū)34。這些指令可從用戶接口(未示出)、網(wǎng)絡(luò)接口18或其它輸入設(shè)備輸入。而且,可以預(yù)料另外的分區(qū)也是可用的,但為簡單起見此處僅討論兩個分區(qū)。
在步驟114,判定用戶是否想轉(zhuǎn)換分區(qū)。如果收到的指令是“實用”,則在步驟120,窩伏爾檢查DOS參考表,以確保邏輯C驅(qū)動器當前映象到初始分區(qū)34。在步驟122,如果邏輯C驅(qū)動器不映象到初始分區(qū)34,則執(zhí)行過程進行到步驟124,在該步驟顯示出錯信息,說明實用分區(qū)已經(jīng)處于活動狀況。一旦被顯示,執(zhí)行過程返回到步驟114。然而,如果邏輯C驅(qū)動器映象到初始分區(qū)34,則執(zhí)行過程進行到步驟125。
在步驟125,窩伏爾刷新操作系統(tǒng)所使用的任何緩沖器(例如DOS緩沖器),如果計算機10包括超高速緩存器,則窩伏爾刷新超高速緩沖器,這樣不會存在不一致。在步驟126,窩伏爾將實用分區(qū)32的分區(qū)引導記錄50裝入RAM14a。在步驟128,窩伏爾交換兩個分區(qū)32、34的類型碼和活動標志。在本例中,實用分區(qū)32現(xiàn)在將具有等于06h的類型碼和具有表示活動的活動標志,而初始分區(qū)34現(xiàn)在將具有等于DEh的類型碼和具有表示非活動的活動標志。以這種方式,主分區(qū)表42與新的映象相一致,而如果計算機10被重啟動,它將返回到上述狀態(tài),即實用分區(qū)32是活動且可見的分區(qū)。
在步驟130,窩伏爾將操作系統(tǒng)所使用的數(shù)據(jù)結(jié)構(gòu)或表格定位以加注邏輯C驅(qū)動器。在本例中,窩伏爾定位DOS所使用的驅(qū)動數(shù)據(jù)表(DDT)、驅(qū)動參考塊(DPB)及當前目錄結(jié)構(gòu)(CDS)。窩伏爾還按操作系統(tǒng)型號(例如DOS6.8、DOS7.X)和文件系統(tǒng)型號(例如FAT16初始,F(xiàn)AT32初始)將上述加注的結(jié)構(gòu)特征化。可以理解在本例的DOS系統(tǒng)中,操作系統(tǒng)型號和文件系統(tǒng)型號代表特定操作系統(tǒng)的特征,這一點本領(lǐng)域的普通專業(yè)人員能夠理解。
在步驟132,窩爾伏通過從RAM14a中存儲的分區(qū)引導記錄提取特定數(shù)據(jù)來修改每個上述加注的結(jié)構(gòu),并將此數(shù)據(jù)寫入結(jié)構(gòu)中。由于DOS通過涉及上述加注的數(shù)據(jù)結(jié)構(gòu)來訪問C驅(qū)動器,因而任何經(jīng)DOS訪問C驅(qū)動器的試圖現(xiàn)在都將指向?qū)嵱梅謪^(qū)32。然后執(zhí)行過程回到步驟114。
如果在步驟114接收到的指令是“初始”,則執(zhí)行過程進行到步驟140。步驟140-152分別類似于120-132。在步驟140,窩伏爾檢查DOS參考表,以確保邏輯C驅(qū)動器當前映象到實用分區(qū)32。在步驟142,如果邏輯C驅(qū)動器沒有映象到實用分區(qū)32,則執(zhí)行過程進行到步驟124,在這一步顯示出錯信息。然而,如果邏輯C驅(qū)動器映象到實用分區(qū)32,則執(zhí)行過程進行到步驟145。
在步驟145,窩伏爾刷新任何緩沖器或超高速緩存器。在步驟146,窩伏爾將初始分區(qū)34的分區(qū)引導記錄50裝入RAM14a。在步驟148,窩伏爾交換兩個分區(qū)3、234的類型碼和活動標志。在本例中,初始分區(qū)34現(xiàn)在將具有等于06h的類型碼和具有表示活動的活動標志,而實用分區(qū)32現(xiàn)有將具有等于DEh的類型碼和表示非活動的活動標志。在步驟150,窩伏爾將操作系統(tǒng)所使用的數(shù)據(jù)結(jié)構(gòu)或表格定位以加注邏輯C驅(qū)動器。最后,在步驟152,窩伏爾通過從RAM14a中存儲的分區(qū)引導記錄提取特定數(shù)據(jù)來修改這些數(shù)據(jù)結(jié)構(gòu)的每一個,并將該數(shù)據(jù)寫入這些結(jié)構(gòu)中,然后執(zhí)行過程返回到步驟114。
盡管示例的實施例已得到示出和說明,但在上述說明書中可以進行一定的修改、變化和替代,并且在某些情形下可以采用一些特征而不使用相應(yīng)的另一些特征。而且,可以將另外的一些特征,例如錯誤處理程序,增加到實施例中而不改變實施例的范圍。于是,對所附權(quán)利要求進行較寬地解釋是合適的。
權(quán)利要求
1.一種計算機,包括至少一個用來運行操作碼的處理器;至少一個可由處理器訪問的存儲器,存儲器可至少分為兩個分區(qū);使用對該存儲器的邏輯參考,并包括用來將該邏輯參考映象到第一分區(qū)的表格的操作碼;及通過改變此表格來動態(tài)地將該邏輯參考轉(zhuǎn)換到第二分區(qū)的程序;其中,在改變此表格后,處理器可繼續(xù)運行操作碼而不需要計算機重啟動,當該操作碼使用對該存儲器的邏輯參考時,該操作碼被映象到第二分區(qū)。
2.如權(quán)利要求1的計算機,其中第一和第二分區(qū)的每一個都包括一類型,且其中該程序在它改變邏輯參考時改變每個分區(qū)的類型,這樣,作出了邏輯參考的分區(qū)具有對該操作碼是可見的類型,而另一分區(qū)具有對該操作碼是不可見的類型。
3.如權(quán)利要求1的計算機,其中第一和第二分區(qū)的每一個都包括一種狀態(tài),且其中該程序在它改變邏輯參考時改變每個分區(qū)的狀態(tài),這樣作出了邏輯參考的分區(qū)具有活動狀態(tài),而另一分區(qū)不具有活動狀態(tài)。
4.如權(quán)利要求1的計算機,還包括第二存儲器,且其中該程序存儲在第二存儲器上。
5.如權(quán)利要求4的計算機,其中第二存儲器是一軟盤。
6.如權(quán)利要求4的計算機,其中第二存儲器通過一網(wǎng)絡(luò)接口與處理器相連。
7.如權(quán)利要求4的計算機,其中操作碼存儲在第二存儲器中。
8.如權(quán)利要求1的計算機,其中此程序響應(yīng)于一指令來轉(zhuǎn)換該邏輯參考。
9.如權(quán)利要求1的計算機,還包括一超高速緩存器;及用來在此程序已改變表格之后刷新該超高速緩存器的裝置。
10.一種通過使用單一邏輯參考允許操作系統(tǒng)訪問單個存儲裝置的兩個不同分區(qū)的方法,其中每個分區(qū)具有其自身的引導記錄并且操作系統(tǒng)包括一驅(qū)動器表格,此方法包括下列步驟(ⅰ)指定第一分區(qū)為活動,并將第一分區(qū)的類型設(shè)置為有效分區(qū)類型;(ⅱ)裝載第二分區(qū)的引導記錄;(ⅲ)將來自裝載的引導記錄的數(shù)據(jù)插入到驅(qū)動器表格中;及(ⅳ)指定第二分區(qū)為活動,并將第二分區(qū)的類型設(shè)置為有效分區(qū)類型。
11.如權(quán)利要求10的方法,其中步驟(ⅰ)還包括指定第二分區(qū)為非活動狀態(tài),并將第二分區(qū)的類型設(shè)置為無效分區(qū)類型。
12.如權(quán)利要求11的方法,其中步驟(ⅳ)還包括指定第一分區(qū)為非活動狀態(tài),并將第一分區(qū)的類型設(shè)置為無效分區(qū)類型。
13.如權(quán)利要求10的方法,還包括在步驟(ⅱ)之前重啟動操作系統(tǒng)。
14.如權(quán)利要求10的方法,還包括在步驟(ⅱ)之前檢查第二分區(qū)不是活動狀態(tài)。
15.一種通過使用單一邏輯參考允許操作碼訪問存儲裝置的兩個不同分區(qū)的系統(tǒng),其中每個分區(qū)具有其自身的引導記錄并且操作碼使用一驅(qū)動器表格,該系統(tǒng)包括用來指定第一分區(qū)為活動狀態(tài)并將第一分區(qū)的類型設(shè)置為有效分區(qū)類型的裝置;用來裝載第二分區(qū)的引導記錄的裝置;用來將來自裝載的引導記錄的數(shù)據(jù)插入驅(qū)動器表的裝置;及用來指定第二分區(qū)為活動狀態(tài)并將第二分區(qū)的類型設(shè)置為有效分區(qū)類型的裝置。
16.如權(quán)利要求15的系統(tǒng),還包括用來指定第二分區(qū)為非活動狀態(tài)并將第二分區(qū)的類型設(shè)置為無效分區(qū)類型的裝置。
17.如權(quán)利要求16的系統(tǒng),還包括用來指定第一分區(qū)為非活動狀態(tài)并將第一分區(qū)的類型設(shè)置為無效分區(qū)類型的裝置。
18.如權(quán)利要求15的系統(tǒng),還包括用來在裝載引導記錄之前重啟動操作碼的裝置。
19.如權(quán)利要求15的系統(tǒng),還包括用來在裝載引導記錄之前檢查第二分區(qū)不是活動狀態(tài)的裝置。
全文摘要
一種用來改變到計算機存儲裝置中一邏輯驅(qū)動器的分區(qū)映象的系統(tǒng)和方法。當計算機啟動時,操作系統(tǒng)碼中的邏輯參考值指向第一分區(qū)。然后運行參考更改程序,以便動態(tài)地將邏輯參考值轉(zhuǎn)換為第二分區(qū)。這是通過參考更改程序改變操作碼中的某些表格來完成的。這些表格由操作系統(tǒng)的碼所使用,以便邏輯上將邏輯參考映象到特定分區(qū)。因此,在參考更改程序指令邏輯參考指向第二分區(qū)之后,處理器可以繼續(xù)運行操作碼,而不需要計算機重啟動。
文檔編號G06F9/445GK1221149SQ9812517
公開日1999年6月30日 申請日期1998年12月2日 優(yōu)先權(quán)日1997年12月3日
發(fā)明者阿朗·E·貝利茨 申請人:戴爾美國公司