亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

計算機及其磁盤的訪問方法

文檔序號:6471604閱讀:281來源:國知局

專利名稱::計算機及其磁盤的訪問方法
技術(shù)領(lǐng)域
:本發(fā)明涉及計算機領(lǐng)域,特別是指一種基于虛擬技術(shù)的計算機及其磁盤的訪問方法。
背景技術(shù)
:在虛擬計算機
技術(shù)領(lǐng)域
中,如圖1所示,虛擬機系統(tǒng)通常包括安裝在計算機硬件平臺上主操作系統(tǒng)(HostOS),在該主操作系統(tǒng)中安裝有虛擬機管理器V匪(如Xen中的hypervisor),在虛擬機管理器上安裝有客戶操作系統(tǒng)(GuestOS),在虛擬機環(huán)境下,HostOS或者GuestOS對硬件平臺中的磁盤進行訪問時,采用rawpartitionr方式訪問,rawpartitionr即裸分區(qū)(原始分區(qū)),是一種沒有經(jīng)過格式化的磁盤分區(qū)方式。由HostOS中的應(yīng)用層文件系統(tǒng)負(fù)責(zé)對該硬盤分區(qū)進行讀寫操作。該種方式將整塊物理磁盤或者磁盤上的某個分區(qū)直接掛載到GuestOS上,GuestOS對磁盤的操作通過HostOS中的應(yīng)用層文件系統(tǒng)進行,在Host0S中可以直接看到,而且HostOS也可以通過該應(yīng)用層文件系統(tǒng)對磁盤進行讀寫操作。但是當(dāng)一個操作系統(tǒng)(如HostOS)對一磁盤分區(qū)進行讀操作時,同時有另一個操作系統(tǒng)(如GuestOS)對該磁盤分區(qū)進行寫操作,如對該磁盤分區(qū)中的文件內(nèi)容進行了修改,HostOS看到的該磁盤分區(qū)的內(nèi)容就是錯誤的,因此兩個操作系統(tǒng)同時訪問同一磁盤分區(qū)會造成訪問沖突。主流的虛擬機系統(tǒng)Vmware、VirtualBox等都存在這個問題,常見現(xiàn)象是GuestOS或HostOS中對rawpartition進行寫入操作時會出錯,或者在另一個系統(tǒng)中不能及時看到寫入的結(jié)果,在HostOS為Windows系統(tǒng)、XP系統(tǒng)、VISTA系統(tǒng)等時,具體的出錯現(xiàn)象也有所差異,嚴(yán)重的時候會造成GuestOS的系統(tǒng)崩潰。發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題在虛擬環(huán)境中,GuestOS對磁盤的操作會出現(xiàn)錯誤,當(dāng)兩個操作系統(tǒng)(如HostOS和GuestOS)對磁盤同時進行訪問時,會出現(xiàn)沖突;且在一個操作系統(tǒng)對磁盤進行修改時,在另一個操作系統(tǒng)中不能顯示該修改的結(jié)果,不方便操作系統(tǒng)之間文件傳輸。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是提供一種示計算機及其磁盤的訪問方法,避免第二操作系統(tǒng)與第一操作系統(tǒng)對同一磁盤分區(qū)的訪問沖突,使第二操作系統(tǒng)能夠順利完成對磁盤的訪問。為解決上述技術(shù)問題,本發(fā)明的實施例提供技術(shù)方案如下—方面,提供一種計算機,包括硬件平臺,具有磁盤設(shè)備;第一操作模塊,位于所述硬件平臺之上,安裝有第一操作系統(tǒng);虛擬機管理模塊,安裝有虛擬機管理器;第二操作模塊,安裝有第二操作系統(tǒng),所述第二操作系統(tǒng)安裝在所述虛擬機管理器上;其中,所述第一操作模塊包括處理模塊,用于獲取所述第二操作系統(tǒng)的操作指令,在所述操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載;執(zhí)行所述寫操作指令,產(chǎn)生一操作結(jié)果,將所述操作結(jié)果返回至所述第二操作系統(tǒng)。優(yōu)選的,所述處理模塊包括獲取模塊,用于通過所述虛擬機管理器獲取所述第二操作系統(tǒng)的操作指令;卸載模塊,用于在檢測到所述第二操作系統(tǒng)的操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載;執(zhí)行模塊,用于執(zhí)行所述寫操作指令,對所述磁盤設(shè)備的分區(qū)進行寫操作,產(chǎn)生一操作結(jié)果,并將所述操作結(jié)果通過所述虛擬機管理器返回至所述第二操作系統(tǒng);加載模塊,用于在所述寫操作指令被執(zhí)行結(jié)束時,將所述第一操作系統(tǒng)中所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載。優(yōu)選的,所述卸載模塊具體為第一卸載模塊,用于通過鎖巻函數(shù)將所述第一操作系統(tǒng)的所述分區(qū)對應(yīng)的分區(qū)巻卸載。優(yōu)選的,所述加載模塊具體為第一加載模塊,用于通過調(diào)用邏輯驅(qū)動函數(shù)將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載。優(yōu)選的,所述虛擬機管理模塊和所述第二操作模塊均安裝在所述第一操作模塊中。另一方面,本發(fā)明的實施例還提供一種計算機,包括硬件平臺,具有磁盤設(shè)備;硬件驅(qū)動模塊,安裝有所述磁盤設(shè)備的驅(qū)動;第一操作模塊,位于所述硬件平臺之上,安裝有第一操作系統(tǒng);虛擬機管理模塊,安裝有虛擬機管理器;第二操作模塊,安裝有第二操作系統(tǒng),所述第二操作系統(tǒng)安裝在所述虛擬機管理器上;其中,所述虛擬機管理模塊包括處理模塊,用于獲取所述第二操作系統(tǒng)的操作指令,在所述操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述寫操作指令直接定向到所述磁盤設(shè)備的驅(qū)動中的所述分區(qū)的訪問端口,并根據(jù)所述寫操作指令,通過所述分區(qū)的訪問端口對所述分區(qū)進行操作,并向所述第二操作系統(tǒng)返回操作結(jié)果。優(yōu)選的,所述處理模塊包括獲取模塊,用于獲取所述第二操作系統(tǒng)的操作指令;定向模塊,用于檢測到所述操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述寫操作指令直接定向到所述磁盤設(shè)備的驅(qū)動中的所述分區(qū)的訪問端口;執(zhí)行模塊,用于根據(jù)所述寫操作指令,通過所述分區(qū)的訪問端口對所述分區(qū)進行操作,并向所述第二操作系統(tǒng)返回操作結(jié)果。優(yōu)選的,所述虛擬機管理模塊和所述第二操作模塊均安裝在所述第一操作模塊中。再一方面,本發(fā)明的實施例還提供一種計算機磁盤的訪問方法,包括5獲取所述第二操作系統(tǒng)的操作指令;在所述操作指令是對計算機磁盤設(shè)備的分區(qū)進行的寫操作指令時,將第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載;執(zhí)行所述操作指令,產(chǎn)生一操作結(jié)果,并將所述操作結(jié)果返回至所述第二操作系統(tǒng)。優(yōu)選的,在所述操作指令被執(zhí)行結(jié)束時,將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載。優(yōu)選的,所述將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載的步驟具體為通過鎖巻函數(shù)將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載。優(yōu)選的,所述將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載的步驟具體為通過調(diào)用邏輯驅(qū)動函數(shù)將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載。再一方面,本發(fā)明的實施例還提供一種計算機磁盤的訪問方法,包括獲取第二操作系統(tǒng)的操作指令;在所述操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述寫操作指令直接定向到所述磁盤設(shè)備的驅(qū)動中的所述分區(qū)的訪問端口;根據(jù)所述操作指令,通過所述分區(qū)的訪問端口對所述分區(qū)進行操作,并向所述第二操作系統(tǒng)返回操作結(jié)果。本發(fā)明的實施例具有以下有益效果上述技術(shù)方案通過在檢測到第二操作系統(tǒng)傳輸過來的操作指令是對底層硬件平臺中的磁盤的某一分區(qū)進行寫操作訪問時,將該第一操作系統(tǒng)中的該分區(qū)對應(yīng)的分區(qū)巻卸載,使該第一操作系統(tǒng)暫時失去對該磁盤分區(qū)的訪問能力,然后去執(zhí)行該第二操作系統(tǒng)的對底層磁盤的操作,并向第二操作系統(tǒng)返回操作結(jié)果,避免了第二操作系統(tǒng)和第一操作系統(tǒng)對該同一磁盤分區(qū)的訪問沖突,使第二操作系統(tǒng)能夠順利地完成對磁盤的訪問;并且第二操作系統(tǒng)對磁盤的寫操作結(jié)果,還可以在第一操作系統(tǒng)顯示出來,方便了系統(tǒng)之間的文件傳輸共享。圖1為現(xiàn)有的操作系統(tǒng)訪問磁盤的計算機虛擬架構(gòu)示意圖;圖2為本發(fā)明的實施例計算機架構(gòu)示意圖;圖3為圖2所示計算機的一具體架構(gòu)示意圖;圖4為圖3所示計算機的一具體架構(gòu)示意圖;圖5為圖3所示計算機的一具體架構(gòu)示意圖;圖6為圖2所示計算機的在一種架構(gòu)示意;圖7為本發(fā)明的另一種實施例計算機架構(gòu)示意圖;圖8為圖7所示計算機的一具體架構(gòu)示意圖;圖9為圖8所示計算機的一具體架構(gòu)示意圖10為本發(fā)明的實施例計算機磁盤的訪問方法的流程示意圖;圖11為本發(fā)明另一實施例計算機磁盤的訪問方法的流程示意圖。具體實施例方式為使本發(fā)明的實施例要解決的技術(shù)問題、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例進行詳細(xì)描述。本發(fā)明的實施例針對現(xiàn)有技術(shù)中虛擬機架構(gòu)中,當(dāng)GuestOS和HostOS在rawpartition方式下訪問同一磁盤分區(qū)時,產(chǎn)生沖突,導(dǎo)致GuestOS寫操作失敗的問題,提供一種計算機及其磁盤的訪問方法,避免了GuestOS和Host0S對同一磁盤分區(qū)的訪問沖突,使GuestOS能夠順利地完成對磁盤分區(qū)的訪問。如圖2所示,本發(fā)明的實施例計算機,包括硬件平臺,具有磁盤設(shè)備,如硬盤設(shè)備;第一操作模塊,位于所述硬件平臺之上,安裝有第一操作系統(tǒng),該第一操作系統(tǒng)可以為Host0S,如Windows系統(tǒng),WindowsXP系統(tǒng),VISTA系統(tǒng),Unix系統(tǒng)等;虛擬機管理模塊,安裝有虛擬機管理器V匪,如Xen中的hypervisor,Vmware,VirtualBox等第二操作模塊,安裝有第二操作系統(tǒng),所述第二操作系統(tǒng)安裝在所述虛擬機管理器上,該第二操作系統(tǒng)可以為GuestOS,該GuestOS也可以為如Windows系統(tǒng),WindowsXP系統(tǒng)、VISTA系統(tǒng)、Unix系統(tǒng)等;其中,所述第一操作模塊包括處理模塊,用于獲取所述第二操作系統(tǒng)的操作指令,在所述操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載;執(zhí)行所述寫操作指令,產(chǎn)生一操作結(jié)果,將所述操作結(jié)果返回至所述第二操作系統(tǒng)。如第二操作系統(tǒng)需要對硬盤的分區(qū)D盤進行訪問,該處理模塊檢測到該第二操作系統(tǒng)的操作指令是對該D盤的寫操作指令,則將第一操作系統(tǒng)中的該D盤分區(qū)對應(yīng)的分區(qū)巻卸載,在第一操作系統(tǒng)中,該D盤分區(qū)對應(yīng)的分區(qū)巻可能是D盤,也可能是E盤,但該第二操作系統(tǒng)所訪問的D盤的物理磁盤區(qū)域與該第一操作系統(tǒng)的分區(qū)巻(如D盤或者E盤)所指示的物理磁盤區(qū)域是同一塊區(qū)域。對于計算機的磁盤設(shè)備,尤其是硬盤設(shè)備,硬盤中可以有多個分區(qū)(partition),它是硬盤的一塊區(qū)域,通過分區(qū)表(partitiontable)可以獲得它的入口進行訪問,每一個磁盤分區(qū),反映在操作系統(tǒng)中,是一個分區(qū)巻(Volume)。在windows系統(tǒng)中,系統(tǒng)將一個分區(qū)驅(qū)動(partitiondriver)映射為一個分區(qū)巻(partitionvolume),分區(qū)巻是硬盤真實設(shè)備的一個映射。Windows通過這種文件系統(tǒng)結(jié)構(gòu)間接地訪問硬盤。該處理模塊在實際應(yīng)用中,可以為第一操作系統(tǒng)中應(yīng)用層的一個處理模塊,可以對第一操作系統(tǒng)中的文件系統(tǒng)進行訪問;該實施例通過第一操作系統(tǒng)中的處理模塊,在檢測到第二操作系統(tǒng)傳輸過來的操作指令是對底層硬件平臺中的磁盤的某一分區(qū)進行寫操作訪問時,就將該第一操作系統(tǒng)的該分區(qū)對應(yīng)的分區(qū)巻卸載,使該第一操作系統(tǒng)暫時失去對該磁盤分區(qū)的訪問能力,然后去執(zhí)行該第二操作系統(tǒng)的對底層磁盤分區(qū)的操作,并向第二操作系統(tǒng)返回操作結(jié)果,這樣就避免了第二操作系統(tǒng)和第一操作系統(tǒng)對該同一磁盤分區(qū)的訪問沖突,使第二操作系統(tǒng)能夠順利地完成對該磁盤分區(qū)的訪問;并且第二操作系統(tǒng)對磁盤分區(qū)的寫操作結(jié)果,還可以在第一操作系統(tǒng)顯示出來,方便了系統(tǒng)之間的文件傳輸共如圖3所示,為上述圖2所示計算機的一具體架構(gòu)示意圖,其中,上述圖2所示實施例中的處理模塊包括獲取模塊,用于通過所述虛擬機管理器獲取所述第二操作系統(tǒng)的操作指令;卸載模塊,用于在檢測到所述第二操作系統(tǒng)的操作指令是對所述磁盤設(shè)備的分區(qū)的寫操作指令時,將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載;執(zhí)行模塊,用于執(zhí)行所述寫操作指令,對所述磁盤設(shè)備的分區(qū)進行寫操作,產(chǎn)生一操作結(jié)果,并將所述操作結(jié)果通過所述虛擬機管理器返回至所述第二操作系統(tǒng);加載模塊,用于在所述寫操作指令被執(zhí)行結(jié)束時,將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載。該實施例中,通過卸載模塊在檢測到獲取模塊所獲取的操作指令是第二操作系統(tǒng)的寫操作指令時,將該第一操作系統(tǒng)的該磁盤分區(qū)對應(yīng)的分區(qū)巻卸載,使第一操作系統(tǒng)暫時失去對該磁盤分區(qū)的寫操作能力,在第二操作系統(tǒng)的寫操作指令執(zhí)行完畢時,再通過加載模塊將該磁盤分區(qū)的分區(qū)巻重新加載,使該第一操作系統(tǒng)恢復(fù)對該磁盤分區(qū)的操作訪問能力,這樣就避免了第一操作系統(tǒng)和第二操作系統(tǒng)對該磁盤的訪問沖突,保證了第二操作系統(tǒng)能夠順利完成對底層磁盤的訪問操作。上述卸載模塊在對第一操作系統(tǒng)中的該磁盤分區(qū)對應(yīng)的分區(qū)巻進行卸載時,可以采用如下方式進行如圖4所示,上述卸載模塊具體為第一卸載模塊,用于通過鎖巻函數(shù)將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載,該鎖巻函數(shù)如FSCTL_L0CK_V0LUME、FSCTL_DISM0UNT_V0LUME或I0CTL_ST0RAGE_EJECT_MEDIA等,也就是說,這些函數(shù)執(zhí)行成功后,就會將設(shè)定的目標(biāo)分區(qū)巻卸載。當(dāng)然也可以采用專門的卸載工具對該磁盤分區(qū)的分區(qū)巻設(shè)置為禁用或者對該磁盤分區(qū)巻進行卸載。上述加載模塊在對第一操作系統(tǒng)的該磁盤分區(qū)對應(yīng)的分區(qū)巻進行加載時,可以采用如下方式進行如圖5所示,上述加載模塊具體為第一加載模塊,用于通過調(diào)用邏輯驅(qū)動函數(shù)(GetLogicalDrivers函數(shù))將所述第一操作系統(tǒng)的所述分區(qū)巻重新加載。當(dāng)然也可以采用專門的加載工具對該磁盤分區(qū)的分區(qū)巻設(shè)置為啟用或者對該磁盤分區(qū)巻進行加載。如圖6所示,上述所有實施例中,虛擬機管理模塊和第二操作模塊均安裝在第一操作模塊中。也就是說,該第二操作系統(tǒng)運行虛擬機管理器上,虛擬機管理器運行在第一操作系統(tǒng)中。上述所有實施例中,第一操作系統(tǒng)和第二操作系統(tǒng)為描述方便而所用,并不用于限定是HostOS或者是Guest0S,上述實施例中,以第一操作系統(tǒng)為Host0S,第二操作系統(tǒng)為GuestOS為例進行描述;對于第一操作系統(tǒng)是GuestOS,第二操作系統(tǒng)為HostOS也同樣適用,對兩個操作系統(tǒng)均為GuestOS也同樣適用,即當(dāng)?shù)谝籊uestOS向該硬盤分區(qū)寫入數(shù)據(jù)時,需要在第二GuestOS先進行該磁盤分區(qū)的分區(qū)巻卸載操作,第一GuestOS完成分區(qū)訪問后,再在第二GuestOS中恢復(fù)該分區(qū)巻的加載。綜上,上述實施例通過在HostOS中卸載一個分區(qū)巻后,HostOS就不能通過其應(yīng)用層文件系統(tǒng)對這塊磁盤分區(qū)進行訪問了,這樣就避免了兩個操作系統(tǒng)同時訪問一個磁盤分區(qū)的沖突。在GuestOS完成數(shù)據(jù)寫入后,需要恢復(fù)HostOS對硬盤分區(qū)的訪問,將分區(qū)巻重新加載到HostOS的應(yīng)用層文件系統(tǒng)上去。且其中一個操作系統(tǒng)對磁盤的寫操作結(jié)果,還可以在另一個操作系統(tǒng)顯示出來,方便了操作系統(tǒng)之間的文件傳輸共享。如圖7所示,本發(fā)明的實施例還提供一種計算機,包括硬件平臺,具有磁盤設(shè)備;硬件驅(qū)動模塊,安裝有所述磁盤設(shè)備的驅(qū)動;第一操作模塊,位于所述硬件平臺之上,安裝有第一操作系統(tǒng);虛擬機管理模塊,安裝有虛擬機管理器;第二操作模塊,安裝有第二操作系統(tǒng),所述第二操作系統(tǒng)安裝在所述虛擬機管理器上;所述虛擬機管理模塊包括處理模塊,用于獲取所述第二操作系統(tǒng)的操作指令,在所述操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述寫操作指令直接定向到所述磁盤設(shè)備的驅(qū)動中的所述分區(qū)的訪問端口,并根據(jù)所述寫操作指令,通過所述分區(qū)的訪問端口對所述分區(qū)進行操作,并向所述第二操作系統(tǒng)返回操作結(jié)果。而現(xiàn)有的架構(gòu)中,以第二操作系統(tǒng)為GuestOS為例,第二操作系統(tǒng)對底層硬件的操作指令,通過虛擬機管理器傳輸給第一操作系統(tǒng)的應(yīng)用層,再傳輸?shù)降讓佑布脚_中硬件設(shè)備的內(nèi)核驅(qū)動層,再由該內(nèi)核驅(qū)動層根據(jù)該操作指令對相應(yīng)的硬件設(shè)備進行操作,獲得操作結(jié)果,并將該操作結(jié)果經(jīng)由第一操作系統(tǒng)的應(yīng)用層和虛擬機管理器傳輸給第二操作系統(tǒng)。而本發(fā)明的上述實施例中,在虛擬機管理器中,通過修改虛擬機管理器對第二操作系統(tǒng)向磁盤(尤其是硬盤)的寫操作的方法,虛擬機管理器在獲得第二操作系統(tǒng)的操作指令后,調(diào)用硬件驅(qū)動模塊中的磁盤設(shè)備的驅(qū)動,直接訪問磁盤設(shè)備的驅(qū)動(如內(nèi)核驅(qū)動層)的硬盤分區(qū)的訪問端口,保證GuestOS的對硬盤分區(qū)的操作能順利完成,由于該實施例中,第二操作系統(tǒng)的指令沒有經(jīng)過第一操作系統(tǒng)的應(yīng)用層文件系統(tǒng),因此,與第一操作系統(tǒng)對該磁盤分區(qū)的訪問也不會產(chǎn)生沖突。如圖8所示,在上述圖7所示實施例的基礎(chǔ)上,其中,處理模塊可具體包括獲取模塊,用于獲取所述第二操作系統(tǒng)的操作指令;定向模塊,用于檢測到所述操作指令是對所述磁盤設(shè)備的分區(qū)的寫操作指令時,將所述寫操作指令直接定向到所述磁盤設(shè)備的驅(qū)動中的所述磁盤設(shè)備的分區(qū)的訪問端□;執(zhí)行模塊,用于根據(jù)所述寫操作指令通過所述磁盤設(shè)備的分區(qū)的訪問端口對所述磁盤設(shè)備的分區(qū)進行操作,并向所述第二操作系統(tǒng)返回操作結(jié)果。該實施例中,定向模塊在檢測到第二操作系統(tǒng)的指令是對底層磁盤設(shè)備的分區(qū)的9寫操作指令時,直接調(diào)用該磁盤設(shè)備的內(nèi)核驅(qū)動,獲得該磁盤設(shè)備的訪問端口,執(zhí)行模塊根據(jù)該寫操作指令和該磁盤設(shè)備的訪問端口,對該磁盤設(shè)備的分區(qū)進行寫操作,并返回寫操作結(jié)果給第二操作系統(tǒng),這樣,使第二操作系統(tǒng)同樣能夠順利完成對底層磁盤分區(qū)的寫操作訪問,由于該實施例中,第二操作系統(tǒng)的指令沒有經(jīng)過第一操作系統(tǒng)的應(yīng)用層文件系統(tǒng),因此,與第一操作系統(tǒng)對該磁盤分區(qū)的訪問也不會產(chǎn)生沖突。如圖9所示,上述所有實施例中,虛擬機管理模塊和第二操作模塊均安裝在第一操作模塊中。也就是說,該第二操作系統(tǒng)運行虛擬機管理器上,虛擬機管理器運行在第一操作系統(tǒng)中。上述圖8和圖9所示實施例中,第一操作系統(tǒng)和第二操作系統(tǒng)為描述方面而所用,并不用于限定是HostOS或者是Guest0S,上述實施例中,以第一操作系統(tǒng)為Host0S,第二操作系統(tǒng)為Guest0S為例進行描述;在GuestOS對底層磁盤分區(qū)進行訪問時,只需要在該GuestOS運行的虛擬機管理器中,對該GuestOS的操作指令,直接定向給底層硬件設(shè)備的內(nèi)核驅(qū)動,找到該磁盤的訪問端口,直接對該磁盤分區(qū)進行訪問,而不用經(jīng)過另一個操作系統(tǒng)如HostOS的應(yīng)用層,這樣避免了第一操作系統(tǒng)和第二操作系統(tǒng)同時對磁盤進行訪問時,產(chǎn)生的沖突,保證了第二操作系統(tǒng)如GuestOS能夠順利完成對磁盤分區(qū)的訪問。如圖10所示,本發(fā)明的實施例還提供一種計算機磁盤的訪問方法,包括步驟S101,獲取第二操作系統(tǒng)的操作指令;步驟S102,在所述操作指令是對計算機磁盤設(shè)備的分區(qū)進行的寫操作指令時,將第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載;步驟S103,執(zhí)行所述寫操作指令,產(chǎn)生一操作結(jié)果,并將所述操作結(jié)果返回至所述第二操作系統(tǒng)。對于計算機的磁盤設(shè)備,尤其是硬盤設(shè)備,硬盤中可以有多個分區(qū)(partition),它是硬盤的一塊區(qū)域,通過分區(qū)表(partitiontable)可以獲得它的入口進行訪問,每一個磁盤分區(qū),反映在操作系統(tǒng)中,是一個分區(qū)巻(Volume)。在windows系統(tǒng)中,系統(tǒng)將一個分區(qū)驅(qū)動(partitiondriver)映射為一個分區(qū)巻(partitionvolume),分區(qū)巻是硬盤真實設(shè)備的一個映射。Windows通過這種文件系統(tǒng)結(jié)構(gòu)間接地訪問硬盤。特別的,上述第二操作系統(tǒng)的操作指令為對計算機磁盤的寫操作指令。在具體實用中,步驟S102可以通過如下方式實現(xiàn)通過鎖巻函數(shù)將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載,該鎖巻函數(shù)如FSCTL_L0CK_V0LUME、FSCTL_DISM0UNT_V0LUME或I0CTL_ST0RAGE_EJECT_MEDIA等,也就是說,向目標(biāo)分區(qū)巻發(fā)送FSCTLJDCKJOLUME、FSCTL_DISM0UNT_V0LUME、I0CTL_ST0RAGE_EJECT_MEDIA這些控制碼,返回成功后,即可將該指定的目標(biāo)分區(qū)巻卸載。當(dāng)然也可以采用專門的卸載工具對該磁盤分區(qū)的分區(qū)巻設(shè)置為禁用或者對該磁盤分區(qū)巻進行卸載。上述方法還包括;步驟S104,在所述寫操作指令被執(zhí)行結(jié)束時,將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載該步驟S104可以通過如下方式實現(xiàn)通過調(diào)用邏輯驅(qū)動函數(shù)(GetLogicalDrivers函數(shù))將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載。當(dāng)然也可以采用專門的加載工具對該磁盤分區(qū)的分區(qū)巻設(shè)置為啟用或者對該磁盤分區(qū)巻進行加載。該方法的實施例通過在第一操作系統(tǒng)中卸載一個分區(qū)巻后,該第一操作系統(tǒng)就不能通過應(yīng)用層文件系統(tǒng)對這塊磁盤分區(qū)進行訪問了,這樣就避免了兩個操作系統(tǒng)同時對一個磁盤分區(qū)的訪問沖突。在第二操作系統(tǒng)完成數(shù)據(jù)寫入后,需要恢復(fù)第一操作系統(tǒng)對硬盤的訪問,將分區(qū)巻重新加載到第一操作系統(tǒng)的應(yīng)用層文件系統(tǒng)上去。且其中一個操作系統(tǒng)對磁盤的寫操作結(jié)果,還可以在另一個操作系統(tǒng)顯示出來,方便了操作系統(tǒng)之間的文件傳輸共享。如圖11所示,本發(fā)明的實施例還提供一種計算機磁盤的訪問方法,包括步驟S111,獲取第二操作系統(tǒng)的操作指令;步驟S112,在所述操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述寫操作指令直接定向到所述磁盤設(shè)備的驅(qū)動中的所述分區(qū)的訪問端口;步驟S113,根據(jù)所述寫操作指令,通過所述磁盤設(shè)備的分區(qū)的訪問端口對所述磁盤設(shè)備的分區(qū)進行操作,并向所述第二操作系統(tǒng)返回操作結(jié)果。特別的,上述第二操作系統(tǒng)的操作指令為對計算機磁盤的寫操作指令。該方法實施例中,在檢測到第二操作系統(tǒng)的指令是對底層磁盤設(shè)備的分區(qū)的寫操作指令時,直接調(diào)用該磁盤設(shè)備的內(nèi)核驅(qū)動,獲得該磁盤設(shè)備的訪問端口,根據(jù)該寫操作指令和該磁盤設(shè)備的訪問端口,對該磁盤設(shè)備的分區(qū)進行寫操作,并返回寫操作結(jié)果給第二操作系統(tǒng);這樣,使第二操作系統(tǒng)能夠順利完成對底層磁盤分區(qū)的訪問,由于該實施例中,第二操作系統(tǒng)的指令沒有經(jīng)過第一操作系統(tǒng)的應(yīng)用層文件系統(tǒng),因此,與第一操作系統(tǒng)對該磁盤分區(qū)的訪問也不會產(chǎn)生沖突。以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本
技術(shù)領(lǐng)域
的普通技術(shù)人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。1權(quán)利要求一種計算機,其特征在于,包括硬件平臺,具有磁盤設(shè)備;第一操作模塊,位于所述硬件平臺之上,安裝有第一操作系統(tǒng);虛擬機管理模塊,安裝有虛擬機管理器;第二操作模塊,安裝有第二操作系統(tǒng),所述第二操作系統(tǒng)安裝在所述虛擬機管理器上;其中,所述第一操作模塊包括處理模塊,用于獲取所述第二操作系統(tǒng)的操作指令,在所述操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)卷卸載;執(zhí)行所述寫操作指令,產(chǎn)生一操作結(jié)果,將所述操作結(jié)果返回至所述第二操作系統(tǒng)。2.根據(jù)權(quán)利要求1所述的計算機,其特征在于,所述處理模塊包括獲取模塊,用于通過所述虛擬機管理器獲取所述第二操作系統(tǒng)的操作指令;卸載模塊,用于在檢測到所述第二操作系統(tǒng)的操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載;執(zhí)行模塊,用于執(zhí)行所述寫操作指令,對所述磁盤設(shè)備的分區(qū)進行寫操作,產(chǎn)生一操作結(jié)果,并將所述操作結(jié)果通過所述虛擬機管理器返回至所述第二操作系統(tǒng);加載模塊,用于在所述寫操作指令被執(zhí)行結(jié)束時,將所述第一操作系統(tǒng)中所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載。3.根據(jù)權(quán)利要求2所述的計算機,其特征在于,所述卸載模塊具體為第一卸載模塊,用于通過鎖巻函數(shù)將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載。4.根據(jù)權(quán)利要求2所述的計算機,其特征在于,所述加載模塊具體為第一加載模塊,用于通過調(diào)用邏輯驅(qū)動函數(shù)將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載。5.根據(jù)權(quán)利要求1所述的計算機,其特征在于,所述虛擬機管理模塊和所述第二操作模塊均安裝在所述第一操作模塊中。6.—種計算機,包括硬件平臺,具有磁盤設(shè)備;硬件驅(qū)動模塊,安裝有所述磁盤設(shè)備的驅(qū)動;第一操作模塊,位于所述硬件平臺之上,安裝有第一操作系統(tǒng);虛擬機管理模塊,安裝有虛擬機管理器;第二操作模塊,安裝有第二操作系統(tǒng),所述第二操作系統(tǒng)安裝在所述虛擬機管理器上;其特征在于,所述虛擬機管理模塊包括處理模塊,用于獲取所述第二操作系統(tǒng)的操作指令,在所述操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述寫操作指令定向到所述磁盤設(shè)備的驅(qū)動中的所述分區(qū)的訪問端口,并根據(jù)所述寫操作指令通過所述分區(qū)的訪問端口對所述分區(qū)進行操作,并向所述第二操作系統(tǒng)返回操作結(jié)果。7.根據(jù)權(quán)利要求6所述的計算機,其特征在于,所述處理模塊包括獲取模塊,用于獲取所述第二操作系統(tǒng)的操作指令;定向模塊,用于檢測到所述操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述寫操作指令直接定向到所述磁盤設(shè)備的驅(qū)動中的所述分區(qū)的訪問端口;執(zhí)行模塊,用于根據(jù)所述寫操作指令,通過所述分區(qū)的訪問端口對所述分區(qū)進行操作,并向所述第二操作系統(tǒng)返回操作結(jié)果。8.根據(jù)權(quán)利要求6或7所述的計算機,其特征在于,所述虛擬機管理模塊和所述第二操作模塊均安裝在所述第一操作模塊中。9.一種計算機磁盤的訪問方法,其特征在于,包括獲取所述第二操作系統(tǒng)的操作指令;在所述操作指令是對計算機磁盤設(shè)備的分區(qū)進行的寫操作指令時,將第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載;執(zhí)行所述操作指令,產(chǎn)生一操作結(jié)果,并將所述操作結(jié)果返回至所述第二操作系統(tǒng)。10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述將所述操作結(jié)果返回至所述第二操作系統(tǒng)之后還包括在所述操作指令被執(zhí)行結(jié)束時,將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載。11.根據(jù)權(quán)利要求9或10所述的方法,其特征在于,所述將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載的步驟具體為通過鎖巻函數(shù)將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的分區(qū)巻卸載。12.根據(jù)權(quán)利要求IO所述的方法,其特征在于,所述將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載的步驟具體為通過調(diào)用邏輯驅(qū)動函數(shù)將所述第一操作系統(tǒng)中的所述分區(qū)對應(yīng)的所述分區(qū)巻重新加載。13.—種計算機磁盤的訪問方法,其特征在于,包括獲取第二操作系統(tǒng)的操作指令;在所述操作指令是對所述磁盤設(shè)備的分區(qū)進行的寫操作指令時,將所述操作指令直接定向到所述磁盤設(shè)備的驅(qū)動中的所述分區(qū)的訪問端口;根據(jù)所述操作指令,通過所述分區(qū)的訪問端口對所述分區(qū)進行操作,并向所述第二操作系統(tǒng)返回操作結(jié)果。全文摘要本發(fā)明提供一種計算機及其磁盤的訪問方法,其中計算機包括硬件平臺,具有磁盤設(shè)備;第一操作模塊,位于所述硬件平臺之上,安裝有第一操作系統(tǒng);虛擬機管理模塊,安裝有虛擬機管理器;第二操作模塊,安裝有第二操作系統(tǒng),所述第二操作系統(tǒng)安裝在所述虛擬機管理器上;所述第一操作模塊包括處理模塊,用于獲取所述第二操作系統(tǒng)的操作指令,在所述操作指令是對所述磁盤設(shè)備的分區(qū)的寫操作指令時,將所述第一操作系統(tǒng)的所述分區(qū)對應(yīng)的分區(qū)卷卸載;執(zhí)行所述寫操作指令,產(chǎn)生一操作結(jié)果,將所述操作結(jié)果返回至所述第二操作系統(tǒng)。本發(fā)明避免了兩個操作系統(tǒng)對同一磁盤分區(qū)訪問的沖突。文檔編號G06F9/455GK101751282SQ200810239249公開日2010年6月23日申請日期2008年12月5日優(yōu)先權(quán)日2008年12月5日發(fā)明者劉春梅,林洋,陸見微申請人:聯(lián)想(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1