在 Debian Host 上建立 Debian domU
xen-create-image --hostname <hostname> --ip <ip> --vcpus 2 --memory=512mb --pygrub --dist <lenny|squeeze|maverick|whatever>
# wrapper around three distinct external tools
# xt-install-image
# xt-customize-image
# xt-create-xen-config
學習:
- --manual
- --help
有用選項:
- --install-method=rinse // debootstrap, rinse, tar, copy ( --install-source=tarball.tar )
- --arch=arch // pass 入 debootstrap, rinse 用
- --dist ??? // 支持的 OS 放在 /usr/lib/xen-tools/, 如果不是 Debian 系統, 那要配合 --install-method=rinse 使用
- --passwd // 設定 domU 的 root Password (另有 --password=passphrase)
- --keep // Don't delete our images if installation fails.
Net:
- --ip=192.168.1.200
- --netmask=255.255.255.0
- --gateway=192.168.1.1
- --nameserver=192.168.1.1
--ide //Use IDE names for virtual devices (i.e. hda not xvda)
--initrd=/path/to/initrd
--kernel=/path/to/kernel
# 會有以下建立
modprobe loop max_loop=255
Creating partition image: /xen/domains/debian6/swap.img
Creating swap on /xen/domains/debian6/swap.img
Creating partition image: /xen/domains/debian6/disk.img
Creating ext3 filesystem on /xen/domains/debian6/disk.img
Installation method: debootstrap
Running hooks
Installation Summary
---------------------
Hostname : debian6
Distribution : squeeze
IP-Address(es) : 192.168.88.152
RSA Fingerprint : d3:56:12:96:22:8d:9d:2b:8f:50:cc:02:15:31:b0:fe
Root Password : N/A
# 建立時會有 log file 在 /var/log/xen-tools/debian6.log
設定檔 /etc/xen/debian.cfg
kernel = '/boot/vmlinuz-2.6.32-5-xen-amd64' <-- Host 的 Kernel 來 ramdisk = '/boot/initrd.img-2.6.32-5-xen-amd64' vcpus = '1' memory = '512' root = '/dev/xvda2 ro' disk = [ 'file:/xen/domains/debian6/disk.img,xvda2,w', 'file:/xen/domains/debian6/swap.img,xvda1,w', ] name = 'debian6' vif = [ 'ip=192.168.88.152,mac=00:16:3E:6B:25:B7,bridge=vmbr0' ] on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart'
查看 image 的位置:
/xen/domains/debian6# ls
disk.img swap.img
image 的格式:
file swap.img
swap.img: Linux/i386 swap file
file disk.img
disk.img: Linux rev 1.0 ext3 filesystem data
啟動 VM:
xm create /etc/xen/virtual_machine.cfg
RPM-based distribution.
Creating partition image: /xen/domains/centos5/swap.img
Done
Creating swap on /xen/domains/centos5/swap.img
Done
Creating partition image: /xen/domains/centos5/disk.img
Done
Creating ext3 filesystem on /xen/domains/centos5/disk.img
Done
Installation method: rinse
Remark 1
CentOS 5.6 在 Debian6 Xen Host 上的問題
............
Running hook 20-setup-yum
/usr/bin/python: error while loading shared libraries: libpython2.4.so.1.0:
cannot open shared object file: No such file or directory
hook 20-setup-yum: done.
............
在 mirror 上是找不到 libpython 的....
http://mirror.centos.org/centos/5/os/i386/CentOS/
原來它叫
python-libs
/etc/rinse/
centos-4.packages
centos-5.packages
Remark 2
rhel has dropped support for Xen in version 6
Boot
有 bootloader 就不用 kernel 及 ramdisk
bootloader = '/usr/lib/xen-default/bin/pygrub'
kernel = '/boot/vmlinuz-2.6.32-5-xen-amd64'
ramdisk = '/boot/initrd.img-2.6.32-5-xen-amd64'
--pygrub DomU should be booted using pygrub
start Linux DomUs with the kernels that lie in the filesystem of the DomU instead of with a Kernel that lies in the filesystem of the Dom0
reads the standard Grub menu.lst to provide the xen create process with the required parameters and SXP stanzas.
Centos4
/etc/rinse/rinse.conf
[centos-4]
mirror = http://vault.centos.org/4.9/os/i386/CentOS/RPMS/
[Harmless] Failed to find download link for libsysfs
[Harmless] Failed to find download link for mcstrans
text installation
mkdir -p /boot/domU/centos4.9/installer
cd /boot/domU/centos4.9/installer
wget http://vault.centos.org/4.9/os/i386/images/xen/vmlinuz
wget http://vault.centos.org/4.9/os/i386/images/xen/initrd.img
kickstart file
extra = "text ks=http://localserver/minimal-ks.cfg"
install
url --url http://mirror.centos.org/centos/5/os/i386
lang en_US.UTF-8
network --device eth0 --bootproto dhcp
# Bogus password, change to something sensible!
rootpw bogus
firewall --enabled --port=
authconfig --enableshadow --enablemd5
selinux --enforcing ??port=22:tcp
timezone --utc Europe/Amsterdam
bootloader --location=mbr --driveorder=xvda --append="console=xvc0"
reboot
# Partitioning
clearpart --all --initlabel --drives=xvda
part /boot --fstype ext3 --size=100 --ondisk=xvda
part pv.2 --size=0 --grow --ondisk=xvda
volgroup VolGroup00 --pesize=32768 pv.2
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=256 --grow --maxsize=512
%packages
@core
Welcome to CentOS +---------+ Choose a Language +---------+ | | | What language would you like to use | | during the installation process? | | | | Catalan # | | Chinese(Simplified) # | | Chinese(Traditional) # | | Croatian # | | Czech # | | Danish # | | Dutch # | | English # | | | | +----+ | | | OK | | | +----+ | | | | | +---------------------------------------+ <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen
Post-install configuration
bootloader="/usr/bin/pygrub"
其他工具
# To erase a VM image
xen-delete-image VMs_name