Start Linux inside a Vancouver VM using a virtual disk.

Julian Stecklina jsteckli at
Mon Nov 26 18:40:58 CET 2012

Thus spake Mehdi AICHOUCH <foxmehdi at>:

> Hello,
> I was trying to run Linux inside a Vancouver virtual machine and using a
> virtual disk.
> But, I got an error when Linux kernel try to mount the root file system.
> #!/usr/bin/env novaboot
> # -*-sh-*-
> WVDESC=Kernel compile inside VM (on virtual disk, EPT + VPID)
> QEMU_FLAGS=-cpu phenom -m 2048M
> bin/apps/sigma0.nul tracebuffer_verbose S0_DEFAULT hostserial hostvga
> hostkeyb:0,0x60,1,12 script_start:1,1 \
>     service_config vdisk_empty:736870912 service_disk
> bin/apps/vancouver.nul
> bin/boot/munich
> imgs/bzImage
> imgs/mdisk.img
> vancuver.nulconfig <<EOF
> sigma0::mem:512 sigma0::dma  name::/s0/log name::/s0/timer name::/s0/fs/rom
> name::/s0/admission name::/s0/disk disk::0 ||
> rom://bin/apps/vancouver.nul PC_PS2 ahci:0xe0800000,14,0x30 drive:0,0,0 ||
> rom://bin/boot/munich ||
> rom://imgs/bzImage clocksource=tsc console=ttyS0 ||
> rom://imgs/mdisk.img

What your configuration script is telling Vancouver, is that you want to
use mdisk.img as a initrd/initramfs for your Linux kernel. In addition
you attach an empty virtual disk as a virtual SATA disk (which probably
fails because disk::0 is wrong, see below). If, as I
suspect, mdisk.img is a harddisk image, this will not work.

You have two options:

If your root filesystem is small, you should use an initramfs or initrd.

Or you have to tell sigma0 to offer mdisk.img as a virtual disk by using
vdisk:rom://imgs/mdisk.img instead of vdisk_empty:736870912. In this
case you also need to correct disk::0 into sigma0::drive:0 in
vancouver.nulconfig, to allow access to this disk.

HTH, Julian

More information about the l4-hackers mailing list