Xen虛擬機模版制作
阿新 • • 發佈:2018-03-09
xen
創建Xen虛擬機配置文件,用 xl create 啟動虛擬機
制作模版
-
windows
-
準備虛擬機
安裝配置好一個用來制作模版的虛擬機 -
導出windows的mbr到文件(僅適用於mbr分區表的windows操作系統),基於lvm(基於文件需要使用loop設備)
dd if=/dev/mapper/vg_lv_name of=/path/to/windows_tpl.mbr count=1 bs=512
- 生成模板磁盤的分區設備
kpartx -av /dev/mapper/vg_lv_name
4.復制模板數據到文件(或分區)
ntfsclone -r -O windows_tpl.img /dev/mapper/vg_lv_namep1
5.刪除分區設備
kpartx -dv /dev/mapper/vg_lv_name
- linux(僅適用於半虛擬化)
1.打包整個系統tar cpzf test.tar.gz --exclude=/os_tpl.tar.gz /
2.建立虛擬磁盤
dd if=/dev/zero of=os_tpl.img bs=1 count=1 seek=10G mkfs.ext4 test.img mount -o loop test.img /mnt
3.釋放系統文件到虛擬磁盤
tar -zxSf os_tpl.tar.gz -C /mnt/os_tpl
4.掛載系統所需目錄(無此目錄可創建),然後chroot
sudo mkdir -p /mnt/os_tpl/{proc,sys,dev,dev/pts} sudo mount -t proc proc /mnt/os_tpl/proc/ sudo mount -t sysfs sys /mnt/os_tpl/sys/ sudo mount -o bind /dev /mnt/os_tpl/dev/ sudo mount -o bind /dev/pts /mnt/os_tpl/dev/pts/ sudo chroot /mnt/os_tpl
5.chroot後更新系統並安裝linux-virtual內核,當然,不要忘了更新 grub(centos同理)
apt-get update & apt-get upgrade apt-get install linux-virtual apt-get purge grub2 grub-pc apt-get install grub update-grub
6.換了內核後還需要更新和配置幾個系統文件,menu.lst,fstab,hvc0.conf,以便新內核能在 Xen 虛擬環境裏正常啟動
# vi /boot/grub/menu.lst Kernel command line: root=/dev/xvda1 xencons=tty console=tty1 console=hvc0 nosep nodevfs ramdisk_size=32768 ip_conntrack.hashsize=8192 nf_conntrack.hashsize=8192 ro devtmpfs.mount=1
# vi /etc/fstab /dev/xvda1 / ext4 noatime,errors=remount-ro 0 1 /dev/xvda2 none swap sw 0 0 tmpfs /dev/shm tmpfs nodev,nosuid,noexec,mode=1777 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 /proc /proc proc defaults 0 0 /dev/xvdb /home ext4 noatime,errors=remount-ro 0 1
# vi /etc/init/hvc0.conf # hvc0 - getty # # This service maintains a getty on hvc0 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -8 38400 hvc0
7.退出chroot並逆順序卸載剛才掛載的目錄
umount /mnt/os_tpl/proc/ umount /mnt/os_tpl/sys/ umount /mnt/os_tpl/dev/pts/ umount /mnt/os_tpl/dev/ umount /mnt/os_tpl
# xl create test.cfg
-
創建虛擬機
-
windows
1.創建磁盤/磁盤鏡像lvcreate -L 20G -n xxx vg
2.從模版mbr恢復mbr到磁盤
dd if=2003_tpl.mbr of=/dev/mapper/vg_lv_name count=1 bs=512
3.創建分區設備
kpartx -av /dev/mapper/vg_lv_name
4.復制模版數據到分區設備
ntfsclone -r -O /dev/mapper/vg_lv_namep1 windows_tpl.img
4.根據需要在分區設備執行resize
ntfsresize -f -v /dev/mapper/vg_lv_namep1
5.刪除分區設備
kpartx -dv /dev/mapper/vg_lv_name
- Linux
1.建立虛擬磁盤dd if=/dev/zero of=test.img bs=1 count=1 seek=10G
2.格式化虛擬磁盤
mkfs.ext4 test.img
3.掛載虛擬磁盤
mount -o loop test.img /mnt
4.釋放模版文件到目標位置
tar -zxSf test.tar.gz -C /mnt/
# vi /etc/xen/test.cfg
bootloader = "pygrub"
root = "/dev/xvda ro"
name = "test"
vcpus = "1"
memory = "2048"
disk = [ "file:/root/test.img,xvda,w","file:/root/test.swp,xvdb,w" ]
vif = [ "bridge=xenbr0" ]
Xen虛擬機模版制作