minikube: running minikube on a external harddisk with noexec: 'kubeadm': Permission denied

Hey guys.

I’m trying to launch Minikube using docker drive, but I’m facing some permission issues.

Here are my logs:

~ took 5s
❯ minikube start
πŸ˜„  minikube v1.10.1 on Arch 20.0.1
    β–ͺ MINIKUBE_HOME=/mnt/hdd0/home/odelucca
✨  Using the docker driver based on existing profile
πŸ‘  Starting control plane node minikube in cluster minikube
πŸƒ  Updating the running docker "minikube" container ...
🐳  Preparing Kubernetes v1.18.2 on Docker 19.03.2 ...
    β–ͺ kubeadm.pod-network-cidr=10.244.0.0/16
πŸ’₯  initialization failed, will try again: run: /bin/bash -c "sudo env PATH=/var/lib/minikube/binaries/v1.18.2:$PATH kubeadm init --config /var/tmp/minikube/kubeadm.yaml  --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests,DirAvailable--var-lib-minikube,DirAvailable--var-lib-minikube-etcd,FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml,FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml,FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml,FileAvailable--etc-kubernetes-manifests-etcd.yaml,Port-10250,Swap,SystemVerification,FileContent--proc-sys-net-bridge-bridge-nf-call-iptables": Process exited with status 126
stdout:

stderr:
env: 'kubeadm': Permission denied

❗  This container is having trouble accessing https://k8s.gcr.io
πŸ’‘  To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/

πŸ’£  Error starting cluster: run: /bin/bash -c "sudo env PATH=/var/lib/minikube/binaries/v1.18.2:$PATH kubeadm init --config /var/tmp/minikube/kubeadm.yaml  --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests,DirAvailable--var-lib-minikube,DirAvailable--var-lib-minikube-etcd,FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml,FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml,FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml,FileAvailable--etc-kubernetes-manifests-etcd.yaml,Port-10250,Swap,SystemVerification,FileContent--proc-sys-net-bridge-bridge-nf-call-iptables": Process exited with status 126
stdout:

stderr:
env: 'kubeadm': Permission denied


😿  minikube is exiting due to an error. If the above message is not useful, open an issue:
πŸ‘‰  https://github.com/kubernetes/minikube/issues/new/choose

πŸ’£  failed to start node: startup failed: run: /bin/bash -c "sudo env PATH=/var/lib/minikube/binaries/v1.18.2:$PATH kubeadm init --config /var/tmp/minikube/kubeadm.yaml  --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests,DirAvailable--var-lib-minikube,DirAvailable--var-lib-minikube-etcd,FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml,FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml,FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml,FileAvailable--etc-kubernetes-manifests-etcd.yaml,Port-10250,Swap,SystemVerification,FileContent--proc-sys-net-bridge-bridge-nf-call-iptables": Process exited with status 126
stdout:

stderr:
env: 'kubeadm': Permission denied


😿  minikube is exiting due to an error. If the above message is not useful, open an issue:
πŸ‘‰  https://github.com/kubernetes/minikube/issues/new/choose

Also, I can’t run it as sudo since it says that I should not run docker Driver as sudo.

Obs: My Docker is already available for my user. I can create any Docker container without the need to sudo it.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 27 (4 by maintainers)

Most upvoted comments

@odelucca here is the link to the binary from a PR that will provide a better solution message http://storage.googleapis.com/minikube-builds/8597/minikube-linux-amd64

https://github.com/kubernetes/minikube/pull/8597

@medyagh sure! Here is a quick overview on the issue and how I’ve fixed:

I’ve the following hard-drive setup:

  • 1 SSD for my root folder
  • 1 SSD for my home folder
  • 1 HDD for data and files in general

I’ve moved both my Docker and Minikube to my HDD, mounted at /mnt/hdd0. I forgot to add any exec flags in it, and by default it was receiving a noexec flag.

I discovered that when I ran the mount command:

~
❯ mount
...
/dev/sda5 on /mnt/hdd0 type ext4 (rw,nosuid,nodev,noatime,noexec,user)
...

After that, I’ve just changed my /etc/fstab to add exec on the mount flags:

# <file system>                           <mount point>  <type>  <options>                     <dump>  <pass>
...
UUID=56efdd9d-8a99-4f63-8a31-901303ca74cd /mnt/hdd0      ext4    user,defaults,noatime,exec    0       1

Now, the HDD is mounted with exec flag and can execute binaries πŸ˜ƒ