Normally, a minimal initrd is created automatically by the rcutorture scripting. But minimal really does mean "minimal", namely just a single root directory with a single statically linked executable named "init": $ size tools/testing/selftests/rcutorture/initrd/init text data bss dec hex filename 328 0 8 336 150 tools/testing/selftests/rcutorture/initrd/init Suppose you need to run some scripts, perhaps to monitor or control some aspect of the rcutorture testing. This will require a more fully filled-out userspace, perhaps containing libraries, executables for the shell and other utilities, and soforth. In that case, place your desired filesystem here: tools/testing/selftests/rcutorture/initrd For example, your tools/testing/selftests/rcutorture/initrd/init might be a script that does any needed mount operations and starts whatever scripts need starting to properly monitor or control your testing. The next rcutorture build will then incorporate this filesystem into the kernel image that is passed to qemu. Or maybe you need a real root filesystem for some reason, in which case please read on! The remainder of this document describes one way to create the rcu-test-image file that contains the filesystem used by the guest-OS kernel. There are probably much better ways of doing this, and this filesystem could no doubt be smaller. It is probably also possible to simply download an appropriate image from any number of places. That said, here are the commands: ------------------------------------------------------------------------ dd if=/dev/zero of=rcu-test-image bs=400M count=1 mkfs.ext3 ./rcu-test-image sudo mount -o loop ./rcu-test-image /mnt # Replace "precise" below with your favorite Ubuntu release. # Empirical evidence says this image will work for 64-bit, but... # Note that debootstrap does take a few minutes to run. Or longer. sudo debootstrap --verbose --arch i386 precise /mnt http://archive.ubuntu.com/ubuntu cat << '___EOF___' | sudo dd of=/mnt/etc/fstab # UNCONFIGURED FSTAB FOR BASE SYSTEM # /dev/vda / ext3 defaults 1 1 dev /dev tmpfs rw 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 ___EOF___ sudo umount /mnt ------------------------------------------------------------------------ References: http://sripathikodi.blogspot.com/2010/02/creating-kvm-bootable-fedora-system.html https://help.ubuntu.com/community/KVM/CreateGuests https://help.ubuntu.com/community/JeOSVMBuilder http://wiki.libvirt.org/page/UbuntuKVMWalkthrough http://www.moe.co.uk/2011/01/07/pci_add_option_rom-failed-to-find-romfile-pxe-rtl8139-bin/ -- "apt-get install kvm-pxe" https://www.landley.net/writing/rootfs-howto.html https://en.wikipedia.org/wiki/Initrd https://en.wikipedia.org/wiki/Cpio http://wiki.libvirt.org/page/UbuntuKVMWalkthrough