Debian LXC-Container in Void Linux einrichten

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.