Error: Failed container creation: Create LXC container: Invalid devices: Detect root disk device: No root device could be found

I am trying to follow the instruction for getting MicroK8s up and running MicroK8s - MicroK8s in LXD.

The commands given are

lxc profile create microk8s
wget https://raw.githubusercontent.com/ubuntu/microk8s/master/tests/lxc/microk8s.profile -O microk8s.profile
cat microk8s.profile | lxc profile edit microk8s
lxc launch -p default -p microk8s ubuntu:20.04 microk8s

This results in message below

[user:~] [2.5.3] $ lxc launch --profile microk8s ubuntu:18.04 $BOX
Creating mk8s1
Error: Failed container creation: Create LXC container: Invalid devices: Detect root disk device: No root device could be found
[user:~] [2.5.3] 1 $ 

Default profile is

config: {}
description: Default LXD profile
devices:
  eth0:
    name: eth0
    nictype: bridged
    parent: lxdbr0
    type: nic
  root:
    path: /
    pool: default
    type: disk
name: default

Profile microk8s is

config:
  boot.autostart: "true"
  linux.kernel_modules: ip_vs,ip_vs_rr,ip_vs_wrr,ip_vs_sh,ip_tables,ip6_tables,netlink_diag,nf_nat,overlay,br_netfilter
  raw.lxc: |
    lxc.apparmor.profile=unconfined
    lxc.mount.auto=proc:rw sys:rw cgroup:rw
    lxc.cgroup.devices.allow=a
    lxc.cap.drop=
  security.nesting: "true"
  security.privileged: "true"
description: ""
devices:
  aadisable:
    path: /sys/module/nf_conntrack/parameters/hashsize
    source: /sys/module/nf_conntrack/parameters/hashsize
    type: disk
  aadisable2:
    path: /dev/kmsg
    source: /dev/kmsg
    type: unix-char
  aadisable3:
    path: /sys/fs/bpf
    source: /sys/fs/bpf
    type: disk
  aadisable4:
    path: /proc/sys/net/netfilter/nf_conntrack_max
    source: /proc/sys/net/netfilter/nf_conntrack_max
    type: disk
name: microk8s
used_by: []

Can you show lxc profile show default and lxc profile show microk8s please.

I added this to the text

The command you actually ran, compared to lxc launch -p default -p microk8s ubuntu:20.04 microk8s you provided above, means that the only the microk8s profile will be used (and not the default one that has the root disk device).

Thanks, that fixed it.

1 Like