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.