Ein Umzug einer kompletten Installation von Proxmox auf größeren Datenträger

Blick in ein Rechenzentrum mit Serverschränken

Bei mir war eine größere SSD für den Proxmoxserver fällig da sich die drei virtuellen Maschinen plus ein paar Container als zu umfangreich erwiesen haben für die bisherige 120 GB SSD. Die Symtome dafür sind bei Proxmox immer, dass die virtuellen Maschinen und teilweise auch die Container wegen Ressourcenmangel hängen bleiben und sich nicht mehr starten lassen. Zunächst dachte ich man könnte einfach das Image mit dd auf die neue SSD ziehen und die neue SSD einfach umpartitionieren und mit größerem Swap versehen (bei der Gelegenheit hat die Kiste auch mehr RAM bekommen). Leider war das dank der LVM-Struktur von Proxmox überhaupt nicht so möglich sondern Proxmox musste neu installiert werden. Die ganzen Container und virtuelle Maschinen wollte ich jedoch auf die neue Hardware retten.

Zunächst wurden von allen Containern und virtuellen Maschinen zur Sicherheit lauffähige Backups gemacht und danach Proxmox frisch auf der neuen SSD installiert. Eine neue Installation aller virtuellen Maschinen und Container hätten mich tagelange Arbeit gekostet aber eine Suche hat gezeigt das dies unnötig ist da die Struktur der Images und Systemeinstellungen recht übersichtlich im Dateisystem des Hostrechners ist und das ganze Unterfangen im Grunde mit scp zu erledigen ist.

Weiterlesen

OpenVPN lokal einrichten – mit dem OpenVPN verbinden (IV)

OpenVPN-Logo

Mit Hilfe der im Teil III erhaltenen .ovpn-Datei ist es sehr einfach sich mit dem VPN-Server zu verbinden.Dazu zunächst einmal die Datei auf den Client bringen der sich mit dem VPN-Server verbinden soll.

KDE

Für KDE braucht man keine zusätzliche Clientsoftware denn es bringt bereits einen guten Netzwerkmanager mit der auch OpenVPN-Verbindungen beherrscht. Unter Systemeinstellungen – Netzwerk finden sich die ganzen Einstellungen zu Netzwerkverbindungen die benutzt wurden. Da ich öfter, im Rahmen der Wikipedia, in Hotels unterwegs bin, haben sich zahlreiche Hotel-WLANs dort eingenistet. Darüber können aber auch VPN-Verbindungen eingerichtet werden. Man kann das durchaus manuell machen aber eleganter, fehlerfreier und schneller geht es mit der .ovpn-Datei.

Weiterlesen

OpenVPN lokal einrichten – die Serversoftware einrichten (III)

OpenVPN-Logo

Für diesen Beitrag richte ich eine neue Testumgebung als Proxmox-Container mit einem Standardtemplat von Debian 12 mit minimaler Softwareausstattung unter der IP-Adresse 192.168.0.250/24, mit 2 GB Festplattenplatz und 512 MByte RAM ein. Das System wird mit den drei Befehlen

apt-get update && apt-get -y dist-upgrade
dpkg-reconfigure tzdata
dpkg-reconfigure locales

noch auf den neusten Patchstand gebracht und die Zeitzone und das Tastaturlayout eingestellt. Ansonsten habe ich die Installation zu diesem Zeitpunkt nicht verändert.

Weiterlesen

OpenVPN lokal einrichten – den Router für Portforwarding einrichten (II)

OpenVPN-Logo

OpenVPN kommuniziert standardmäßig mit dem Protokoll UDP auf Netzwerkport 1194 und diese Einstellungen werden hier auch übernommen. Selbstverständlich kann man auch TCP und jeden beliebigen anderen freien Port benutzen. Als Router dient in diesem Beispiel eine FritzBox der Firma AVM weil ich selber so eine benutze und weil sie sehr verbreitet sind. Jeder andere moderne Router sollte jedoch auch dazu in der Lage sein aber man muss ggf. die Betriebsanleitung dazu lesen.

Im Menupunkt Internet -> Freigaben findet sich der Reiter Portfreigaben und dort den Button „Gerät für Freigaben hinzufügen“ den wir auswählen.

Nun kann man unter Gerät das Ziel des zukünftigen VPN-Servers auswählen und ganz unten dann Neue Freigabe anklicken. Bitte keine anderen Punkte wie „

Weiterlesen

dd über ssh ausführen und übertragen

Geöffnete Festplatte

Wenn man ein Dump eines kompletten Datenträgers auf einem Serversystems bekommen möchte kann es sinnvoll sein dies über ssh auszuführen – also das output-File wird auf einem völlig anderen Rechner gespeichert. dd hat im einfachsten Fall den folgenden recht ungewöhnlichen Syntax:

dd if=<Inputfile> of=<Outputfile>

Dabei kann, getreu dem Unix-Motto „Alles ist eine Datei”, das Inputfile sowohl eine reguläre Datei als auch eine Gerätedatei sein. Ein Dump von sda1 nach ~/dumpfile kann also mit der Ausführung als:

dd if=/dev/sda1 of=~/dumpfile

Weiterlesen

Upgrade Debian Buster (10) nach Debian Bullseye (11)

Blick in ein Rechenzentrum mit Serverschränken

Nachdem ich eine Weile damit gewartet habe den Server von Buster (oldstable) zum aktuellen Debian-Release (stable) upzugraden habe ich das jetzt die Tage gemacht. Wie bei Debian üblich war das Upgrade wieder einmal erstaunlich problemlos. Ich hatte einen kleinen Fehler in der Konfiguration von Dovecot zu suchen der seltsamerweise vorher nicht aufgefallen ist. Nun hier der Workflow für das Upgrade von Buster nach Bullseye.

Eine einfache Regel vor einem Releasewechsel ist: „Better is you have a backup“!

Zunächst muss man die Buster-Installation auf den neusten Stand bringen – ich sehe eigentlich zu das mein Server immer auf dem neusten Stand ist.

# apt-get update && apt-get dist-upgrade && apt-get autoremove

Weiterlesen

Kernelsources unter Proxmox VE installieren

Symbolisiertes Terminal

Wenn man unter Proxmox VE die Kernelsources braucht, z.B. wenn man bestimmte Hardware über ein Kernelmodul betreibt, dann kann man die nicht installieren wie unter Debian üblich sondern Proxmox benutzt hier ein abweichendes Format in seinen Repositorien. Wenn man dann ein Systemupdate macht dann meldet apt dieses mit:

run-parts: executing /etc/kernel/postinst.d/dkms 5.13.19-6-pve /boot/vmlinuz-5.13.19-6-pve 
dkms: running auto installation service for kernel 5.13.19-6-pve:Error! Your kernel headers for ker
nel 5.13.19-6-pve cannot be found. 
Please install the linux-headers-5.13.19-6-pve package

Die Frage ist nun wie installiert man mit Proxmox Repositorien die Kernelsources? Das ist eigentlich ganz einfach wenn man die Benennung von diesen in der Proxmox-Welt kennt:

aptitude install pve-headers-`uname -r`

Discord unter Debian Bullseye (11) installieren

Discord ist ein Onlinedienst für Instant Messaging, Chat, Sprach- und Videokonferenzen. Discord ist eine propritäre Software und kann daher nicht Bestandteil der Debian-Pakete sein. Wenn man das aktuelle Discord-Debianpaket vom Discord-Server manuell herunter lädt und versucht es manuell mit dpkg -i discord-0.0.16.deb zu installieren dann hat man ein unlösbares Abhängigkeitsproblem.

# dpkg -i discord-0.0.16.deb  
(Lese Datenbank ... 248892 Dateien und Verzeichnisse sind derzeit installiert.) 
Vorbereitung zum Entpacken von discord-0.0.16.deb ... 
Entpacken von discord (0.0.16) über (0.0.16) ... 
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von discord: 
discord hängt ab von libappindicator1; aber: 
 Paket libappindicator1 ist nicht installiert. 

dpkg: Fehler beim Bearbeiten des Paketes discord (--install): 
Abhängigkeitsprobleme - verbleibt unkonfiguriert 
Trigger für desktop-file-utils (0.26-1) werden verarbeitet ... 
Trigger für mailcap (3.69) werden verarbeitet ... 
Fehler traten auf beim Bearbeiten von: 
discord

Weiterlesen

Ein Prozess blockiert das Aushängen eines Datenträger (II) – fuser

Symbolisiertes Terminal

Im ersten Teil wurden Prozesse identifiziert die das Aushängen eines Datenträgers verhindern aber wir haben immer noch keinen Zustand in dem ein Datenträger ausgehängt werden kann. Natürlich kann man ein z.B. evtl. offenes Office-Dokument abspeichern und das Officeprogramm beenden und das empfiehlt sich auch wenn man keinen Datenverlust riskieren möchte. Aber man kann auch die Prozesse hart beenden wenn kein Datenverlust droht. So ein Beispiel wäre z.B. wenn xpdf das Aushängen verhindert.:

# lsof +f -- /media/max/4335-1CEA/
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xpdf.real 23765 max cwd DIR 8,32 16384 12180 /media/max/4335-1CEA/Download
xpdf.real 23765 max 4r REG 8,32 3262888 12533 /media/max/4335-1CEA/Download/FujiFilm F20 Bedienungsanleitung

Hier ist eine PDF-Datei von xpdf geöffnet.

Ein verwandter Befehl zu lsof ist fuser. fuser kann Prozesse identifizieren die Dateien, Verzeichnisse und Sockets verwenden. Ein einfacher Aufruf würde z.B. zu so einer Ausgabe führen:

# fuser /media/max/4335-1CEA/
/media/max/4335-1CEA: 13159c 24928c 24943c

Weiterlesen

Ein Prozess blockiert das Aushängen eines Datenträger (I) – lsof

Symbolisiertes Terminal

Viele kennen das Problem, gerade bei USB-Speichergeräten, dass ein Programm oder Prozess das Aushängen eines Datenträgers verhindert denn nur ein Gerät was nicht in Benutzung ist kann auch ausgehängt werden. Dabei ist egal ob ein Dokument oder Datei offen ist oder ob man wie im anschließenden Fall nur das Verzeichnis in das es eingehängt wurde offen hat:

# umount /dev/sdb
umount: /media/max/4335-1CEA: target is busy.

Wie ermittelt man nun den Übeltäter? Dabei können wir umständlich alle offenen Programme durchgehen oder als elegantere Variante den Befehl lsof nutzten. Wie bei allen ls-Befehlen wie lsusb, lspci oder ls steht „ls“ für list und das of steht für „open file“.

Der einfachste Aufruf wäre lsof <Gerätedatei>:

# lsof /dev/sdb
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 2157 max cwd DIR 8,16 16384 1 /media/max/4335-1CEA
bash 13159 root cwd DIR 8,16 16384 1 /media/max/4335-1CEA
lsof 14979 root cwd DIR 8,16 16384 1 /media/max/4335-1CEA
lsof 14980 root cwd DIR 8,16 16384 1 /media/max/4335-1CEA

Weiterlesen

kais-universum.de