解析:如何將VMware虛擬磁盤鏡像轉(zhuǎn)換至Virtual Server
取決于環(huán)境,遷移虛擬機可能變成一件棘手的工作。Platespin的PowerConvert是大多數(shù)遷移里有用的工具,其價格也相對較低。當(dāng)你需要轉(zhuǎn)換虛擬磁盤,但沒有PowerConvert的預(yù)算時會發(fā)生什么樣的情況?
如果你需要轉(zhuǎn)換微軟(.vhd)虛擬磁盤到VMware(.vmdk)虛擬磁盤,可以使用VMware的Virtual Machine Importer,這是一個可免費下載的工具。為了將VMware的虛擬機轉(zhuǎn)換到Virtual Server或Virtual PC,僅有的來自微軟的開源產(chǎn)品是Virtual Server Migration Toolkit (VSMT)。
不過由于VSMT有大量煩瑣的要求,包括Microsoft Automated Deployment Services(ADS),許多管理員更喜歡使用另一種方法。
在本文中,我們將描述這種將VMware虛擬機遷移到Virtual Server的方法。***部分將講述如何為遷移準(zhǔn)備源虛擬機,第二部分將討論如何準(zhǔn)備FTP服務(wù)器、克隆源虛擬機以及準(zhǔn)備目標(biāo)虛擬機。
下面是需要具備的:
Symantec Ghost磁盤鏡像軟件。對于沒有Ghost的管理員,本文說明使用開源Ghost for UNIX(G4U)創(chuàng)建和部署鏡像。我分別使用Symantec Ghost和G4U測試了這個過程。使用G4U,部署鏡像到新Virtual Server虛擬機比使用Symantec Ghost快兩倍。
上傳與存儲克隆鏡像的FTP Server。
遷移Windows Setup CD或為虛擬機操作系統(tǒng)安裝的***服務(wù)包。
prepvm.vbs腳本,用于禁止服務(wù)以及可能阻止已遷移的虛擬機成功啟動的驅(qū)動。
將VMware虛擬機作為Virtual Server虛擬機部署相對比較容易,只要移除不必要的驅(qū)動和服務(wù),并用現(xiàn)有的硬件抽象層(HAL)代替。
確保目標(biāo)硬盤配置與源虛擬機磁盤配置相同,以便在克隆虛擬機之前不需要修改boot.ini文件。
現(xiàn)在我們來看看遷移過程。
準(zhǔn)備源虛擬機
遷移過程最重要的一部分就是準(zhǔn)備源虛擬機。當(dāng)部署到Virtual Server時,新虛擬機不會在啟動時出現(xiàn)藍屏。
為了保證遷移成功,將使用我的prepvm.vbs腳本以禁用任何可能遺留的VMware驅(qū)動,避免Windows啟動時阻礙虛擬機。下面是這個腳本:
'prepvm.vbs
'Removes VMware-specific drivers from a system
On Error Resume Next
' Instantiate Shell Object
Set objShell = CreateObject("WScript.Shell")
' Disable VMware Tools Service
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicesVMToolsStart", _4, "REG_DWORD"
' Disable VMware vmx_svga video driver
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicesvmx_svgaStart", _4, "REG_DWORD"
' Disable VMware vmmouse driver
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicesvmmouseStart", _4, "REG_DWORD"
' Disable VMware vmscsi driver
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicesvmscsiStart", _4, "REG_DWORD"
' Disable VMware PCnet driver
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicesPCnetStart", _4, "REG_DWORD"
' Disable VMware Buslogic driver
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicesuslogicStart", _4, "REG_DWORD"
' Disable SCSI Miniport drivers
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicessymc810Start", _4, "REG_DWORD"
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicessymc8xxStart", _4, "REG_DWORD"
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicescpqarrayStart", _4, "REG_DWORD"
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicespcntn4mStart", _4, "REG_DWORD"
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicescpqnf3Start", _4, "REG_DWORD"
objShell.RegWrite "HKLMSYSTEMCurrentControlSetServicesMRaidNTStart", _4, "REG_DWORD"
' Restart Computer
strComputer = "."
'Prompt user of impending reboot
WScript.Echo("The system is prepared for imaging and will now shutdown.")
WScript.Sleep(3)
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Shutdown)}!\" & _
strComputer & " ootcimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
objOperatingSystem.Shutdown()
Next
照以下步驟準(zhǔn)備源虛擬機
1.創(chuàng)建虛擬機的備份副本,并在余下步驟使用這個副本。為克隆準(zhǔn)備副本,確保在克隆期間發(fā)生錯誤時,源虛擬機仍然可用。
2.從源虛擬機的副本啟動并登錄。復(fù)制prepvm.vbs腳本到虛擬機,這時候不要運行這個腳本。
3.使用添加/刪除程序卸載VMware Tools。出現(xiàn)對話框時重啟虛擬機。
4.重新登錄虛擬機。如果在登錄后顯示Found New Hardware Wizard,取消向?qū)АH绻崾局匦聠?,點擊"NO"。
#p#
5.檢查系統(tǒng)的服務(wù)器包級別。如果沒有安裝服務(wù)包,那么需要用到OS Setup CD。如果安裝了,需要訪問服務(wù)包設(shè)置文件。
注意,你復(fù)制的文件與OS/Service Pack版本想匹配非常重要。復(fù)制舊一點的版本可能使用系統(tǒng)不能啟動。
6.打開命令提示符窗口。
7.恢復(fù)到默認HAL,運行以下命令(假定Service Pack或Setup CD-ROM有驅(qū)動器號D):
expand d:i386hal.dl_ %windir%system32hal.dll
注意,如果你從%windir%system32servicepackfiles文件夾復(fù)制文件(假定在服務(wù)包安裝期間,在本地復(fù)制SP備份文件到系統(tǒng)的硬盤)的話,你只需要復(fù)制servicepackfilesi386hal.dll文件到%windir%system32文件夾。
8.將目前的ntoskrnl更換成默認值,使用下面的命令:expand d:i386 toskrnl.ex_ %windir%system32 toskrnl.exe。
注意,如果你從%windir%system32servicepackfiles文件夾復(fù)制文件,只需要復(fù)制servicepackfilesi386 toskrnl.exe文件到%windir%system32文件夾。
9.現(xiàn)在運行prepvm.vbs腳本。虛擬機現(xiàn)在將關(guān)閉并可以進行鏡像了。
準(zhǔn)備好源虛擬機后,現(xiàn)在就能開始鏡像過程了。
在上一部分中,我們討論了為什么管理員有時候需要另一種方法從VMware遷移虛擬機到Virtual Server。有時,一些工具不能滿足企業(yè)的需求。我們也討論了如何為遷移準(zhǔn)備源虛擬機。
在第二部分中,TechTarget中國的特約作者Chris Wolf將解釋如何準(zhǔn)備FTP服務(wù)器、克隆源虛擬機,然后準(zhǔn)備目標(biāo)虛擬機以接受來自源虛擬機的信息。
準(zhǔn)備FTP服務(wù)器
如果你打算使用G4U為虛擬機創(chuàng)建鏡像,將需要一個可用的FTP服務(wù)器。你也需要在FTP服務(wù)器上創(chuàng)建一個帳號,以便有權(quán)限創(chuàng)建和寫入文件。
如果你尋找快速的FTP應(yīng)用,不妨考慮Cerberus FTP。這款軟件對個人免費開放,商業(yè)版本需要59.99美元。有了FTP服務(wù)器設(shè)置和叫做安裝的帳號,就可以對源虛擬機創(chuàng)建鏡像了。
克隆源虛擬機
使用以下步驟克隆源虛擬機硬盤鏡像:
1.下載G4U CD-ROM ISO鏡像并保存在源虛擬機主機系統(tǒng)上。
2.使用所下載的g4u-2.2.iso文件配置虛擬機的虛擬CD-ROM。
3.在虛擬機開始啟動時按下ESC鍵。將出現(xiàn)虛擬機的啟動菜單,然后選擇CD-ROM驅(qū)動。
4.默認下,虛擬機將通過DHCP試圖獲取一個IP地址。如果沒有可用的DHCP服務(wù)器,通過以下步驟為虛擬機設(shè)置一個靜態(tài)IP地址:
運行ifconfig -a命令給網(wǎng)絡(luò)接口命名。
現(xiàn)在運行ifconfig netmask 命令設(shè)置IP地址。例如,為了在接口pcn0上設(shè)置IP地址,你將運行ifconfig pcn0 192.168.0.10 netmask 255.255.255.0。
5.現(xiàn)在開始創(chuàng)建鏡像。運行uploaddisk [disk]命令。例如,在服務(wù)器192.168.0.5上的鏡像文件夾里創(chuàng)建叫做w2ksrv.gz的鏡像,你將運行uploaddisk 192.168.0.5 images/w2ksrv.gz。
注意,如果虛擬機使用的是虛擬SCSI磁盤,你將需要在命令句法里指定克隆哪個磁盤。通過使用G4U運行磁盤命令能看見所有的磁盤。因此如果上面的例子使用的是虛擬SCSI磁盤而不是IDE磁盤的話,該運行這個命令:uploaddisk 192.168.0.5 images/w2ksrv.gz sd0。
6.出現(xiàn)提示時,輸入密碼以在FTP服務(wù)器上安裝帳戶。不久將開始上傳鏡像。
7.等待上傳。完成后關(guān)閉源虛擬機。
現(xiàn)在已經(jīng)準(zhǔn)備好將鏡像部署到目標(biāo)虛擬機。
準(zhǔn)備目標(biāo)虛擬機
按照以下步驟進行:
1.在Virtual Server(或Virtual PC)上創(chuàng)建一臺與源虛擬機硬件配置相同的虛擬機。注意,目標(biāo)系統(tǒng)上的虛擬硬盤必須等于或大于源虛擬機的虛擬硬盤。
2.使用downloaded g4u-2.2鏡像文件配置虛擬機的虛擬CD-ROM。
3.默認下,虛擬機將通過DHCP試圖獲取一個IP地址。如果沒有可用的DHCP服務(wù)器,通過以下步驟為虛擬機設(shè)置一個靜態(tài)IP地址:
運行ifconfig -a命令給網(wǎng)絡(luò)接口命名。
現(xiàn)在運行ifconfig netmask 命令設(shè)置IP地址。例如,為了在接口pcn0上設(shè)置IP地址,你將運行ifconfig pcn0 192.168.0.10 netmask 255.255.255.0。
4.使用以下命令句法下載虛擬機:slurpdisk [disk]。例如,為了下載服務(wù)器192.168.0.5鏡像文件夾里叫做w2ksrv.gz的鏡像,你應(yīng)該運行slurpdisk 192.168.0.5 images/w2ksrv.gz。
5.出現(xiàn)提示時,輸入密碼安裝FTP帳號。注意,如果下載出現(xiàn)錯誤,可能需要使用slurpdisk命令句法(例如:slurpdisk 192.168.0.5 images/w2ksrv.gz wd0)指定目標(biāo)磁盤。運行磁盤命令查看所有目標(biāo)磁盤。
6.下載完成后重啟虛擬機。
7.重啟系統(tǒng)后登錄虛擬機。你應(yīng)該能看見檢測到的新硬件,并且出現(xiàn)重啟的提示,點擊"Yes"。
8.系統(tǒng)重啟后登錄,然后安裝虛擬機附件。這將在新虛擬機上安裝與Virtual Server(或Virtual PC)兼容的驅(qū)動。
我已經(jīng)使用過本文描述的步驟轉(zhuǎn)換Windows 2000、Windows XP和Windows Server 2003上的VMware虛擬機到Virtual Server 2005 R2。
當(dāng)克隆系統(tǒng)在虛擬服務(wù)器上不能啟動時,常見的問題如下:
與VMware相關(guān)的驅(qū)動在源系統(tǒng)未克隆之前沒有安裝。這能通過登錄到Recovery Console并禁用與VMware相關(guān)的驅(qū)動來糾正。
復(fù)制了不正確的hal.dll和ntoskrnl.exe文件到%windir%system32文件夾。這能通過登錄到Recovery Console并復(fù)制正確的文件版本到%windir%system32文件夾來糾正。
源系統(tǒng)的Boot.ini文件指在新Virtual Server磁盤上的錯誤操作系統(tǒng)位置。這能通過運行Recovery Console里的bootcfg /rebuild修復(fù)。
作為***的手段,許多人都重新在克隆虛擬機上重新運行Windows設(shè)置,并選擇修復(fù)現(xiàn)有的操作系統(tǒng)安裝。盡管這能讓克隆虛擬機重新操作,不過這需要花費很長時間,還可能需要重新安裝先前安裝在虛擬機上的所有應(yīng)用。
解決Windows設(shè)置問題的更多信息請參加Windows Server 2003 - Troubleshooting Startup。
當(dāng)我***次開始執(zhí)行VMware到Virtual Server的遷移時,這個過程通常非常耗時。在遷移過程中,為克隆準(zhǔn)備源虛擬機要不到15分鐘,其余時間都花在克隆軟件本身了。
任何鏡像方法都能用于從源虛擬機克隆虛擬磁盤到目標(biāo)虛擬機,不過遷移過程的真正關(guān)鍵在于準(zhǔn)備源虛擬機。如果準(zhǔn)備得好,虛擬機遷移過程就很簡單。
【編輯推薦】