[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] Guest O/S Questions

Anthony Liguori wrote:

Mark Williamson wrote:

I have just recently discovered the XEN VMM and am trying to familiarize
myself with it.  I'm a newbe at it, so bear with me.

No probs, here goes...

I'd like to install an O/S onto a guest virtual machine. Domain 0 is RHEL4 on Xen 2.0.7. My question is how I would go about installing from a set of distribution CD's (say RHEL4 or SUSE9) into a file-backed VMM. Can anyone
help me out with this?

Installing into a file-backed VBD from a distro CD is tricky.

Actually, if you use QEMU to install the distro into a raw disk, and you only create one partition on the disk, you should be able to just use a command like this:

That's actually getting to be a preferred method here, at least for some folks.

qemu file-backed installs allow you to use an existing RHEL installer, without much fuss or mess, the tricky bit is finding the filesystem afterward, as what qemu produces is a _partitioned_ file with filesystems within it.

dd skip=63 bs=512 if=qemu.img of=xen.img

Keep in mind, I've not tried this myself :-)

Exporting the qemu image as /dev/hda in domU and just setting your parameters right seems to work well and is much simplier.

Are you doing this with the qemu partitioned file itself?

The procedure I've worked up is:

1. Create a target install file.  Creating this as a sparse file saves
   blocks on disk until you actually need them:

       dd if=/dev/zero of=rhel4_qemu bs=1024k seek=$(( 6 * 1024 )) count=0

   The $(( 6 * 1024 )) gives you 6 GB to work with, the seek means it's
   sparse, and the count=0 means there's only one block used on disk

2. Install RHEL flavor of your choosing.  You can boot either from an
   install CD, _or_ an ISO image corresponding to same:

       qemu -cdrom <cd drive or ISO image> -boot c rhel4_qemu

   Walk through the installation.  Your image file (rhel4_qemu) will
   automatically be partitioned.

3. Shut down qemu after the install is completed.

4. Find out the image file's partitioning.  fdisk's '-u' option gives
   output in sectors.  This helps in the next step.  Sample partition
       $ /sbin/fdisk -lu rhel4
       You must set cylinders.
       You can do this from the extra functions menu.

       Disk rhel4: 0 MB, 0 bytes
       255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
       Units = sectors of 1 * 512 = 512 bytes

        Device Boot      Start         End      Blocks   Id  System
       rhel4p1   *          63      208844      104391   83  Linux
rhel4p2 208845 401624 96390 82 Linux swap / Solaris
       rhel4p3          401625     4192964     1895670   83  Linux

   Ignore the cylinder messages (they matter if you're going to modify
   the partition table).

   The start sector times the blocksize (512 bytes) gives you the
   partition offset in bytes.  This is used if you want to loopback
   mount the filesystems to copy them someplace else, which you do.

   The first partition is /boot, the second is /.  I didn't use logical
   volumes, though it's possible to do so, complicating matters
   somewhat more.

5. Loopback mount the qemu images, creating a couple of mountpoints.
   Using the file I'm referencing above (rhel4):

       mkdir mp1 mp2
       su -c 'mount -o loop,offset=$(( 63 * 512 )) -t ext3 rhel4 mp1'
       su -c 'mount -o loop,offset=$(( 4192964 * 512 )) -t ext3 rhel4 mp2'

As a final step, you could copy the contents of these two mountpoints
into a partition or a single filesystem image (a file with just a
filesystem in it, no partitions) which can be used for a Xen file-backed
DomU, etc.

You will have to modify the DomU's /etc/fstab and likely comment the MAC
address registered in /etc/sysconfig/network-scripts/ifcfg-eth0 for
things to work properly.

Once you have a suitable image, you can simply use it as a DomU image for new deployments.

There are some good related docs on Fedora and Debian installs as well:


Debian:  http://hands.com/d-i/HOWTO-xen.txt

Karsten M. Self <karsten@xxxxxxxxxxxxx>
XenSource, Inc.
2300 Geng Road #250                                +1 650.798.5900 x259
Palo Alto, CA 94303                                +1 650.493.1579 fax

Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.