1 Supernested is a test of nested KVM. It is able to run KVM, nested to
2 any depth, limited only by available memory, bugs in KVM, and your
7 ----------------------------------------------------------------------
9 By Richard W.M. Jones <rjones@redhat.com>
11 Bugs, feedback etc: http://www.redhat.com/mailman/listinfo/virt-tools-list
13 (Note: Bugs in KVM or the kernel should be reported to the qemu-devel
14 or Linux kernel mailing lists respectively)
18 ----------------------------------------------------------------------
20 Gnu General Public License, version 2 or above. See 'COPYING'.
24 ----------------------------------------------------------------------
26 - Have a look at the 'build-supernested.sh.in' script for a variable
27 called $packages. You need to install all of those packages on the
31 https://github.com/libguestfs/supermin
32 Note: older versions of supermin will not work
36 - recent qemu and kernel
40 - getopt(1) utility (from util-linux)
42 - Only tested on Fedora, but it should work on other Linux distros
43 *provided* they have supermin 5 support. Patches to fix that are
47 Compiling the disk image
48 ----------------------------------------------------------------------
50 To build the disk image, do:
56 If supermin and qemu are not in the normal location on the path, you
57 can set SUPERMIN and QEMU environment variables before running
60 Assuming that works you will end up with 4 files:
62 - 'supernested-<VERSION>-<DISTRO>.qcow2'
69 - 'run-supernested.sh'
71 You need all 4 files for the next step.
74 Running the disk image
75 ----------------------------------------------------------------------
77 !NOTE FIRST! If nested KVM is broken, it can *frequently* cause your
78 host machine to crash, reboot, catch fire, etc. You need to run this
79 on baremetal, on a machine which is KVM-capable, a modern CPU, with
80 lots of free memory, and nothing much else running.
82 You need to have the kernel KVM module (eg. kvm_amd or kvm_intel)
83 loaded, with the nested=1 flag. The nested flag defaults to true for
84 AMD in recent kernels, but not for Intel. To force this, do:
86 mkdir -p /etc/modprobe.d
87 echo "options kvm_intel nested=1" > /etc/modprobe.d/kvm.conf
89 To see if nested is enabled, use:
91 cat /sys/modules/kvm_(intel|amd)/parameters/nested
93 /dev/kvm needs to be accessible. On some distros you may need to add
94 your user to a special 'kvm' group.
96 You *don't* need to run this command as root. Running it as root may
97 give different results. Consult a qemu/KVM expert.
99 Have a look at the 'run-supernested.sh' script. You may want to edit
100 things like the name of the qemu binary.