Lediglich der erste Punkt, die Installation der Pakete, ist Void-Linux-spezifisch. Der weitere Ablauf sollte auch ohne Anpassungen auf andere Linux-Distributionen übertragbar sein.
Erforderliche Pakete installieren
lxc
sowie debootstrap
können in Void Linux wie folgt installiert werden:
xbps-install -Su lxc debootstrap
Umgebung definieren
Diese Variablen müssen in jedem Schritt des folgenden Ablaufs gesetzt sein:
# Diese Konstanten anpassen
NAME=sid
MIRROR=http://ftp.cz.debian.org/debian/
CHROOT=/var/lib/lxc/$NAME/rootfs
Root-Dateisystem erstellen
mkdir -p "$CHROOT"
debootstrap --arch amd64 "$NAME" "$CHROOT" "$MIRROR"
Hostname setzen und und fstab initialisieren
echo "$NAME" > "$CHROOT/etc/hostname"
echo 'tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0' > "$CHROOT/etc/fstab"
LXC-Konfiguration schreiben
cat >> "$CHROOT/../config" << EOF
lxc.uts.name = $NAME
lxc.rootfs.path = dir:/var/lib/lxc/$NAME/rootfs
lxc.start.auto = 1
# "Secure" mounting
lxc.mount.auto = proc:mixed sys:ro cgroup:mixed
# Make container unpriviledged
# (may not be desired if it's services will require full system-access)
lxc.idmap = u 0 1000000 65536
lxc.idmap = g 0 1000000 65536
EOF
[optional] Netzwerkkonfiguration ergänzen
Dieser Abschnitt dient als Beispiel und muss den eigenen Anforderungen entsprechend angepasst werden.
cat >> "$CHROOT/../config" << EOF
# x's will be replaced by random values
lxc.net.0.hwaddr = xx:xx:xx:xx:xx:xx
lxc.net.0.type = veth
lxc.net.0.flags = up
lxc.net.0.link = br0
lxc.net.0.ipv4.address = 192.168.1.111/24
lxc.net.0.ipv4.gateway = 192.168.1.1
EOF
Container starten und betreten
lxc-start "$NAME"
lxc-attach "$NAME" -- /bin/bash
Ab hier kann nun mit dem Debian-System wie gewohnt gearbeitet werden.