This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Installing Fedora Core 2 inside an unprivileged domain

To: xen-devel@xxxxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Installing Fedora Core 2 inside an unprivileged domain
From: John L Griffin <jlg@xxxxxxxxxx>
Date: Sun, 12 Dec 2004 00:32:26 -0500
Delivery-date: Sun, 12 Dec 2004 05:34:02 +0000
Envelope-to: xen+James.Bulpin@xxxxxxxxxxxx
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx

I am attempting to install Red Hat Fedora Core 2, inside an
unprivileged Xen domain, using the FC2 distribution DVD.

Ian discusses some options for doing this in a message from 2004-11-07
[ http://sourceforge.net/mailarchive/message.php?msg_id=9983779 ].
I'm developing the "alternative approach" he discusses in the message.
I've made some progress:

  1. Create a sparse file (see section 5.2 of Xen user's manual):

       dd if=/dev/zero of=fc2-install.img bs=1k seek=8388607 count=1

  2. Acquire the DVD ISO image (FC2-i386-DVD.iso, in my case), and
     save it to a file locally.  Mount the image as a loopback device,
     copy the file "initrd.img" from the DVD image, unmount the image:

       mkdir /mnt/loop
       mount -oloop,ro FC2-i386-DVD.iso /mnt/loop
       cp /mnt/loop/isolinux/initrd.img .
       umount /mnt/loop

  3. Create a configuration file; the important fields to modify are
     "ramdisk" (should point to initrd.img from above), "disk", and
     "root".  Here are the entries I used:

       kernel  = "/boot/vmlinuz-2.6.9-xenU"
       ramdisk = "/fc2-install/initrd.img"
       memory  = 128
       name    = "fc2-install"
       disk    = [ 'file:/fc2-install/fc2-install.img,hda1,w',
                   'file:/fc2-install/FC2-i386-DVD.iso,hdb1,r' ]
       root    = "/dev/hdb1 ro ramdisk_size=8192 init=isolinux.bin"

  4. Start the unprivileged domain.

       xend start
       xm create fc2-install.xen -c

The unprivileged domain starts, Linux starts to boot correctly, and a
"Welcome to Fedora Core" message appears.  But, then a prompt asks "Do
you have a driver disk?".  When I say "no", it asks what type of media
contains the packages to be installed (Local CDROM, Hard drive, NFS
image, FTP, HTTP), but selecting any of them brings up a "No driver
found" prompt: "Unable to find any devices of the type needed for this
installation type.  Would you like to manually select your driver or
use a driver disk?"

And that's where I'm currently stuck.  None of the listed drivers for
either disk-based or network-based installs appear to work.  My theory
is that the initial boot is successful because Xen is loading the
ramdisk, but in the next stage the installer can't find drivers for
either the VBD or virtual network interface.  (See boot messages

But this inability to find the drivers seems odd, since I expect the
drivers for both to be compiled into the xenU kernel.  (Could the
installer somehow be switching over to the kernel image on the DVD?)

So, any ideas on what to try to overcome this?  Rebuild the initrd
image?  Create a driver disk?  Something much simpler?


Following are the boot messages for the unprivileged domain:

Using config file "fc2-install.xen".--------------------+
Started domain fc2-install, console on port 9622
************ REMOTE CONSOLE: CTRL-] TO QUIT ********
Linux version 2.6.9-xenU (root@xxxxxxxxxxxxxxxxxxxx) (gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7)) #2 Sat Dec 11 15:47:54 EST 2004
BIOS-provided physical RAM map:
 Xen: 0000000000000000 - 0000000008000000 (usable)
128MB LOWMEM available.en elements  | <Space> selects | <F12> next screen
DMI not present.
Built 1 zonelists
Kernel command line:  ip=: root=/dev/sdb1 ro ramdisk_size=8192 init=isolinux.bin
Initializing CPU#0
PID hash table entries: 1024 (order: 10, 16384 bytes)
Xen reported: 3066.835 MHz processor.
Using tsc for high-res timesource
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 120216k/131072k available (1596k kernel code, 10792k reserved, 446k data, 96k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: Intel(R) Xeon(TM) CPU 3.06GHz stepping 09
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... disabled
checking if image is initramfs...it isn't (ungzip failed); looks like an initrd
Freeing initrd memory: 7000k freed
NET: Registered protocol family 16
SCSI subsystem initialized
Initializing Cryptographic API
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
Xen virtual console successfully installed as tty
Event-channel device installed.
Starting Xen Balloon driver
xen_blk: Initialising virtual block device driver
Using anticipatory io scheduler
xen_net: Initialising virtual ethernet driver.
register_blkdev: cannot get major 8 for sd
NET: Registered protocol family 2
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 8192 bind 16384)
NET: Registered protocol family 1
NET: Registered protocol family 17
IP-Config: Incomplete network configuration information.
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 7000KiB [1 disk] into ram disk... done.
VFS: Mounted root (ext2 filesystem).
anaconda installer init version 10.0 starting
mounting /proc filesystem... done
mounting /dev/pts (unix98 pty) filesystem... done
mounting /sys filesystem... done
anaconda installer init version 10.0 using a serial console
remember, cereal is an important part of a nutritionally balanced breakfast.
trying to remount root filesystem read write... done
mounting /tmp as ramfs... done
running install...
running /sbin/loader

[then the "Do you have a driver disk?" screen.]

Dr. John Linwood Griffin
Research Staff Member, Secure Systems Department
IBM T.J. Watson Research Center, Hawthorne, New York, USA
JLG@xxxxxxxxxx, http://www.research.ibm.com/people/j/jlg/