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
HI,
NatĂŒrlich hat man so einen leichtgewichtigen Container?
Hast du einen speziellen Anwendungszweck?
PS: Toller blog!
Nein, wollte das einfach nur mal ausprobieren.
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.
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.
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.
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…
Danke, Anleitung wurde aktualisiert!