Creating file-backed virtual block device (VBD) for Xen virtual machines and installing Fedora 12 in Xen DomU via internet will be introduced. Note that this tutorial is based on a pretty old OS (Fedora 12). But the method here is still valid while some minor details may need to be changed for latest Xen and Linux such as such as ‘xl’ replacing ‘xm’, LVM backing the disk for higher performance. But the general process is the same.
The Dom0 platform on top of which this DomU is set up is introduced also in this site. Please refer to
for the latest stable Xen Dom0 solution.
Create file-backed VBD:
The actual space of VBD will be the amount of disk the virtual machine used. And it will be convenient if the virtual machine will be duplicated since the work is just copying the VBD file and changing some configurations. But file-backed VBDs may not be appropriate for I/O-intensive domains because of the I/O handling cost to support file-backed VBDs in dom0.
Create a 20GB sparse file-backed VBD:
# dd if=/dev/zero of=/lhome/xen/f12install/vmdisk0 bs=1k seek=20480k count=1
Install Fedora 12 Linux via Internet
First download the pxeboot kernel of Fedora 12 for installation via Internet. Download vmlinuz and initrd.img from here:
Update: As Fedora 12 is not updated by Fedora any more. The repository is moved to archive site:
The kernel and memory image can be downloaded directly by:
$ wget http://download.fedora.redhat.com/pub/fedora/linux/releases/12/Fedora/x86_64/os/images/pxeboot/vmlinuz
$ wget http://download.fedora.redhat.com/pub/fedora/linux/releases/12/Fedora/x86_64/os/images/pxeboot/initrd.img
Update: new links:
$ wget http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/12/Fedora/x86_64/os/images/pxeboot/vmlinuz $ wget http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/12/Fedora/x86_64/os/images/pxeboot/initrd.img
We assume these two files are stored in /lhome/xen/f12install/.
Create an installation profile f12.install:
name="F12INSTALL" vcpus=2 memory=2048 disk = ['file:/lhome/xen/f12install/vmdisk0,xvda,w' ] vif = [ 'bridge=eth0' ] kernel = "/lhome/xen/f12install/vmlinuz" ramdisk = "/lhome/xen/f12install/initrd.img" on_reboot = 'restart' on_crash = 'restart'
The virtual machine’s name is “F12INSTALL”, memory is 2G, CPU number is 2, disk, kernel and ramdisk is prepared in the above steps.
Start this virtual machine and connect to this virtual machine’s console and complete the installation:
# xm create -c f12.install
The console can be released by “Ctrl+]”. And it can be reconnected by:
# xm console F12INSTALL
The installation of Fedora 12 will start. The gateway and DNS server should be set according to the network configuration.
The URL of installation source I used during installation is:
Update: new link:
After successfully installation of this virtual machine. It can be shut down by:
# xm shutdown F12INSTALL
This virtual machine can be duplicated to get more VMs: How to duplicate Xen DomU virtual machines.
Remember to update your system after the first boot. The 2.6.32 kernel is more stable running as DomU than the default one.
Create a profile vm-10.0.0.123.run for loading the virtual machine:
name="10.0.0.123" vcpus=2 memory=2048 disk = ['file:/lhome/xen/vm-10.0.0.123/vmdisk0,xvda,w' ] vif = [ 'bridge=eth0' ] bootloader = "/usr/bin/pygrub" on_reboot = 'restart' on_crash = 'restart'
Here we use the PyGrub (“/usr/bin/pygrub”) as the bootloader. PyGrub starts Linux DomUs with the kernels that lie in the filesystem of the DomU instead of the kernels that lie in the filesystem of the Dom0. That makes the kernel update and management easier.
Then the DomU can be started using this profile:
# xm create vm-10.0.0.123.run
The console of this DomU can be connected to:
# xm console vm-10.0.0.123