Nested KVM: Inner VM fails to execute /init

Steffen Gebert
2011-09-01T14:40:11Z

Hi all,

I started playing with nested KVMs, but the inner VM doesn't boot. It
fails after grub's "Starting up ..." with
> Failed to execute /init
> Kernel panic - not syncing: No init found. Try passing init= option
> to kernel. See Linux Documentation/init.txt for guidance.
> Pid: 1, comm: init Not tainted 2.6.38-11-virtual #48-Ubuntu

> Call trace is panic <- init_post <- kernel_init <-
> kernel_thread_helper <- kernel_init <- kernel_thread_helper

Outer VM uses kernel from kvm's git repository and latest libvirt
release (0.9.4) on Ubuntu 10.04. The inner VM uses Ubuntu's standard
kernel + kvm.

I'm using kvm_intel (arch amd64), loaded kvm_intel with nested=1 and
created a custom emulator script, which passes "-enable-nesting -cpu
host" to the kvm command. I also tried "-cpu qemu64,+vmx".

Do you have a clue, why /init cannot be executed? I extracted the initrd
image of inner VM and it looks okay. /init is executable and a readable
shell script.

Inner and outer VMs have been built with ubuntu-vm-builder.
> ubuntu-vm-builder kvm natty --domain innervm3 --hostname innervm3 --dest innervm3 --mem 128 --addpkg acpid --addpkg openssh-server --addpkg avahi-daemon --libvirt qemu:///system
The output is exactly the same for both runs (thus no errors are printed
out).

How can I further debug that? I must admit that I'm not that familar
with the whole init process.

Thank you very much for your help!

Kind regards
Steffen