minikube: Improve error message for nested KVM issue: could not find capabilities for domaintype=kvm

minikube version: v0.27.0 OS: opensuse Tumbleweed 20180331 vm driver: kvm2 or kvm “Boot2DockerURL”: “file:///home/u1/.minikube/cache/iso/minikube-v0.26.0.iso”, “ISO”: “/home/u1/.minikube/machines/minikube/boot2docker.iso”,

minikube installed from officail repo:

> rpm -qi minikube
Name        : minikube
Version     : 0.27.0
Release     : 1.1
Architecture: x86_64
Install Date: Пн 16 июл 2018 17:59:10
Group       : System/Management
Size        : 43331879
License     : Apache-2.0
Signature   : RSA/SHA256, Пт 22 июн 2018 15:33:56, Key ID b88b2fd43dbdc284
Source RPM  : minikube-0.27.0-1.1.src.rpm
Build Date  : Пт 22 июн 2018 15:32:58
Build Host  : cloud116
Relocations : (not relocatable)
Packager    : https://bugs.opensuse.org
Vendor      : openSUSE
URL         : http://kubernetes.io
Summary     : Tool to run Kubernetes locally
Distribution: openSUSE Tumbleweed

kvm module loaded:

> lsmod | grep kvm
kvm_intel             229376  0
kvm                   700416  1 kvm_intel
irqbypass              16384  1 kvm

user groups:

> groups
kvm wheel users libvirt docker

When i launch minikube start with kvm or kvm2 driver as regular user, it does not start, and i see error invalid argument: could not find capabilities for domaintype=kvm:

> minikube start --vm-driver=kvm2
There is a newer version of minikube available (v0.28.0).  Download it here:
https://github.com/kubernetes/minikube/releases/tag/v0.28.0

To disable this notification, run the following:
minikube config set WantUpdateNotification false
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Downloading Minikube ISO
 150.53 MB / 150.53 MB [============================================] 100.00% 0s
E0716 18:30:16.599687   20347 start.go:159] Error starting host: Error creating host: Error creating machine: Error in driver during machine creation: creating domain: Error defining domain xml: 
<domain type='kvm'>
  <name>minikube</name> 
  <memory unit='MB'>2048</memory>
  <vcpu>2</vcpu>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <cpu mode='host-passthrough'/>
  <os>
    <type>hvm</type>
    <boot dev='cdrom'/>
    <boot dev='hd'/>
    <bootmenu enable='no'/>
  </os>
  <devices>
    <disk type='file' device='cdrom'>
      <source file='/home/u1/.minikube/machines/minikube/boot2docker.iso'/>
      <target dev='hdc' bus='scsi'/>
      <readonly/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='default' io='threads' />
      <source file='/home/u1/.minikube/machines/minikube/minikube.rawdisk'/>
      <target dev='hda' bus='virtio'/>
    </disk>
    <interface type='network'>
      <source network='default'/>
      <mac address='ac:11:1f:f4:0d:75'/>
      <model type='virtio'/>
    </interface>
    <interface type='network'>
      <source network='minikube-net'/>
      <mac address='ac:11:1f:f4:0d:75'/>
      <model type='virtio'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <rng model='virtio'>
      <backend model='random'>/dev/random</backend>
    </rng>
  </devices>
</domain>
: virError(Code=8, Domain=44, Message='invalid argument: could not find capabilities for domaintype=kvm ').

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 4
  • Comments: 25 (3 by maintainers)

Most upvoted comments

QEMU: Checking for hardware virtualization : FAIL (Only emulated CPUs are available, performance will be significantly limited) QEMU: Checking if device /dev/vhost-net exists : PASS QEMU: Checking if device /dev/net/tun exists : PASS QEMU: Checking for cgroup ‘memory’ controller support : PASS QEMU: Checking for cgroup ‘memory’ controller mount-point : PASS QEMU: Checking for cgroup ‘cpu’ controller support : PASS QEMU: Checking for cgroup ‘cpu’ controller mount-point : PASS QEMU: Checking for cgroup ‘cpuacct’ controller support : PASS QEMU: Checking for cgroup ‘cpuacct’ controller mount-point : PASS QEMU: Checking for cgroup ‘cpuset’ controller support : PASS QEMU: Checking for cgroup ‘cpuset’ controller mount-point : PASS QEMU: Checking for cgroup ‘devices’ controller support : PASS QEMU: Checking for cgroup ‘devices’ controller mount-point : PASS QEMU: Checking for cgroup ‘blkio’ controller support : PASS QEMU: Checking for cgroup ‘blkio’ controller mount-point : PASS WARN (Unknown if this platform has IOMMU support) LXC: Checking for Linux >= 2.6.26 : PASS LXC: Checking for namespace ipc : PASS LXC: Checking for namespace mnt : PASS LXC: Checking for namespace pid : PASS LXC: Checking for namespace uts : PASS LXC: Checking for namespace net : PASS LXC: Checking for namespace user : PASS LXC: Checking for cgroup ‘memory’ controller support : PASS LXC: Checking for cgroup ‘memory’ controller mount-point : PASS LXC: Checking for cgroup ‘cpu’ controller support : PASS LXC: Checking for cgroup ‘cpu’ controller mount-point : PASS LXC: Checking for cgroup ‘cpuacct’ controller support : PASS LXC: Checking for cgroup ‘cpuacct’ controller mount-point : PASS LXC: Checking for cgroup ‘cpuset’ controller support : PASS LXC: Checking for cgroup ‘cpuset’ controller mount-point : PASS LXC: Checking for cgroup ‘devices’ controller support : PASS LXC: Checking for cgroup ‘devices’ controller mount-point : PASS LXC: Checking for cgroup ‘blkio’ controller support : PASS LXC: Checking for cgroup ‘blkio’ controller mount-point : PASS LXC: Checking if device /sys/fs/fuse/connections exists : FAIL (Load the ‘fuse’ module to enable /proc/ overrides) Has anyone solved it? Thank you

I have the shame problem to in CentOS 7 but…

QEMU: Checking for hardware virtualization : FAIL (Only emulated CPUs are available, performance will be significantly limited) QEMU: Checking if device /dev/vhost-net exists : PASS QEMU: Checking if device /dev/net/tun exists : PASS QEMU: Checking for cgroup ‘memory’ controller support : PASS QEMU: Checking for cgroup ‘memory’ controller mount-point : PASS QEMU: Checking for cgroup ‘cpu’ controller support : PASS QEMU: Checking for cgroup ‘cpu’ controller mount-point : PASS QEMU: Checking for cgroup ‘cpuacct’ controller support : PASS QEMU: Checking for cgroup ‘cpuacct’ controller mount-point : PASS QEMU: Checking for cgroup ‘cpuset’ controller support : PASS QEMU: Checking for cgroup ‘cpuset’ controller mount-point : PASS QEMU: Checking for cgroup ‘devices’ controller support : PASS QEMU: Checking for cgroup ‘devices’ controller mount-point : PASS QEMU: Checking for cgroup ‘blkio’ controller support : PASS QEMU: Checking for cgroup ‘blkio’ controller mount-point : PASS WARN (Unknown if this platform has IOMMU support) LXC: Checking for Linux >= 2.6.26 : PASS LXC: Checking for namespace ipc : PASS LXC: Checking for namespace mnt : PASS LXC: Checking for namespace pid : PASS LXC: Checking for namespace uts : PASS LXC: Checking for namespace net : PASS LXC: Checking for namespace user : PASS LXC: Checking for cgroup ‘memory’ controller support : PASS LXC: Checking for cgroup ‘memory’ controller mount-point : PASS LXC: Checking for cgroup ‘cpu’ controller support : PASS LXC: Checking for cgroup ‘cpu’ controller mount-point : PASS LXC: Checking for cgroup ‘cpuacct’ controller support : PASS LXC: Checking for cgroup ‘cpuacct’ controller mount-point : PASS LXC: Checking for cgroup ‘cpuset’ controller support : PASS LXC: Checking for cgroup ‘cpuset’ controller mount-point : PASS LXC: Checking for cgroup ‘devices’ controller support : PASS LXC: Checking for cgroup ‘devices’ controller mount-point : PASS LXC: Checking for cgroup ‘blkio’ controller support : PASS LXC: Checking for cgroup ‘blkio’ controller mount-point : PASS LXC: Checking if device /sys/fs/fuse/connections exists : FAIL (Load the ‘fuse’ modu

same problem, Is there a solution?

I had this issue. I am using minikube in a VM under VMWare and I did not enable the option “Virtualize Intel VT-x/EPT or AMD-V/RVI” when I created the VM. I had enabled it after reading this thread but still got the same error. Apparently actually applying the option requires a reboot of the VM and VMWare didn’t tell me that so I didn’t know. Trying to use the virtualbox driver told me that option was disabled when I thought it was enabled so I tried rebooting and now I no longer get this error.

@Juancarlosmartin10 it you are inside vbox as I am, this is it https://www.virtualbox.org/ticket/4032 . It does not support virtualization inside VM. The ticket is 9 years old but they plan to release it soon though.

[root@kube ~]# minikube version minikube version: v1.1.1 [root@kube ~]# virt-host-validate QEMU: Checking for hardware virtualization : FAIL (Only emulated CPUs are available, performance will be significantly limited) QEMU: Checking if device /dev/vhost-net exists : PASS QEMU: Checking if device /dev/net/tun exists : PASS QEMU: Checking for cgroup ‘memory’ controller support : PASS QEMU: Checking for cgroup ‘memory’ controller mount-point : PASS QEMU: Checking for cgroup ‘cpu’ controller support : PASS QEMU: Checking for cgroup ‘cpu’ controller mount-point : PASS QEMU: Checking for cgroup ‘cpuacct’ controller support : PASS QEMU: Checking for cgroup ‘cpuacct’ controller mount-point : PASS QEMU: Checking for cgroup ‘cpuset’ controller support : PASS QEMU: Checking for cgroup ‘cpuset’ controller mount-point : PASS QEMU: Checking for cgroup ‘devices’ controller support : PASS QEMU: Checking for cgroup ‘devices’ controller mount-point : PASS QEMU: Checking for cgroup ‘blkio’ controller support : PASS QEMU: Checking for cgroup ‘blkio’ controller mount-point : PASS WARN (Unknown if this platform has IOMMU support) LXC: Checking for Linux >= 2.6.26 : PASS LXC: Checking for namespace ipc : PASS LXC: Checking for namespace mnt : PASS LXC: Checking for namespace pid : PASS LXC: Checking for namespace uts : PASS LXC: Checking for namespace net : PASS LXC: Checking for namespace user : PASS LXC: Checking for cgroup ‘memory’ controller support : PASS LXC: Checking for cgroup ‘memory’ controller mount-point : PASS LXC: Checking for cgroup ‘cpu’ controller support : PASS LXC: Checking for cgroup ‘cpu’ controller mount-point : PASS LXC: Checking for cgroup ‘cpuacct’ controller support : PASS LXC: Checking for cgroup ‘cpuacct’ controller mount-point : PASS LXC: Checking for cgroup ‘cpuset’ controller support : PASS LXC: Checking for cgroup ‘cpuset’ controller mount-point : PASS LXC: Checking for cgroup ‘devices’ controller support : PASS LXC: Checking for cgroup ‘devices’ controller mount-point : PASS LXC: Checking for cgroup ‘blkio’ controller support : PASS LXC: Checking for cgroup ‘blkio’ controller mount-point : PASS LXC: Checking if device /sys/fs/fuse/connections exists : FAIL (Load the ‘fuse’ module to enable /proc/ overrides) [root@kube ~]#

Still error with the 1.1 version

running minikube in a centos7 vm and getting the same error.

[root@localhost ~]# minikube start --vm-driver kvm2
o   minikube v1.0.0 on linux (amd64)
$   Downloading Kubernetes v1.14.0 images in the background ...
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
>   Creating kvm2 VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
@   Downloading Minikube ISO ...
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
2019/04/22 12:49:17 Unable to read "/root/.docker/config.json": open /root/.docker/config.json: no such file or directory
2019/04/22 12:49:17 No matching credentials were found, falling back on anonymous
 142.88 MB / 142.88 MB [============================================] 100.00% 0s

!   Unable to start VM: create: Error creating machine: Error in driver during machine creation: creating domain: Error defining domain xml: 
<domain type='kvm'>
  <name>minikube</name> 
  <memory unit='MB'>2048</memory>
  <vcpu>2</vcpu>
  <features>
    <acpi/>
    <apic/>
    <pae/>
    
  </features>
  <cpu mode='host-passthrough'/>
  <os>
    <type>hvm</type>
    <boot dev='cdrom'/>
    <boot dev='hd'/>
    <bootmenu enable='no'/>
  </os>
  <devices>
    <disk type='file' device='cdrom'>
      <source file='/root/.minikube/machines/minikube/boot2docker.iso'/>
      <target dev='hdc' bus='scsi'/>
      <readonly/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='default' io='threads' />
      <source file='/root/.minikube/machines/minikube/minikube.rawdisk'/>
      <target dev='hda' bus='virtio'/>
    </disk>
    <interface type='network'>
      <source network='default'/>
      <mac address='a4:73:42:33:ef:cc'/>
      <model type='virtio'/>
    </interface>
    <interface type='network'>
      <source network='minikube-net'/>
      <mac address='ac:83:2e:1c:15:ea'/>
      <model type='virtio'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <rng model='virtio'>
      <backend model='random'>/dev/random</backend>
    </rng>
    
  </devices>
</domain>
: virError(Code=8, Domain=44, Message='invalid argument: could not find capabilities for domaintype=kvm ')

*   Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
-   https://github.com/kubernetes/minikube/issues/new
[root@localhost ~]# groups
root libvirt
[root@localhost ~]# virt-host-validate 
  QEMU: Checking for hardware virtualization                                 : PASS
  QEMU: Checking if device /dev/kvm exists                                   : PASS
  QEMU: Checking if device /dev/kvm is accessible                            : PASS
  QEMU: Checking if device /dev/vhost-net exists                             : PASS
  QEMU: Checking if device /dev/net/tun exists                               : PASS
  QEMU: Checking for cgroup 'memory' controller support                      : PASS
  QEMU: Checking for cgroup 'memory' controller mount-point                  : PASS
  QEMU: Checking for cgroup 'cpu' controller support                         : PASS
  QEMU: Checking for cgroup 'cpu' controller mount-point                     : PASS
  QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
  QEMU: Checking for cgroup 'cpuacct' controller mount-point                 : PASS
  QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
  QEMU: Checking for cgroup 'cpuset' controller mount-point                  : PASS
  QEMU: Checking for cgroup 'devices' controller support                     : PASS
  QEMU: Checking for cgroup 'devices' controller mount-point                 : PASS
  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  QEMU: Checking for cgroup 'blkio' controller mount-point                   : PASS
  QEMU: Checking for device assignment IOMMU support                         : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)
   LXC: Checking for Linux >= 2.6.26                                         : PASS
   LXC: Checking for namespace ipc                                           : PASS
   LXC: Checking for namespace mnt                                           : PASS
   LXC: Checking for namespace pid                                           : PASS
   LXC: Checking for namespace uts                                           : PASS
   LXC: Checking for namespace net                                           : PASS
   LXC: Checking for namespace user                                          : PASS
   LXC: Checking for cgroup 'memory' controller support                      : PASS
   LXC: Checking for cgroup 'memory' controller mount-point                  : PASS
   LXC: Checking for cgroup 'cpu' controller support                         : PASS
   LXC: Checking for cgroup 'cpu' controller mount-point                     : PASS
   LXC: Checking for cgroup 'cpuacct' controller support                     : PASS
   LXC: Checking for cgroup 'cpuacct' controller mount-point                 : PASS
   LXC: Checking for cgroup 'cpuset' controller support                      : PASS
   LXC: Checking for cgroup 'cpuset' controller mount-point                  : PASS
   LXC: Checking for cgroup 'devices' controller support                     : PASS
   LXC: Checking for cgroup 'devices' controller mount-point                 : PASS
   LXC: Checking for cgroup 'blkio' controller support                       : PASS
   LXC: Checking for cgroup 'blkio' controller mount-point                   : PASS
   LXC: Checking if device /sys/fs/fuse/connections exists                   : PASS
[root@localhost ~]# dmesg | grep kvm
[root@localhost ~]# lscpu | grep -q Virtualization || echo "No Virtualization"
[root@localhost ~]# lsmod | grep kvm
kvm_intel             162153  0 
kvm                   525259  1 kvm_intel

This appears to be due to the hosts lack of virtualization abilities, but we should have pre-flight checks to detect this issue.