DietPi unter Proxmox im LXC Container installieren

DietPi ist eine optimierte und minimale Debian basierte Linux Distribution.
Überwiegend fĂŒr den Einsatz auf Einzelplatinencomputern (SBC) gedacht, kann aber auch auf einem normalen Computer und in virtuellen Maschinen genutzt werden.

17.05.2024 - Anleitung aktualisiert
01.05.2023 - Proxmox 7.4, DietPi 8.16.2 (Debian 11)

mein Setup:

  • Proxmox 8.2
  • DietPi 9.4.2 (Debian 12)

VM erstellen

Neue VM ohne Festplatte erstellen. Die VM wird spÀter in einen Container konvertiert und kann dann auch wieder gelöscht werden.
Hier mal alles auf der Konsole. (404 ist meine VM ID – ! bitte entsprechend abĂ€ndern !)

# neue vm erstellen
qm create 404 --name DietPi --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-single --ostype l26 --memory 2048 --sockets 1 --cores 2

# DietPi image herunterladen und entpacken
apt install xz-utils
wget https://dietpi.com/downloads/images/DietPi_Proxmox-x86_64-Bookworm.qcow2.xz
xz -dv DietPi_Proxmox-x86_64-Bookworm.qcow2.xz

# disk importieren und einbinden
qm importdisk 404 DietPi_Proxmox-x86_64-Bookworm.qcow2 local-lvm
qm set 404 --scsi0 local-lvm:vm-404-disk-0

# disk als boot device setzen
qm set 404 --boot order=scsi0

# vm starten
qm start 404

# das entpackte image löschen
rm DietPi_Proxmox-x86_64-Bookworm.qcow2

Anmelden und das Setup durchlaufen. (login: root / password: dietpi)

Die VM nochmal rebooten nach updates suchen und aufrÀumen.

dietpi-update
apt autoremove -y

Damit DietPi weis, dass es sich spÀter um einen Container und keine VM mehr handelt, in der /etc/.dietpi_hw_model_identifier den Wert von 20 auf 75 Àndern.

echo 75 >/etc/.dietpi_hw_model_identifier

VM in einen Container konvertieren

Dazu nutze ich das unverÀnderte script von: https://github.com/my5t3ry/machine-to-proxmox-lxc-ct-converter

Die zu konvertierende VM muss eingeschaltet bleiben.
In der Shell auf dem Proxmox Host wird jetzt das script heruntergeladen und ausgefĂŒhrt.

git clone https://github.com/mathewalves/machine-to-proxmox-lxc-ct-converter.git
cd machine-to-proxmox-lxc-ct-converter
chmod +x convert.sh bashconvert

Das bashconvert script setzt die Anzahl der CPU Cores auf unlimited, sollte man spÀter noch auf 1 oder 2 Àndern.

ErklÀrung der Parameter:

-n neuer container name
-t ip adresse der zu konvertierenden vm
-P ssh port der zu konvertierenden vm
-i neuer container id
-s neuer container rootfs in gb
-a neuer container ip adresse
-b neuer container bridge interface
-g neuer container gateway ip
-m neuer container memory in mb
-d neuer container storage pool
-p neuer container passwort

Die VM konvertieren.

./bashconvert -n dietpi -t 192.168.50.198 -P 22 -i 120 -s 8 -a 192.168.50.53 -b vmbr0 -g 192.168.50.1 -m 2048 -d local-lvm -p changeme

Container anpassen

Den konvertierten Container starten, anmelden und auch wieder das Setup durchlaufen.

Im Container benötigt man keinen bootloader, initramfs und kernel. Kann alles gelöscht werden.

apt autopurge grub-pc tiny-initramfs linux-image-amd64

Diese Services können auch deaktiviert werden.

systemctl disable --now dietpi-cloudshell systemd-networkd systemd-resolved

Nochmal rebooten und fertig. DietPi im LXC Container.

Update

DietPi von der 8.16.2 auf die aktuelle 8.19.1 Version updaten.

Im Terminal:

root@dietpi:~# dietpi-update

Update GUI

links

7 Gedanken zu „DietPi unter Proxmox im LXC Container installieren“

  1. Danke, klappt!

    FĂŒr Proxmox-Newbies wĂ€re vielleicht noch die zusĂ€tzliche Info hilfreich, dass man vor dem Schritt “VM in einen Container konvertieren” die “Übergangs-VM” nicht herunterfĂ€hrt, sondern laufen lĂ€sst und parallel in die Shell des Proxmoxs-Knotens (also des eigenen Servers) wechselt, um dort das convert-Skript herunterzuladen und auszufĂŒhren.

    Eine Anregung wÀre noch, vielleicht die Wahl zwischen einem privilegierten und unprivilegierten Container anzubieten. Die Anleitung erzeugt einen unprivilegierten. Die Frage ist ob man mit dem unprivilegierten Dietpi-LXC-Container alles machen kann, was man will. Wenn man z.B. Nextcloud im Container laufen lassen will, verwenden Anleitungen wie die von ApfelCast z.B. einen privilegierten Container.

    Antworten
    • Danke fĂŒr die Infos. Hab die Anleitung aktualisiert.

      Proxmox erstellt per default einen neuen Container immer unprivilegiert mit aktiviertem nesting.
      Sollte damit nicht alles laufen, kann der Container spÀter in einen priviligierten geÀndert werden.

      FĂŒr die Wahl zwischen einem privilegierten oder unprivilegierten Container mĂŒsste man das script anpassen.

      Antworten
  2. Danke fĂŒr das Update in der Anleitung.

    Ergebnis meiner Recherche: SpĂ€ter von “unprivilegiert” auf “privilegiert” zu Ă€ndern scheint nur ĂŒber ein Backup und angepasstes Restore zu funktionieren. Wenn man von vornherein einen privilegierten Container haben will, braucht es nur eine weitere Zeile im convert.sh-Skript, nĂ€mlich beim “pct create”-Befehl:

    pct create "$id" "/tmp/$name.tar.gz" \
    -description LXC \
    -hostname "$name" \
    --features nesting=1 \
    -memory "$memory" -nameserver 8.8.8.8 \
    -net0 name=eth0,ip="$ip"/24,gw="$gateway",bridge="$bridge" \
    --rootfs "$rootsize" -storage "$storage" -password "$password" \
    --unprivileged 1

    Das funktioniert bei mir anstandslos.

    Antworten
  3. Wenn alles super funktioniert, ist dringend eine Neuerung nötig, nerv…
    s. https://github.com/my5t3ry/machine-to-proxmox-lxc-ct-converter

    git clone https://github.com/mathewalves/machine-to-proxmox-lxc-ct-converter.git
    cd machine-to-proxmox-lxc-ct-converter
    chmod +x convert.sh bashconvert

    ./bashconvert -n dietpi -t 192.168.50.198 -P 22 -i 120 -s 8 -a 192.168.50.53 -b vmbr0 -g 192.168.50.1 -m 2048 -d local-lvm -p changeme

    Ansonsten Gratulation fĂŒr die vielen Tipps zu Proxmox, ARM, etc…

    Antworten

Schreibe einen Kommentar