本文詳細介紹了如何在Xen HVM 上安裝和運行 Windows 7,使其作為 一個 Xen 虛擬客戶機啟動並執行詳細步驟。
關鍵字:Xen HVM 虛擬機器 Windows 7
Xen 虛擬 Windows 7 的必備條件
本章假設主系統啟動並執行核心可以跑Xen並且安裝了標準的Xen工具(如xm),另外,硬體虛擬化要求主系統的硬體支援Intel-VT 或 AMD-V 的虛擬化,為了驗證這個可以在主系統中運行一下命令
對於 Intel CPU: grep vmx /proc/cpuinfo 對於 AMD CPU: grep svm /proc/cpuinfo
如果以上命令執行後沒有任何輸出,那麼說明你的硬體不支援這些特性,跑不起來Xen HVM客戶機。 Windows 7 的安裝方式
要在Xen HVM中安裝window 7,首先需要windows 7的安裝盤,或者從Microsoft的官方網站上下載ISO鏡像也可以。然後就通過光碟片或是鏡像安裝即可。 如要通過光碟片製作一個鏡像,請把光碟片放入光碟機,如果運行了自動載入請先卸載,然後執行以下命令(比如光碟機是/dev/cdrom)
dd if=/dev/cdrom of=windows7.iso 為Windows 7 準備儲存空間
在客戶機安裝Windows 7 作業系統當然需要為它準備空間了。這個空間可以是一個物理的磁碟機,也可以是一個磁碟鏡像檔案。如果是一個磁碟機,請注意它的裝置名稱。通常是 /dev/sd or /dev/hd,後面跟一個字母(如/dev/sdc or /dev/hdb) 產生一個磁碟鏡像可用如下dd命令列工具:
dd if=/dev/zero of=xenwin7.img bs=1024k seek=10000 count=0
這條命令就建立了一個10Gb的鏡像檔案,名為xenwin7.img。 建立Xen Windows 7的設定檔
下一步就是建立Windows 7作為Xen客戶機所必須的設定檔,下面就是一個Windows 7 Xen客戶機的最小配置的例子:
import os, re
arch = os.uname()[4]
if re.search('64', arch):
arch_libdir = 'lib64'
else:
arch_libdir='lib'
kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
memory = 1024
# Should be at least 2KB per MB of domain memory, plus a few MB per vcpu.
shadow_memory = 8
name = "xenwin7"
vif = [ 'type=ioemu, bridge=xenbr0' ]
acpi = 1
apic = 1
disk = [ 'file:/home/xen/xenwin7.img,hda,w', 'file:/home/xen/windows7.iso,hdc:cdrom,r' ]
device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'
#-----------------------------------------------------------------------------
# boot on floppy (a), hard disk (c) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
boot="dc"
sdl=0
vnc=1
vncconsole=1
vncpasswd=''
serial='pty'
usbdevice='tablet'
上面的例子是用Windows 7的ISO鏡像檔案安裝,如果是用物理磁碟來安裝,磁碟指示符應該改成下面這樣(用物理裝置名稱代替/dev/sdb):
disk = [ 'phy:/dev/sdb,hda,w', 'file:/home/xen/windows7.iso,hdc:cdrom,r' ]
所以,如果是用光碟片安裝,命令可以改成如下(/dev/cdrom是物理光碟機的路徑):
disk = [ 'phy:/dev/sdb,hda,w', 'phy:/dev/cdrom,hdc:cdrom.r' ]
上面的命令把主系統中物理上的磁碟驅動/dev/sdb映射到客戶機的/dev/had,/dev/cdrom映射到客戶機的CD/DVD 裝置(請注意,主系統中的CD/DVD裝置在不同linux的發行版本中是不同的)。
如果是用磁碟鏡像檔案來安裝,命令列應換成:
disk = [ 'file:/home/xen/xenwin2008.img,hda,w', 'phy:/dev/cdrom,hdc:cdrom,r' ]
上面例子中展示的一系列配置的設定是為了給Windows 7客戶機啟動一個圖形控制台。當客戶機啟動並執行時候,Xen可以提供VNC 或者 SDL的圖形控制台。不如,下面的命令是選擇VNC的控制台:
vnc = 1
sdl=0
而這下面的命令是選擇 SDL控制台:
vnc = 0
sdl = 1
VNC 和 SDL都可一為Windows 7客戶機提供良好的映像顯示,並且VNC比SDL有更多的優點。首先,VNC在遠端存取時比SDL更靈活,無論是在本網還是通過英特網,或是在不同的 系統上,都可以串連上客戶機系統。其二,當你關掉VNC viewer視窗時,客戶機仍然在運行,你下次再串連的時候還是可以回到你上次離開時的狀態。然而,關掉SDL視窗的時候,客戶機會立刻關掉並有可能丟失 資料。
在預設情況下,當客戶機啟動的時候,Xen不會自動啟動VNC控制台。如果想要自動啟動,那麼就要設定如下命令:
vncconsole=1
一些其他的配置選項也可以被設定,但上面的設定是運行一個Windows 7 客戶機的最小配置。當一個設定檔寫完之後可以把它儲存為xenwin7.cfg。
啟動Xen的Windows 7 HVM客戶機
所有的配置完成之後,就可以啟動Xen客戶機了:
xm create xenwin7.cfg
Using config file "./xenwin7.cfg".
Started domain xenwin7
幾秒鐘之後,VNC 或是SDL(取決於你的配置)控制台會出現,並且會啟動Windows 7 的安裝程式,下圖就是在VNC中Xen HVM 客戶機Windows 7的一個執行個體: