Para los que hayan seguido los artículos de LXD (en este orden)
En WSL 2 Ubuntu 20.04 no puede ejecutar paquetes que requieren snapd como es el caso de LXD, a no ser que se cambiase el microkernel de WSL. (no aconsejado)Pero si conocemos algo de Linux...supongo que los namespaces y el demonizar procesos os suena... vamos a hacerlo con Ubuntu 20.04.
Ahora actualizamos el sistema e instalamos los paquetes que son necesarios:
Código:
sudo apt update && sudo apt upgrade sudo apt install -yqq daemonize dbus-user-session fontconfig sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target exec sudo nsenter -t $(pidof systemd) -a su - $LOGNAME
snap version
veremos que está correctamente configurado.
Para tener todo el entorno preparado cada vez que reinicimos, nos creamos el fichero /etc/profile.d/00-wsl2-systemd.sh
Hace falta hacerlo con privilegios por tanto:
sudo nano /etc/profile.d/00-wsl2-systemd.sh
Y le copiamos el contenido:
Código:
SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic-target$' | grep -v unshare | awk '{print $2}') if [ -z "$SYSTEMD_PID" ]; then sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic-target SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic-target$' | grep -v unshare | awk '{print $2}') fi if [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then exec sudo nsenter -t $SYSTEMD_PID -a su - $LOGNAME fi
sudo visudo
Y le añadimos al final:
Código:
%sudo ALL=(ALL) NOPASSWD: /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic-target %sudo ALL=(ALL) NOPASSWD: /usr/bin/nsenter -t [0-9]* -a su - [a-zA-Z0-9]*
BIen, salimos y terminaos la instlacion de Ubuntu con el comando:
wsl --terminate <instancia>
Siendo <instancia> el nombre con el que lo tengamos registrado. Se pueden ver todos los registrados (instlados) con el comando:
wsl -l -v
Una vez terminado lo arrancamos de nuevo ya ya podremoa ejecutar:
sudo lxd init (ver articulos anteriores para configurarlo)
sudo lxc ... parametros.... (todo lo definido en anteriores articulos)
NOTA: Por defecto el wsl no arranca las instancias de los containers... para que arranque sin necesida de hacer logon podemos ejecutar (en una bateria por ejemplo):
Código:
wsl -d <instancia ubunte-2004> -u root /bin/sh /etc/profile.d/00-wsl2-systemd.sh ^& sleep 3 >nul