Linux – test to see if hardware virtualization (vmx / svm) are presently enabled within a Linux session

linuxvirtualboxvirtualization

I'm writing procedures for configuring VirtualBox support for 64-bit SMP guests, which requires hardware virtualization suppot (VTx/Intel, AMD-V/AMD). I have successfully configured this myself, however I'd like the procedure to be clear.

sed -ne '/^flags/s/^.*: //p' /proc/cpuinfo  |                               
    egrep -q '(vmx|svm)' && echo Has hardware virt || echo No HW virt

… shows if the CPU is capable.

I've still got to go enable the feature in BIOS.

Any way to test from within Linux to see that this is no or not?

Thanks.

(Edit: s/xvm/svm/ in title)

Best Answer

The answer comes from the similar question brian99 pointed at.

Install kvm-ok for your distro (from cpu-checker under Debian/Ubuntu). Run kvm-ok which will then check the various prerequisites for hardware virtualization are present:

  • CPU flags
  • BIOS enabled
  • kvm/svm modules present.
  • /dev/kvm present

The output should indicate whether your system is capable, or what capabilities are missing to make so. Exit status should (I haven't confirmed) also be testable (shown below).

Sample run:

$ sudo kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
$ echo $?
0