(Server, Appliances und Client)
Proxmox Cluster und HA Storage
Quellen und Links:
Beide HA Speicheranbindungen funktionieren bei Proxmox immer mit einer Downtime beim Desaster Recovery.
Die Live Migration von VM ist möglich, selbst bei lokalem Storage.
2-Node-Cluster mit ZFS
- Datacenter mit 2 Nodes + lokalen Storages (mehr als 2 Nodes -> CEPH)
- lokales File- und Block-Storage
- bessere Performance gegenüber CEPH (Zugriff lokal)
- asynchrone Verteilung auf alle Storage
- für Datenbanken nicht geeignet, besser DB-Cluster oder CEPH
- ZFS Pool muß auf beiden Storages identisch heißen -> Storage wird repliziert
rpool = lokales System
vm-pool = für VMs - VM erstellen, dann Replication einrichten (Bsp. alle 5 min)
-> Container wird in definierter Zeit repliziert
-> HA wird pro VM definiert
More (rechts) -> Manage HA -> HA aktivieren - HA wartet 2 min. (Zeit fest!) bei Serververlust
-> dann startet VM auf 2. Host
-> Downtime = 2 min. immer beim HA-Wechsel - drittes Quorum erforderlich, Mehrheit hat gültigen Storage
Quorum ist nur in Shell sichtbar (pvecm status) - Datacenter: HA zeigt Status
- HA-Gruppen: Priorität des Hostes für VM definieren
- laufende VM können live zwischen den Hosts migriert werden
- laufende CT können nicht migriert werden
Installation:
- Management-Port fest auf IP legen
- vmbr0 Config-Bridge löschen - Corosync (Cluster-Netzwerk) direkt auf ein Interface legen
2. Netzwerkkarte sinnvoll (ggf. GUI-Netz) - falls möglich Ports bündeln
- Linux Bond, Mode= LACP oder Balance - Bond für Storage ohne Switch (performanter)
- VM-LAN: Linux Bridge vmbr0 -> Port oder Bond zuweisen
(VLAN aware, keine IP) - PVE1: Join Info kopieren
- PVE2: Join Cluster
- Netzwerke wählen - PVE3 für Quorum
- Quorum auf Debian Mini-PC (apt install corosync-qdevice /em)
- physischer PBS-Server gut als Quorum geeignet
Ceph
- verteilte open source Storage Lösung (File, Block, Object-Storage)
- bessere Redundanz und Datensicherheit gegenüber ZFS
- CEPH Netzwerk Latenz darf 9ms nicht überschreiten! (10..25 Gb/s)
-> CEPH geht nicht über mehrere Standorte
-> CEPH hat vergleichsweise hohe Latenz - synchrone Verteilung auf alle Storage
- selbstheilend
- gutes Dashboard im PVE
- Update-Installation wie PVE Updates
- läuft auf Standard-Hardware, keine Hersteller-Liste
- Subscription- (mit PVE Subscription) oder NoSubscription Updates
- HDs zufügen / verschiedene HD-Größen / Hosts zufügen
- RADOS Block Device für PVE VMs
- PVE Client verhandelt mit CEPH und speichert auf einen Datenträger
CEPH synchronisiert Daten selbständig auf (min. 2) weitere Kopien - CEPH wird über PVE pro Host installiert
- eigenes, performantes Netzwerk verwenden! (25 Gb/s) - (Public Network + Cluster Network gemeinsam)
-> Full Meshed Network for 3x CEPH (=keine Switche, spart ca. 35.000,-) - CEPH Monitor für Host2 + Host3 nachinstallieren, Host1 wird automatisch installiert
- CEPH Manager für Host2 oder 3 installieren, 2x Manager genügt
- CEPH OSD = Datenträger, nur NVMe/ SSD, alle Datenträger pro Host hinzu fügen (OSD zu phys. HD dokumentieren)
- CEPH Pools anlegen, Size=3 (Anzahl der Replikate), Min.Size=2 (sonst geht CEPH down)
- CEPH / DephFS: 3x Metadaten Server pro Host erstellen
- VM: Storage Move-to: CEPH-Pool
- CEPH / OSD: Global Flags (noaut usw.) setzen für Wartung
Grundvoraussetzungen:
- min. 3 Ceph-Server
3x CEPH (immer ungerade Anzahl) Monitor für Quorum, Client-Management
CEPH Manager (Monitoring-Daten, Schnittstelle für ext. Monitoring) - min. 4x OSD (Datenträger) pro Cluster, gleiche Anzahl pro Host empfohlen
- ausschließlich Einsatz von Flash statt HDs
- Implementierung eines Monitoringsystems für Disk- und Poolauslastung
Proxmox Cluster
Cluster (ermöglicht Livemigration, Hochverfügbarkeit, gemeinsame Oberfläche)
-> Datacenter -> Cluster (Cluster erstellen, weitere Hosts beitreten)
- zentrales Management: Single web interface allows you to manage all servers in the cluster
- Voraussetzung: Nodes mit selber Version, Hosts mit gleichem CPU-Vendor erforderlich (kein Mischbetrieb AMD - Intel), neuer Host muss leer sein
- VM Live-Migration: move virtual machines between physical servers without interrupting their service (99ms).
- VM Replication: Replicate virtual machines for backup and disaster recovery purposes (nur ZFS).
- High Availability (HA): With features like shared storage or replication, you can automatically restart virtual machines on another node if one server fails.
(1 Min. Umschaltzeit, ohne zentralen Storage wird die letzte Replication-Kopie genutzt) - Cluster-wide Firewall
- ungerade Anzahl an Host erforderlich (Corosync Quorum), wichtig wenn man HA nutzt
(Lösung: zusätzliches QDevice (auf Raspberry, Backup-Server...), oder höhere Votes für einen Host festlegen) - IDs dürfen im Cluster nur einmal vorhanden sein -> hinzu gefügter Host sollte leer sein
- ZFS erforderlich (also kein RAID-Controller + LVM)
- NTP Zeit muß synchron sein
- LANs (empfohlen):
- Corosync - PVE-Cluster
- Ceph - Storage
- vmbr0 - VMs - Cluster synchronisiert /pve/ Konfigurationen
- fügt 2 oder mehr Proxmox-Hosts zu einer Oberfläche hinzu, auch ohne zentralen oder replizierten Storage (2 Instanzen bilden "Mehrheit")
- mit zentralem Storage können VM im laufenden Betrieb verschoben werden (HA, Failover)
- auch ohne zentralem Storage geht Livemigration im Cluster (entsprechend langsam), Server-Sync (Bsp. minütlich)
- dediziertes (schnelles!) Storage-Netz für ZFS Sync
- Achtung: VMs dürfen keine gleichen Namen (101) haben! Am Besten leeren Host hinzu fügen. Sync. Storage-Pools müssen gleichen Namen haben.
- Achtung: Cluster geht nur bei Hosts mit gleichem Service-Level! (Community oder Enterprise)
- https://pve.proxmox.com/wiki/Cluster_Manager
- CEPH (empfohlen) ist ein selbstheilender, sich selbst verwaltender, frei skalierbarer Speicher über mehrere Geräte hinweg (Open Source Software)
- min. 3 Server
- min. 4 Datenträger je Server
- dediziertes Storage-LAN (min. 25 Gb/s bei NVMe)
Nodes im Cluster teilen sich über Corosync eine gemeinsame Konfiguration im pmxfs.
Sie benötigen ein Quorum und reagieren empfindlich auf Netzwerklatenzen.
Deshalb läuft ein Cluster üblicherweise nur an einem räumlich begrenzten Standort.
ohne Cluster
Proxmox Remote Migration
- Migration von VM oder LXC von einem Host auf einen anderen über das Netzwerk
- kein Cluster erforderlich, verteilte Standorte und getrennte Systeme möglich
- Berechtigung über API-Token
- Anleitung: https://www.thomas-krenn.com/de/wiki/Proxmox_Remote_Migration?xtxsearchselecthit=1
Proxmox Datacenter Server (PDM v.1.1)
- Verwaltung von mehreren Proxmox VE oder PBS-Servern und Cluster
- Server müssen nicht im selben Cluster sein, lose Kopplung der autarken Cluster
- Migration von VMs zwischen Clustern über GUI (wenn die CPU-Typen der Hosts kompatibel sind)
- kein Loadbalancing oder DRS
- zentrales Ceph Monitoring
- clusterübergreifende VM-Verwaltung
- zentrale Snapshot-Verwaltung
- zentrales Update-Management
- Vertrauensstellung wird durch API mit Fingerprint hergestellt (PVE: Zertifikate -> pve-ssl.pem)
- zentrale Rolle erfordert strikte Security-Einstellungen (2FA, Management-VLAN..)
Linux Distributionen und Basics
Linux Mint
- eigenständige Distribution, aufbauend aus Debian und Ubuntu (LTS)
- konservativer Systemunterbau, stabil und wartungsarm
- einsteigerfreundlich, Windows-ähnliches Layout, geringe Lernkurve
- schlank und schnell auch auf alter Hardware
- mit Cinnamon (Mint Default), MATE oder Xfce stehen drei verschiedene Desktopumgebungen zur Verfügung
- Cinnamon ist anpassungsfähiger als Ubuntu GNOME
- aktualisiert sich jeweils aus Ubuntu LTS, nutzt aber kein SNAP und ergänzt die Distribution mit Codecs, Java usw.
- nutzt die Ubuntu Paketquellen + eine Eigene
- teilweise proprietäre Betriebssystembestandteile
- ein zweiter, separater Zweig "Linux Mint Debian Edition" nutzt die original Debian Quellen
- Tool WebApps: Webseiten können auf Desktop angepinnt werden und starten in eigenem Fenster ohne Adressleiste
- vollständige Multimedia-Unterstützung incl. Codecs
- Softwaremanager besser als bei Ubuntu
Flatpak (Mint und Ubuntu) - frei, meist Community
Snap (Ubuntu) - vor allem große Softwareanbieter - Installation von .DEB Dateien
- 5 Jahre Langzeitsupport
- Linux Mint wird von der Community entwickelt, Ubuntu von Canonical (einem kommerziellen Unternehmen)
- Ubuntu bietet kostenpflichtigen Business-Support, Mint Community Support
Linux Ubuntu
- kommerzieller Hersteller Canonical
- Debian-basierend, LTS-Versionen alle 2 Jahre, 5 Jahre oder mehr Support
- stabil, geht inzwischen viele Sonderwege, dass es oft nicht mehr empfohlen wird
- Ubuntu Pro Abo (für Privat bis 5 PCs kostenlos) bis 10 Jahre Sicherheitsupdates
- setzt vorrangig auf proprietäre 'Snap' Paketverteilung
- Gnome Desktop unter Wayland
- Cinnamon Desktop unter Ubuntu inst: sudo apt install cinnamon-desktop-environment
- eigenes Softwarecenter: App Center (kein Open Source) zeigt nur Snap (andere Softwareverteilungen nur über Shell)
- RDP Zugriff standardmäßig
- Wireguard mit GUI
Linux Fedora Workstation
- schön, neu, für experimentierfreudige Nutzer
- extrem reduzierte Gnome Shell, nicht Windows-ähnlich
- Virtualisierungssoftware "Boxen" vorinstalliert, beispielsweise für Windows-VM
- moderne Wayland Architektur
- Updates und Store: Gnome Software
- integriert nur patentfreie Software, das erschwert Installation von Codecs, Grafiktreibern usw.
- eine der führenden Distributionen, Hauptsponsor ist Red Hat
- halbjährlich neue Version mit 9 Monaten Support
- verschiedene Editions für Server, Workstation, IoT, Cloud usw.
- ct Distibutionen Auswahlhilfe
Softwareverteilung, Softwarekatalog
- FlatHub/FlatPak
- Flathub ist distributionsübergreifender Standardkatalog (ausser Ubuntu)
Flathub in Ubuntu installieren: https://flathub.org/de/setup/Ubuntu
- enthält Open-Source-Apps und proprietäre Anwendungen wie Discord, Zoom, Spotify
- verteilt immer die aktuellste Version unabhängig von der Linux-Distribution
- jede Runtime enthält alle benötigten Bibliotheken
- Apps sind gekapselt und haben im Idealfall keinen direkten Zugriff auf System oder andere Apps (Sandboxing)
- Berechtigungen werden bei der Installation festgelegt (mit App Flatseal können die Berechtigungen manuell angepasst werden)
- neue und alte Versionen kollidieren nicht
- doppelte Ressourcen werden nur einmal gespeichert (Deduplication), trotzdem ressourcenhungrig und etwas langsamer beim Start - AppImage
- alternatives, distributionsübergreifendes Format, nicht so verbreitet wie FlatHub
- Images enthalten alle benötigten Bibliotheken und können ohne Installation gestartet werden (Ausführen erlauben)
- es können mehrere Versionen des selben Programmes "installiert" sein
- keine automatische Integration in das System
- keine automatischen Updates - Snap
- proprietärer, kommerzieller App-Store von Canonical
- Default für Ubuntu, nutzbar für viele andere Distributionen
- Softwareprojekte wie Firefox, Libre Office.. können die Wartung der Pakete selbst übernehmen
(oft ist Snap aber ungepflegeter als FlatPak)
- verwaltet von Dienst snapd, Kommandozeilenbefehl snap
- technisch vergleichbar mit AppImage oder FlatPak
- es können mehrere Versionen des selben Programmes installiert sein
- gespeichert in /var/lib/snapd/snaps
- Sandbox/Berechtigungen werden mit AppArmor verwaltet - RPM
- klassisches Paketformat von Fedora - klassische DEB Paketverwaltung
- oft für Server verwendet, Zugriff über Repositories der jeweiligen Distribution - fremde Paketquellen (PPA)
- klassisches Repository der jeweiligen Software - ausführbare Binärdatei
- letzte zu wählende Installationsmethode
- keine automatischen Updates
Terminal / Shell / Konsole öffnen mit [STRG] + [ALT] + [T]
Konsole als ROOT dauerhaft öffnen: sudo -i
ROOT-Konsole wieder verlassen: exit
Nur ein Administrator kann 'sudo' ausführen.
User "root" hat unter Ubuntu per Default kein Passwort.
Interaktive Anmeldung als root ist nicht empfohlen.
User (mit Home) erstellen: sudo useradd -m uwe
Passwort festlegen: sudo passwd uwe
User wechseln: su uwe
Falls root ein Passwort hat, zu root wechseln: su (ohne root)
Befehl als 'root' ausführen: sudo touch /etc/test
Befehl als 'benutzer' ausführen: sudo benutzer touch /etc/test (ergibt Fehler)
Konsolenkommandos
Systemupdate
sudo apt(-get) update
sudo apt(-get) upgrade
sudo reboot
sudo apt(-get) -y dist-upgrade
sudo apt(-get) -F install - repariert beschädigte Pakete
sudo pro config set apt_news=false (Werbung für Ubuntu Pro deaktivieren)
sudo do-release-upgrade - Release-Upgrade
automatische Updates
* sudo apt install unattended-upgrades - automatische Sicherheitsupdates installieren (Debian)
* cronjob mit allen Updates erstellen (update / upgrade / dist-upgrade / autoremove)
Systembereinigung
sudo apt-get autoremove - entfernt veraltete Kernel und Hilfspakete
sudo apt-get autoclean - entfernt veraltete DEB-Dateien aus der Paketquelle /var/cache/apt/archives/
sudo apt-get clean - entfernt alle DEB-Dateien aus der Paketquelle /var/cache/apt/archives/
Allgemein
lsb_release -a - zeigt Ubuntu Version
cat /ect/os-release - zeigt Linux OS Release
ls - wie dir,
ls -sh (zeigt Liste),
ls -l (Langform mit Berechtigungen, Anzahl Dateien im Verzeichnis, 1=Datei, Besitzer, Gruppe, Bytes, Datum, Name),
ls -a (zeigt auch versteckte Files) -> ls -all
man -k <Stichwort> - zeigt alle Befehle zu einem Stichwort
nano (dateiname> - Editor (Kopieren: ALT-6, Einfügen: Strg-U)
pwd - zeigt aktuellen Datei-Pfad
ps -edaf -> listet laufende Prozesse mit ihrer ID
kill (ID) -> beendet Prozess mit ID siehe ps .edaf
top - zeigt Taskmanager (Auslastung CPU, Speicher, Swap, Prozesse)
whoami - zeigt aktuellen Benutzer
tail -f /var/log/*.log - zeigt alle System-Logs
tail -f /var/log/syslog - zeigt Syslog live
crontab -l - listet alle Cronjobs des Benutzers auf
sudo dpg-reconfigure locales - Konfigurationsscript für Spracheinstellung Ubuntu / Debian
Festplatte
df -h - zeigt freien Speicherplatz der Festplatte (disk free)
du -shc * - zeigt alle Verzeichnisgrößen im aktuellen Verzeichnis incl. Summe
lsblk - listet alle Datenträger und Block Storages auf
gparted - Partition Editor, GUI, auch aus Live-System
cd -L <Verzeichnis> - Wechsel in logisches Verzeichnis (Standard)
cd -P <Verzeichnis> - Wechsel in physisches Verzeichnis (Bsp: cd -P /bin, cd -P /home)
cp [Optionen] Quelle Ziel - copy
mv [Optionen] Quelle Ziel - move
rm -r * - löscht aktuelles Verzeichnis incl. Unterverzeichnisse (recursiv)
find / -iname "datei.log" - sucht Datei (groß oder klein geschrieben) in allen Verzeichnissen
Partiton vergrößern:
- physische HD vergrößern
- lsblk - listet aktuelle Struktur
- growpart /dev/sda 3 - (mit Leerzeichen) vergrößert das angegebene Vol. auf die freie Größe (growpart installieren)
- resize2fs -p /dev/sda3 - (ohne Leerzeichen) Dateisystem anpassen
siehe Linux Filesystem
Neue Festplatte einbinden:
- cfdisk /dev/sdb - Partition erstellen
- Festplattenmanager GUI: Partition formatieren
- Festplattenmanager: HD beim Systemstart einhängen, Einhängepunkt festlegen
oder: mount /dev/sdb1 /mnt/hd1, dauerhaft in /etc/fstab
Dateiberechtigungen
cut -d: -f1 /etc/passwd - alle User im System anzeigen
cat /etc/group - alle Gruppen anzeigenid {Benutzer} - zeigt alle Gruppen eines Benutzers
Ubuntu: Standardmäßig hat ein User im eigenen Home-Verzeichnis Vollzugriff und in anderen User-Verzeichnissen Lesezugriff.
Linux vererbt grundsätzlich nichts.
Rechte rekursiv setzen: chmod -R u+rwX,g+rX,o+rX /verzeichnis (User:rwx, Gruppe: rX, other: rx)
• chown - ändert Besitzer
• chgrp - ändert die Gruppe
• chmod - ändert die Berechtigungen
• chattr - ändert Dateiattribute auf ext - Filesystemen

Zeichen: Directory (d) oder Datei (-)
2.-4. Zeichen: rwx - User (u)
5.-7. Zeichen: rwx - Group (g)
8.-10. Zeichen: rwx - Other (o)
• rwx - read / write / execute-search
Execute bei Ordnern bedeutet: Recht zum Ordner öffnen
• Berchtigung ändern: chmod u=rwx, g=rw, o=r testfile.txt
oder: read=4, write=2, execute=1 -> alle Rechte= 7
ergibt: chmod 754 testfile.txt
• Benutzer + Gruppe ändern:
chown -R www-data:www-data /var/www/wordpress
(weist dem /wordpress -Verzeichnis recursiv(-R) den Besitzer + Gruppe "www-data" zu)
Dateimanager Nautilus mit Root-Rechten nutzen: nautilus-admin installieren
sudo apt-get install nautilus-admin
Nach Neustart gibt es "Als Systemverwalter ausführen" im Kontextmenue.
Terminal-Dateimanager MC (Midnight Commander, ähnlich Norton Commander)
apt install mc - Aufruf mit 'mc' im Terminal
(System)festplatte verschlüsseln
1) Systemverschlüsselung mit Cryptsetup/Luks:
- geht nur, wenn kein Multi-Boot mit anderem OS verwendet wird
- nicht geeignet für Server, die unbeaufsichtigt starten (Passworteingabe erforderlich)
- Systempasswort, ist für alle User gleich
• beim Installationsvorgang: Festplatte löschen und Ubuntu installieren -> Erweiterte Funktionen zur Verschlüsselung der Festplatte
• LVM verwenden
• neue Installation verschlüsseln -> "Sicherheitsschlüssel" wird bei jedem Start verlangt
2) ab Ubuntu 23.10: experimentelle TPM-Unterstützung
• beim Installationsvorgang: Festplatte löschen und Ubuntu installieren -> Erweiterte Funktionen -> Enable Hardware-Backed Full Disk Encryption
• Schlüssel wird im TPM abgelegt und muß nicht bei jedem Boot eingegeben werden (wie Bitlocker)
3) Cryptsetup installieren, HD nachträglich verschlüsseln
• im Festplattenmanager können nun beliebige Festplatten oder USB-Stick verschlüsselt neu formatiert werden
• Schlüssel kann im System-Schlüsselbund/Brieftasche gespeichert werden
SSH-Zugriff aktivieren
• ggf. feste IP einrichten
• sudo systemctl status ssh - läuft SSH?
• sudo apt install openssh-server -> SSH (Server) installieren
• sudo systemctl status ssh -> wie oben, Status überprüfen, hilfreich bei Anmeldefehlern
• sudo systemctl enable ssh -> Dienststart automatisch
• sudo systemctl start ssh -> Dienst manuell starten
• sudo ufw allow ssh -> Firewall für SSh öffnen
• sudo nano /etc/ssh/sshd_config -> sshd_config anpassen
- (LoginGraceTime 200)
- PermitRootLogin yes - erlaube Root-Login
- StrictModes yes
- Port xyz - ggf. eigenen Port definieren
• /etc/init.d/ssh restart -> Dienst neu starten
SSH-Zugriff:
• ssh root@192.168.178.50 (Windows oder Linux)
Linux merkt sich die Fingerprints jeder SSH-Verbindung.
Befindet sich unter einer schon bekannten IP ein neues, unbekanntes Gerät, schlägt die SSH-Verbindung fehl!
Abhilfe: Verzeichnis .ssh enthält 'known_hosts'. In dieser Datei Eintrag mit der o.g. IP-Adresse löschen.
Ubuntu remote bedienen:
Einstellungen -> Freigabe -> Bildschirmfreigabe aktivieren, VNC-Protokoll aktivieren, Fernsteuerung erlauben
Damit die Remote Anmeldung ohne Bestätigung vom Ubuntu-Desktop funktioniert, diese Einstellung ändern.
Achtung! Ubuntu legt für die RDP-Verbindung ein eigenes Passwort fest!
Bug in Ubuntiu 20: das Kennwort ändert sich bei jeder Anmeldung.
Lösung:
XRDP installieren.
apt update apt install xrdp
apt install xorgxrdp
sudo systemctl start xrdp // Start und Eable XRDP-Service sudo systemctl enable xrdp systemctl status xrdp // Check Status sudo ufw allow from any to any port 3389 proto tcp // open Port in Firewall
Wichtig: Die RDP-Anmeldung funktioniert nur, wenn der Nutzer lokal abgemeldet ist!
Teamviewer Host in Shell installieren
- wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
- sudo apt install ./teamviewer_amd64. deb
- teamviewer info
- teamviewer passwd xxxgeheimxxx
- teamviewer setup
Verzeichnisstruktur
- bin - Binärdateien, Programme
- dev - Devices (Tastatur, Maus, Festplatte)
- etc - Konfigurationsdateien
- home - vergl. "Users" unter Windows
- lib - Codebibliotheken, die sich andere Programme teilen
- media - für Automounter (USB-Sticks..), Verzeichnisse werden unter Gnome auch auf dem Desktop angezeigt
- mnt - als Mountpoint für HDs
- sbin - Systemdateien
- tmp - Temporäre Dateien
- usr - Programmtools und Bibliotheken
- usr/local - für eigenes Zeug
- usr/local/bin - für eigene, systemweite Scripts
- var - vom System verwendete Dateien
E-Mail / SendMail
Ubuntu hat per Default keinen Mailserver / MTA (Mail Transfer Agent) installiert.
• Unix E-Mail Postausgang Warteschlange: /var/spool/mqueue oder /var/mqueue
• Unix E-Mail Posteingang: /var/spool/mail/ (eine Datei je E-Mail)
- Nullmailer (am Beispiel CheckMK) Benachrichtigungen mit CheckMK 1.6 via E-Mail versenden - YouTube
Log: /var/log/mail.log - SSMTP zum Senden per SMTP Einfache sendmail Konfiguration auf UBUNTU | Gloski Consulting
- SendMail Verwendung und allgemeine Konfiguration von Sendmail unter Linux (linux-praxis.de)
Config: /etc/sendmail.cf
Shortcut erstellen (Programm, Webseite o.a.)
Ubuntu / Snap Installed Pakete
- /var/lib/snapd/desktop/applications/ - enthält die Verknüpfungen aller Snap installierten Pakete (*.desktop)
- /usr/share/applications/ - sonstige Verknüpfungen (*.desktop)
- copy & paste auf Desktop
- Rechtsklick: Start erlauben
- fertig
Ubuntu manuell
- "Name.desktop" Datei auf User-Schreibtisch erstellen
(nano Name.desktop) - Bsp: WEB-Link
[Desktop Entry]
Version=1.0
Name=Testlink Google
Type= Application
Exec=firefox https://www.google.com/search?q=uwe-kernchen.de&ie=UTF-8
Icon=text-html
(oder) Icon=/snap/firefox/current/default256.png - Bsp: Programm
[Desktop Entry] Version=x.y Name=ProgramName Comment=This is my comment Exec=/home/alex/Documents/exec.sh Icon=/home/alex/Pictures/icon.png Terminal=false Type=Application Categories=Utility;Application;
- Dateieigenschaften: Ausführen als Programm (chmod 755)
- Rechtsklick auf Verknüpfung: "Start erlauben"
- Wenn alles passt, wird der Link mit dem im Desktop Entry definierten Name angezeigt, nicht mit "Name.desktop".
- Chrome kann mit "Speichere als Shortcut" selber *.desktop Datei unter "Anwendungen" erstellen
- Lösung2 (Meta Refresh):
- erstelle Name.html auf User-Desktop
- Inhalt:
<html> <head> <meta http-equiv="refresh" content="0; url=https://askubuntu.com" /> </head> <body> </body> </html>
RSYNC
Beispiel:
- kopiert Unterverzeichnisse, Rechte, Zeit, Gruppenrechte, Besitzrechte (bei root), Human readable
- mit Logfile
- mit Status am Ende des Logfiles
- exclude = Ausschluß
- delete = löscht fehlende Dateien am Ziel
rsync -rptgoh -stats (--exclude='Temp/') (--delete) --log-file=logfile.log [Quelle/] [Ziel]
Ubuntu Recovery
- beim Booten SHIFT oder ESC drücken führt zum GRUB Boot-Menue, "Erweiterete Optionen" wählen
(Systemübersicht mit HD-Nutzung, Pakete reparieren, Dateisystem prüfen, Root Shell) - Quellen: https://wiki.ubuntuusers.de/Recovery-Modus/
Multiboot Linux-Windows erzeugt falsche Uhrzeit
• Lösung1: Windows Zeit auf "TimeZoneIsUniversal" setzen "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation", DWORD (32-Bit) Name „RealTimeIsUniversal“ - Wert= 1
• Lösung2: Linux Zeit auf "Lokale Zeit" setzen,
im Terminal: sudo timedatectl set-local-rtc 1 --adjust-system-clock
Systemzeit in Hardware-Uhr übertragen: sudo hwclock -w
Server sicher machen, wichtige Befehle: CT 13/2016 S. 124ff.
- Prozessliste: ps ax | grep -v " \[.*\]"
- Verbindungsliste von außen: lsof -i 4 -n
- Liste aller geöffneten Dateien: lsof +L1
- System Syslog: /var/log/syslog
Linux serielles Terminal
- sudo dmesg | grep tty - zeigt alle seriellen Geräte + Namen
Linux Debian
- freies Betriebssystem des Debian-Projektes
- Basis für viele andere Forks (Ubuntu, Mint, Proxmox..)
- "Fels in der Brandung", grundsolide, langsamer bei neuen Komponenten
- etwa alle 2 Jahre erscheint eine neue Stable Version
- LTS-Support 3 bis 5 Jahre
- 32-bit (i386) Unterstützung bei Bedarf nachinstallieren
- eigene Paketverwaltung dpkg und deren Frontend APT
- Drucker: CUPS = lokale Drucker mit automatischer Erkennung (http://localhost:631/)
- Cinnamon GUI ist (auch bei Ubuntu) spürbar langsamer
- Cinnamon (Software Rendering) ist schnell, hängt aber bei meinem Debian
- Cinnamon mit Wayland (Experimental) - ist schnell, übernimmt aber die deutsche Tastatureinstellungen nicht - Cinnamon Desktop nachinstallieren:
sudo apt install cinnamon-desktop-environment - GNOME - ist spürbar schneller, aber erst mit Extensions chick
- sudo apt install gnome-shell-extension-manager
- öffne es -> "Erweiterungs-Manager"
- suche nach - "Add to Desktop" und "Desktop Icons NG"
- "ArcMenu" - Startmenue oben li.
- "Blur my Shell" - Taskpanel wird halbtransparent
- "Dash to Dock" - Dockingleiste unten (ähnlich wie Ubuntu) oder "Dash to Panel" (ähnlich Windows)
- System Monitor (naimur) - alle wichtigen Infos in der Taskbar, bei Mouseover mehr
Quellen und Links:
- UK: Linux Software für Desktop
- UK: Linux Filesystem
- UK: Samba, SMB, NFS
- UK: journald Logging
- UK: CronJobs
- Ubunutu Pro Werbung ausschalten
- UK: Linux administrieren
- UK: Linux Bash Script
- UK: Linux Mail
- UK: Linux KVM Virtualisierung
- Links: ct.de/ynhu
ifconfig - (wie Windows IPCONFIG) zeigt Namen der Netzwerkkarten, ausgehandelte Geschwindigkeit und IP-Parameter (apt install net-tools)
ip a - (neu, wie IPConfig) - listet alle Netzwerkadapter + Parameter auf
ip r - (wie ROUTE PRINT, siehe unten)
inxi -i - gibt WAN-IP aus
hostname -I - zeigt nur IP (mit Boardmitteln)
ping [webseite.com]
traceroute [dns/ip] - (sudo apt install traceroute)
nslookup [webseite.com]
curl -v [webseite.com] - gibt http-Inhalt und Zertifikat zurück
"route -n" oder "netstat -r" - zeigt Routingtabelle, Route ADD / DEL route... (ggf. nachinstallieren)
tcpdump -i eth0 port 443 - Paketsniffer (oft vorinstalliert), gibt Datendump aller Verbindungen von Netzwerkkaqrte und Port (apt install tcpdump)
tcpdump -i eth0 - zeigt allen Traffic auf eth0
sudo nano /etc/netplan/00-installer-config.yaml - IP-Adresse konfigurieren mit Netplan per Terminal
sudo nano /etc/netplan/01-netcfg.yaml (Verzeichis nicht sichtbar!)
iftop - Netzwerktool, analysiert Traffic, Ports, DNS und Bandbreite (sudo apt install iftop), Aufruf: sudo iftop
nmap Portscanner für alle OS siehe UK: Windows Tools
Netzwerkkarte(n) konfigurieren:
- ip a - Name der Netzwerkkarten ermitteln (Bsp. enp3s0)
- sudo nano /etc/network/interfaces - funktioniert viel besser als die GUI
- DHCP:
auto enp3s0
iface enp3s0 inet dhcp - feste IP:
auto enp3s0
iface enp3s0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1 - DNS: /etc/resolv.conf
nameserver 192.168.1.1
Routing:
- ip route show (ip r)
- sudo ip route add 192.168.2.0/24 via 10.0.0.1 - Route ADD (temporär bis zum Reboot!)
- sudo ip route del 192.168.2.0/24 - Route DEL
- sudo ip route add default via [Gateway-IP] - Default Gateway
- Route dauerhaft in /etc/network/interfaces eintragen
zum jeweiligen Interface:up ip route add 192.168.2.0/24 via 192.168.1.1[dev enp3s0]
Linux Software für Desktop-Installation
Quellen und Links:
Software, die nicht fehlen sollte:
Browser:
- Firefox Browser (+Ghostery) und Thunderbird Mailclient
- ggf. Chrome Browser
RDP:
- UK: Devolutions Remote Desktop Manager (RDP, SSH, VNC, VMWare, Hyper-V, Telnet, FTP, Powershell, Anydesk, Teamviewer, HTTP/S, SNMP)
- Remmina - (RDP, SSH, Spice, VNC, X2Go, HTTP/S)
- Gnome Verbindungen - minimalistische RDP-Anwendung für Gnome, Zugriff per RDP und VNC, läuft teilweise besser als alle Anderen
Terminal: /usr/bin/gnome-connections
Office-Suiten:
- Libre Office - meist vorinstalliert, OpenSource, leistungsstark
- OnlyOffice - OpenSource, sehr moderne Suite, kein Datenbank-Modul
Grafik:
- Grafik siehe auch "UK: Grafikprogramme" (Gimp, Inkscape)
- GwenView oder gThumb - Bildbetrachter und Fotogalerie
gThumb: (sudo apt install gthumb) - Darktable - beste kostenlose Alternative zu Adobe Lightroom (RAW-Formate, Lcihttisch, nicht-destrukive Bearbeitung, mit Bibliotheksdatenbank und XMP-Datei)
sudo apt install darktable
Videobearbeitung:
- OpenShot - OpenSource, nichtlineare Video-Bearbeitungs-Software für die Betriebssysteme Windows, macOS und Linux
unbegrenzt viele Spuren, Blender 3.3 kompatibel - Freetube - Abspielen/Download von Youtube-Videos
Audio:
- Audacity - universeller Audio-Editor
- Ardor - professionelle Mehrspur Audio-/Midi-Workstation ab 1 USD
PlugIns: AudioUnit, LV2, VST (v2 & v3) and LADSPA formats. FX plugins. Software instruments. MIDI processors. Automate any parameters. - Clementine - Audio-CDs rippen
- VLC Mediaplayer
- Kodi Mediacenter - openSource Mediacenter, viele Decoder und PlugIns
Netzwerk:
- Angry IP Scanner - IP- und Portscanner, Open Source
- Little Snitch - Personal Firewall und Netzwerkonitor (free to use)
Utils/Sonstige:
- PDF Drucker (apt install printer-driver-cups-pdf)
- KeepassXC (offiziell, Software-Distribution), Keepass2 (inoffiziell, Synaptic) - Passwort-Manager
- Signal Messenger (Synaptic)
- Midnight Commander MC - Terminal Dateimanager wie NC (sudo apt install mc)
- Flameshot - Sniping-Tool, Screenshot mit umfangreichen Bearbeiten-Funktionen (Software-Distribution)
- MS Visual Studi Code - Programmieren
- PDF Arranger - PDFs zusammenführen, aufteilen sowie deren Seiten rotieren, ausschneiden oder umsortieren
- FileZilla - S/FTP Filetransfer
- ClamAV - Virenscanner für E-Mail u.a.
- Fastfetch - umfangreiche Systeminformationen im Terminal (sudo apt install fastfetch)
- Btop++ - System- und Prozessmonitor (sudo apt install btop)
- Okular (im Softwarestore) - universeller Documentviewer, PDF, ePub, Bildformate
- balenaEtcher - ISO auf USB brennen (RUFUS-Ersatz)
- WoeUSB - Windows Boot-Stick unter Linux erstellen
- K3B - Brennen von CD-ROMs & Audio-CD's
- Turbo-Print - kostenpflichtig, aber Druckertreiber mit großem Funktionsumfang
- UK: Backup Software
Virtualisierer mit Qemu und KVM (für die letzte Windows App)
- WinBoat - sehr einfach zu installieren, reicht Verzeichnis, Zwischenablage, USB durch
- KVM - volle KVM/Qemo-Virtualisierung, Verwaltung mehrerer VMs
-> siehe UK: Linux KVM
5 Wege zur Softwareinstallation: https://www.tutonaut.de/5-wege-zur-softwareinstallation-unter-linux/
Linux journald
- "journald" ist der Logging-Dienst von SYSTEMD
- speichert in allen gängigen Linux Distributionen alle System- und Anwendungsprotokolle inclusive diverse Metadaten (Zeit, medendes Programm + Prozess-ID)
- indexierte Datenbank in /var/log/journal mit Rotation und Kompression
- journalctl -e --no-pager - liest Rournal, nur letzte 1000 Datensätze, Ausgabe direkt im Terminal
- Filterung nach Bootvorgang: journalctl -e --no-pager -b -0
0: aktueller Boot
1: letzer Boot
2: vorletzter Boot
das geht so weit das Journal zurück reicht - journalctl --list-boots - zeigt alle Boot Start- und Endzeiten
- journalctl -<..> -n 30 - zeigt die letzten 30 Treffer
- journalctl -<..> --since "2026-04-01 06:00" --until "2026-04-01 07:00" - zeigt die Treffer dieses Zeitraums
- journalctl -u NetworkManager -n 25 - zeigt nur Einträge des Network Manager
- journalctl --grep '192.168.99.55' -n 25 - zeigt nur Einträge mit dem gesuchten Inhalt
- journalctl - p 1 -n 25 - zeigt nur Einträge Priorität =3 (es geht auch -p 1..3)
0: Emergency - System ist unbenutzbar
1: alert - sofortiges Handeln erforderlich
2: crit - kritischer Zustand
3: err - Fehler
4: warnung
5: notice
6: info
7: debug - journalctl --output verbose - zeigt Langform mit allen Datenfeldern
Linux KVM Virtualisierungstechnologie
Quellen und Links:
- UK: wichtige Befehle (Linux/Proxmox/ZFS)
- UK: Proxmox PVE Server
- https://www.redhat.com/de/topics/virtualization/what-is-KVM
- KVM Management Tools: https://www.linux-kvm.org/page/Management_Tools
- KVM Community: https://www.linux-kvm.org/page/Main_Page
- Windows in KVM: https://www.makeuseof.com/create-windows-virtual-machine-in-linux-with-kvm/
- Anleitung dt.: https://docs.linuxmuster.net/en/stable/appendix/install-on-kvm/index.html
- https://docs.linuxfabrik.ch/software/kvm.html
- Hot-Backup mit virtnbdbackup utility for libvirt: https://github.com/abbbi/virtnbdbackup
- VMWare in Proxmox konvertieren (vor Proxmox 8.2): https://pve.proxmox.com/wiki/Migrate_to_Proxmox_VE#Migration
KVM/Qemu-Virtualisierung
Volle KVM/Qemu-Virtualisierung, Verwaltung mehrerer VMs
- egrep -c '(vmx|svm)' /proc/cpuinfo - Virtualisierung verfügbar? muss "0" ergeben
- sudo apt install qemu-kvm qemu-system qemu-utils python3 python3-pip libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-manager -y - Qemu installieren
- sudo systemctl status libvirtd.service - Dienst überprüfen
- sudo virsh net-start default - virt. Netzwerk zuweisen
- sudo virsh net-autostart default - Autostart
- sudo virsh net-list --all - Status prüfen
- virt-manager - startet Virtualisierungs-Manager GUI
- Quelle und alle Schritte: https://christitus.com/vm-setup-in-linux/
WinBoat
- Electron-App, nutzt KVM und Containervirtualisierung unter Linux
- guter Assistent führt per GUI durch alle Installations-Schritte
- Programm lädt und installiert auf Wunsch automatisch das Gast-(Windows)-OS per Dockur
- Anwendungen lassen sich einzeln per RDP aus dem Wirtsystem aufrufen und fühlen sich wie nativ in Linux installiert an
- Windows läuft als VM innerhalb eines Docker-Containers und kommuniziert mit dem Anwender über Winboat Guest Server per FreeRDP
- Dateisystem-Integration über durchgereichtes Verzeichnis in Netzwerkumgebung und Drag & Drop
- Windows-VM läuft auch im Browser (http://127.0.0.1:8006), aber RDP ist flüssiger
- Netzwerk ist per Default zum LAN gekapselt, hat aber Internetzugriff
- USB Passthrough (Beta) funktioniert super
Kernel-Based Virtual Machine (KVM) ist eine Open Source-Virtualisierungstechnologie, die im Linux® Kernel integriert ist.
Diese Technologie wird unter anderem genutzt bei:
- UK: Proxmox VE
- WinBoat (siehe unten)
- Linux onboard (siehe unten)
Voraussetzung: Hardware-Virtualisierungs-Unterstützung durch die CPU.
Linux entscheidet sich wegen schlechter Performance gegen Spectre-Schutz
Eine Schutzfunktion im Linux-Kernel sollte vor der Hardware-Lücke Spectre-V2 schützen, hat wohl aber mitunter zu starken Einfluss auf die Rechengeschwindigkeit.
In Benchmarks einiger Beobachter, etwa beim Linux-Hardware-Portal Phoronix, ist von 40 bis 50 Prozent Leistungsverlust die Rede, wie immer bei Meltdown- und Spectre-Patches kommt dies allerdings sehr stark auf die Art der Arbeit an, mit der die CPU beschäftigt wird.
Auch hier ist der Schutz also optional und keineswegs durchgehend.
