Xen的半虛擬化(PV)虛擬機器的安裝是比較麻煩的,因為不能像平時安裝系統一樣,使用GUI來安裝(我不瞭解怎樣用命令列安裝一個linux系統。唉……)。所以得用一些其他的辦法。這裡記錄一下我使用的兩種方法:rsync和xen-tools。
使用xen-tools來安裝DomU,好處是方便省事不折騰。推薦使用這種辦法。
apt-get安裝依賴包:
debootstraplibtext-template-perlconfig-inifiles-perl
安裝xen-tools。因為我的xen是自己安裝的,用不了apt-get裡的老版本tools,所以我用源碼安裝。下載源碼後直接make install即可。(指令碼嘛)
使用xen-create-image安裝DomU命令列:
xen-create-image --hostname=debian-pv # 虛擬機器名字 --lvm=vg0 # lvm卷組 --memory=512M --image-dev=/dev/vg0/PV # lvm主要磁碟分割 --swap-dev=/dev/vg0/swap # swap分區 --dist=squeeze # 新鮮的大便系統 --ip=10.0.0.1 --nameserver=***** # 網路設定(nat方式) --passwd --keep --verbose # 其他的選項
耐心地等待下載完成。對應的虛擬機器組態檔(debian-pv.cfg)會產生在/etc/xen/下。可以烤到方便的位置。然後就可以xm create 亨受安裝好的虛擬機器了!
note:
不要使用xl(XenLight)啟動虛擬機器,因為xl不會載入/etc/xen/scripts裡的指令碼,網路設定會有問題。
xen-create-image壞處是只能安裝debian(和centos),版本有限定,而且網速要快。DomU是全新的系統,需要安裝各種軟體。
其實還有別的安裝方式:比如可以下載好壓縮包然後本地安裝。或者類似下面的rsync的安裝:把 --dist=squeeze換成--install-method=copy --install-source=/。當然,沒有測試。
- 使用rsync或者cp同步Dom0檔案,手動設定config
這種辦法可以複製一個和Dom0一模一樣的DomU,因為核心版本/安裝的軟體都是一樣的,所以非常好用,當然是配置好以後。比如我在Dom0裡配好了一個apache伺服器,rsync同步過去之後啟動domu,domu上會啟用一個一模一樣的web伺服器!
1. 拷貝檔案。
首先掛載虛擬機器鏡像。
sudo mount -o loop /dev/vg0/pv ~/virt/pv
然後同步。
sudo rsync -avH --exclude=/home/viktor/src --exclude=/home/viktor/virt --exclude=/media --exclude=/mnt --exclude=/proc --exclude=/tmp --exclude=/usr/src \ --exclude=/var / ~/virt/pvcd ~/virt/pvmkdir {media,mnt,proc,tmp,usr/src}
這時要小心的調整rsync的--exclude選項,確保把檔案系統裡以下的內容,全部用--exclude排除:(建議存成指令碼)
- 所有的動態資料夾(例如/proc)。其中/sys和/dev可能要保留
- 不需要的資料檔案夾(例如/usr/src,經常數G的代碼,還有自己的主目錄)
- 鏡像檔案自身掛載的位置(這裡是~/virt/pv)
同步的時候在/sys和/dev裡會有一些錯誤,不用理會。
mkdir把剛才沒有同步的檔案夾重建立立。
2. 修改鏡像
修改鏡像裡的etc/fstab檔案:
修改pv/etc/fstab檔案# 原主要磁碟分割改成/dev/xvda1/dev/xvda1 / ext4 errors=remount-ro 0 1# 原swap分區改成/dev/xvda2/dev/xvda2 none swap sw 0 0# 其他的刪掉
檢查etc/securetty檔案,如果hvc0被注釋掉了,把它加上。否則會出現 虛擬機器不顯示登陸提示 不能登入 的問題
3. 編輯虛擬機器組態檔pv.cfg
config檔案:(ref: http://www.virtuatopia.com/index.php/Building_a_Xen_Virtual_Guest_Filesystem_using_Logical_Volume_Management_(LVM))kernel="/boot/vmlinuz-3.2.6"ramdisk="/boot/initrd.img-3.2.6"name="mint-pv"memory="512"disk=['phy:Group0/PV,xvda1,w', 'phy:Group0/Swap,xvda2,w'] # lvm卷使用phy首碼。鏡像檔案使用file首碼。root='/dev/xvda1 ro'vif=['ip=10.0.0.1']dhcp="dhcp"vfb = [ 'type=vnc' ]vnclisten = '127.0.0.1'extra='xencons=hvc0' # 如果需要runlevel 3可以在xencons前面加上。on_poweroff='destroy'
其中extra部分:xen4.1版本的控制台配置是:xencons=hvc0。用其他的(比如console=tty之類的)會出現xm console(或者vnc)不顯示登陸提示 不能登入
這時把鏡像卸載。就可以嘗試啟動虛擬機器了。Hope you good luck!
note:
不要使用xl(XenLight)啟動虛擬機器,因為xl不會載入/etc/xen/scripts裡的指令碼,網路設定會有問題。
自己使用的時候,domu啟動時總是提示掛載ext4分區失敗等等各種不穩定情況。出現這些意外,就很難解決了。
另外,PV DomU是沒有圖形介面的(Dom0和Domu只有一方可以使用pci顯卡裝置)。所以把Dom0複製到DomU,把GUI的部分也複製過去了,其實有些浪費,而且會帶來一些問題。如果Domu出現GUI相關的問題,請在設定檔裡加入 extra=3
ps:
使用dd產生img鏡像檔案:
dd if=/dev/zero of=ubuntu.img bs=1M count=0 seek=8K
使用dd命令。這裡count=0 seek=8K是把檔案大小直接調整到1M*8K=8GB,並不寫入任何資料。如果是count=8K那就會真正地填上0,很耗時間。(note:ext3檔案系統只支援4GB單個檔案。更大的就需要ext4了……)