Marco Burmeister
private Homepage
Hier sammel ich Tipps im Umgang mit Proxmox. Die Sammlung wird im Laufe der Zeit ausgebaut werden.
Hier soll sich alles wiederfinden, was nicht direkt mit der Installation oder Migrationsthemen beschäftigt.
Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Die Seite ist in die folgenden Bereiche eingeteilt:
Fehlermeldung: Keine gültige Subscription
Nach der Installation kann im Heim-Umfeld die folgende Fehlermeldung im Proxmox angezeigt werden:
You do not have a valid subscription
root
angemeldet hatte:sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
@reboot /root/scripts/unterdruecken_support_meldung.sh > /dev/null 2>&1
#!/bin/sh
#### add a crontab for this script
# crontab -e
# # m h dom mon dow command
# 23 0 * * * /root/scripts/remove-subscription-banner.sh
# Init
if [ -f $HOME/.profile ];
then
. $HOME/.profile
fi
# Start
echo ""
echo "Remove Subscription Banner"
echo ""
# Change
if ! fgrep -q 'void({ //Ext.Msg.show({' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; then
echo "patching ..."
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
else
echo "nothing to do"
fi
echo ""
#!/bin/sh
#### add a crontab for this script
# crontab -e
# # m h dom mon dow command
# 23 0 * * * /root/scripts/remove-subscription-banner.sh
# Init
if [ -f $HOME/.profile ];
then
. $HOME/.profile
fi
# Start
echo ""
echo "Remove Subscription Banner"
echo ""
# Change
if ! fgrep -q 'void({ //Ext.Msg.show({' ✂
/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; then
echo "patching ..."
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: ✂
gettext\('No valid sub)/void\(\{ \/\/\1/g" ✂
/usr/share/javascript/proxmox-widget-toolkit/✂
proxmoxlib.js ✂
&& systemctl restart pveproxy.service
else
echo "nothing to do"
fi
echo ""
Stoppen einer VM von Kommando-Zeile
Wenn eine VM falsch konfiguriert ist, kann es passieren, dass eine VM in eine Dauerboot-Schleife endet und via graphischer Oberfläche ein Stoppen nicht möglich ist.
Vorgehen:
rootcat /etc/pve/.vmlistqm stop <VMID-Nummer>
Eine VM kann gesperrt sein, wenn versucht wurde, während der Ausführung einer Datensicherung, die VM zu stoppen.
Diese Sperre kann aber wie folgt aufgehoben werden:
rootcat /etc/pve/.vmlistqm unlock <VMID-Nummer>
Eine VM in einer Dauerboot-Schleife kann manchmal über keinen der oben aufgeführten Wege gestoppt werden. Dann hilft nur noch das harte Beenden.
Die Ausführung einer VM kann mit den folgenden Befehlen hart abgebrochen werden:
rootcat /etc/pve/.vmlistPID-Nummer) einer VM mit dem Befehl:
ps aux | grep "/usr/bin/kvm -id <VMID-Nummer>"kill -9 k <PID-Nummer>
Um bei vielen VM die Übersicht zu behalten, bietet es sich an, eine Tag-Struktur zu überlegen und einzusetzen.
Jeder VM können verschiedene Tags zugeordnet werden.
Über die Suche kann dann später nicht nur nach Namen sondern auch nach Tags gesucht werden, was das Auffinden bestimmter VM Gruppen erleichtern kann.
So kann einer VM verschiedene Tags zugewiesen werden, um verschiedene Suchen / Gruppierungen zu ermöglichen.
Beispiele für Tag-Namen:
| Zweck | Beispiele-Name |
|---|---|
| Betriebssysteme unterscheiden | Linux Windows |
| Projekte unterscheiden | ProjektA MeinProjekt |
| Installierte Software unterscheiden | SAP Oracle PostgreSQL |
| Staginglevel unterscheiden | Prod NonProd |
| Status unterscheiden | aktiv im Aufbau |
Start Linux VM - volume group "xxx" not found / device xxx not found
Bei der Migration von VMs / Servern mit älteren Linux-Releases kann es beim Start / Boot der VM im Proxmox zu einer Fehlermeldung der folgenden Art kommen:
(xxx steht dann für den Namen einer Volue Group bzw. eines Devices)
Zunächst würde ich raten, die VM und deren Filesysteme auf Funktionalität zu testen. Also mit einer aktuellen LiveCD wie Knoppix die VM starten und dann die Filesysteme
temporär mounten. Vielleicht muss auch ein Filesystem-Check durchgeführt werden.
Sind hier keine Probleme zu erkennen und die Filesysteme können erfolgreich gemountet werden, so liegt der eingangs beschriebene Fehler beim Start der VM höchstwahrscheinlich
an fehlenden Treibern für den Festplatten-Controller, der damals noch nicht im Betriebssystem bekannt war.
Das Problem kann u.a. bei älteren openSUSE / SUSE Releases wie SLES 10 bis vermutlich SP3 und SLES 11 bis SP2 auftreten.
Laut der Erläuterung "Dealing with a Legacy Suse Linux 10 SP1 moving to KVM"
hilft bei SUSE SLES 10 der Wechsel auf SLES 10 SP4. Zusätzlich sind weitere Umstellungen wie beschrieben vorzunehmen bzw. zu prüfen.
SLES 11 ab SP3 scheint auch die richtigen Treiber mitzuliefern.
Eine Aktualisierung des Betriebssystems auf ein neueres Release wäre für mich der erste Lösungsansatz.
Wie immer gilt: Vor den Arbeiten an der VM eine Sicherung vornehmen. Für den Fall, dass ein Versuchsansatz nicht funktioniert hat, kann so auf einen alten Stand
zurückgegangen werden.
Die oben beschriebenen Betriebssysteme sind eh sehr veraltet und eine VM mit einem solchen Betriebssystem sollte nicht mehr verwendet werden.
Install-ISO zu Proxmox hochladen
Proxmox benötigt ISO-Dateien mit dem Betriebssystem, um neue VMs mit einem Betriebssystem versorgen zu können.
Im späteren Verlauf könnten auch Templates verwendet werden.
Das Hochladen kann via Web-Oberfläche durchgeführt werden. Alternativ können ISO-Dateien auch via SCP direkt auf den Server hochgeladen werden.
Hierzu ist eine Anmeldung an den Proxmox Server via SCP notwendig.
Dann kann in das Verzeichnis /var/lib/vz/template/iso gewechselt und die ISO-Dateien hochgeladen werden.
Bei meiner Installation war der Bereich zum Ablage von ISO-Dateien, Templates und Images gefühlt ein wenig klein eingerichtet. Aber es gibt Möglichkeiten, diesem Bereich eine eigene LV (Logical Volume) zu geben und kann dann den verfügbaren Platz freier gestalten.
Um einen eigenen Platz anzulegen, ist wie folgt vorzugehen:
rootmkdir /sicherungmv /var/lib/vz/* /sicherungvz"lcvreate -n vz -V 200G pve/datamkfs.ext4 /dev/pve/vzfstab vornehmen, damit beim nächsten Restart vom Proxmox Server der Bereich wieder eingebunden wirdecho '/dev/pve/vz /var/lib/vz ext4 defaults 0 2' >> /etc/fstabsystemctl daemon-reloadmount -a
cd /var/lib/vz
mv /sicherung/* .
rm -r /sicherung
LVM-Thin Disk für VM Datendisks als Storage einbinden
Hier geht es darum, im Proxmox System eine Disk einzurichten, die die VM Datendisks halten soll.
Nach einer Standard-Installation ist die erste Disk im System eingerichtet. Weitere Disks, die eventuell im System befindlich sind, werden
aber nicht eingerichtet.
Folgende Ausgangssituation:
/dev/sdbvgdata mit einem Logical Volume lvdata anlegendata"Das Vorgehen ist eigentlich einfach. Aber es müssen die richtigen Befehle in der richtigen Reihenfolge ausgeführt werden. Einiges kann auch aus der Web-Oberfläche ausgeführt werden. Das geht aber nicht für alle Schritte, weshalb ich hier nur den Weg via Kommando-Zeile verwende, damit ich nicht hin und her springen muss.
rootvgs
lvs
pvs
lsblk
sgdisk /dev/sdbsgdisk -N 1 /dev/sdbpvcreate --metadatasize 2g -y -ff /dev/sdb1vgcreate vgdata /dev/sdb1lvcreate -l 99%FREE -n lvdata vgdata
lvconvert --type thin-pool vgdata/lvdata
LVM-Thin wandeln wollte
(Fehlermeldung: "Volume group "vgdata" has insufficient free space (0 extents): 30 required".
lvconvert konnte ausgeführt werden.data", die Volume Group hat den Namen "vgdata" und das Logical Volume wurde als "lvdata" angelegtpvesm add lvmthin data --vgname vgdata -thinpool lvdata
pvesm add lvmthin data --vgname vgdata ✂
-thinpool lvdata
vzdump erzeugt abzulegen, kann als Ziel NFS genutzt werden.
Warning: unable to close filehandle GEN17519 properly: Input/output error at /usr/share/perl5/PVE/VZDump/QemuServer.pm line 1048.
| Parameter | Wert | Beschreibung |
|---|---|---|
| MOUNT | /mnt/pve/Backup2NFS | Lokaler Einhängepunkt |
| NFS-Server | nfs-server.my.domain | Hostname des NFS Servers |
| NFS-Export | /export/ProxmoxBackup | Ziel auf dem NFS-Server |
#!/bin/bash
set -euo pipefail
MOUNT="/mnt/pve/Backup2NFS"
NFS_SERVER="nfs-server.my.domain"
NFS_EXPORT="/Ablage/ProxmoxBackup"
# 1. Erreichbarkeit des Servers prüfen
echo "Prüfe ob NFS-Server erreichbar ist..."
if ! ping -c 2 -W 3 "$NFS_SERVER" &>/dev/null;
then
echo "FEHLER: $NFS_SERVER nicht erreichbar. Netzwerk ok?" >&2
exit 1
fi
# 2. NFS-Export prüfen
# (ist die USB-Disk angesteckt und exportiert?)
echo "Prüfe ob NFS-Export verfügbar ist..."
if ! showmount -e "$NFS_SERVER" 2>/dev/null | grep -q "$NFS_EXPORT";
then
echo "FEHLER: Export '$NFS_EXPORT' nicht gefunden." >&2
echo " USB-Disk angesteckt und am NFS-Server gemountet?" >&2
exit 1
fi
# 3. Remount mit robusten Optionen
echo "Mounte NFS neu mit stabilen Optionen..."
umount "$MOUNT" 2>/dev/null || true
mount -t nfs \
-o rw,hard,timeo=600,retrans=5,rsize=1048576,wsize=1048576,proto=tcp,vers=3 \
"${NFS_SERVER}:${NFS_EXPORT}" "$MOUNT"
# 4. Mountpoint wirklich nutzbar? (Schreibtest)
echo "Prüfe ob NFS-Share beschreibbar ist..."
TESTFILE="$MOUNT/.backup_writetest_$$"
if ! touch "$TESTFILE" 2>/dev/null;
then
echo "FEHLER: Kann nicht auf $MOUNT schreiben." >&2
exit 1
fi
rm -f "$TESTFILE"
echo "NFS-Share ok. "
vzdump, welcher ein Backup von einer VM durchführen kann.
vbackupstore benannt werden, wie man es eingestellt hat. Hier ist er
Backup2NFS genannt worden.
#!/bin/bash
VMID="${1:?Usage: $0 }"
vbackupstore="Backup2NFS"
vzdump "$VMID" \
--storage ${vbackupstore} \
--mode snapshot \
--compress zstd \
--bwlimit 0 \
--ionice 7 \
--maxfiles 5 \
--notes-template "{{guestname}}"
Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Für den Inhalt von Internet-Seiten, auf die von dieser Seite verwiesen wird, übernehme ich keine Verantwortung!
Marco Burmeister, Copyright © 2024 - 2026
zuletzt geändert: 2026-04-13
URL: https://www.marco-burmeister.de/helferlein/de_proxmox_tipps.html
Impressum