Linux Betriebssysteme
(Server, Appliances und Client)

Linux KVM

Kernel-Based Virtual Machine (KVM) ist eine Open Source-Virtualisierungstechnologie, die im Linux® Kernel integriert ist.

Diese Technologie wird unter anderem genutzt bei:

Voraussetzung: Hardware-Virtualisierungs-Unterstützung durch die CPU.

Last Update: 02.01.2026

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
Last Update: 02.01.2026

KVM/Quemo-Virtualisierung

Volle KVM/Quemo-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/
Last Update: 02.01.2026

Quellen und Links:

Last Update: 02.01.2026

Proxmox HA Storage

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)
    - 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 Latenz darf 9ms nicht überschreiten!
  • synchrone Verteilung auf alle Storage
  • selbstheilend
  • gutes Dashboard im PVE
  • Update-Installation wie PVE Updates
  • 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
  • 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 (2) weitere Kopien
  • CEPH wird über PVE pro Host installiert
  • eigenes, performantes Netzwerk verwenden! (25 Gb/s) - nur Public Network, kein extra Cluster Network
    -> Full Meshed Network for CEPH (=keine Switche)
  • 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
Last Update: 01.01.2026

Quellen und Links:

Last Update: 01.01.2026

Backup des Proxmox PVE-Host

Backup PVE-Host (3 Kopien)

  • PVE: zfs list  - suche geeigneten Storage für Backups (Bsp: /hd-vol3/Backups)
  • PVE: touch /home/pve-backup.sh  - erstelle Backup-Script
  • PVE: nano /home/pve-backup.sh
    #!/bin/bash
    # PVE - Backup

    # Definiere destinationdir und Logfile
    DEST="/hd-vol3/Backups/host1"
    LOG="/hd-vol2/daten2/Uwe/logfiles/backup_monat_PVE-Host--PVE.log"

    echo "*** Backup PVE-Host nach $DEST-kopie1" &> "$LOG"
    echo `date` &>> "$LOG"

    # lösche kopie3
    if [ -d "$DEST-kopie3" ]
    then
    echo " Lösche $DEST-kopie3" &>> "$LOG"
    rm -r "$DEST-kopie3"
    fi

    # Verschiebe kopie2 -> kopie3
    if [ -d "$DEST-kopie2" ]
    then
    echo " Move $DEST-kopie2 -> $DEST-kopie3" &>> "$LOG"
    mv "$DEST-kopie2" "$DEST-kopie3"
    fi

    # Verschiebe &DEST-kopie1 in kopie2
    if [ -d "$DEST-kopie1" ]
    then
    echo " Move $DEST-kopie1 -> $DEST-kopie2" &>> "$LOG"
    mv "$DEST-kopie1" "$DEST-kopie2"
    fi

    # erstelle $DEST
    echo " Erstelle $DEST-kopie1" &>> "$LOG"
    mkdir "$DEST-kopie1"

    # r - recursiv
    # h - human readable
    rsync -rptgoh --progress --stats "/etc/" "$DEST-kopie1"etc &>> "$LOG"
    rsync -rptgoh --progress --stats "/home/" "$DEST-kopie1"home &>> "$LOG"
    rsync -rptgoh --progress --stats "/boot/" "$DEST-kopie1"boot &>> "$LOG"
    rsync -rptgoh --progress --stats "/root/" "$DEST-kopie1"root &>> "$LOG"
    # Dumps nicht mit sichern
    rsync -rptgoh --exclude='lib/vz/dump/' --progress --stats "/var/" "$DEST-kopie1"var &>> "$LOG"
  • Script per Cronjob im gewünschten Intervall ausführen
Last Update: 10.01.2026

Der Proxmox VE-Server kann nicht mit der eigenen Backup-Funktion oder dem Proxmox Backup Server gesichert werden.

  • möglich wären Linux Backup-Lösungen
  • der PVE-Server ist schnell wieder installiert
  • der Installer macht das System (RPOOL) platt!
  • alle wichtigen Config-Files vorher(!) sichern
  • möglichst keine VMs auf RPOOL sichern
Last Update: 10.01.2026

Proxmox Virtual Environment Server (PVE)

Spice und Quemu

noVNC-Konsole: Default VM-Konsole, einfach, browserbasierend, Fenster, keine Zwischenablage, kein Sound, teils ruckelige Grafik, keine LAN-Verbindung zur VM erforderlich

  •   Qemu Guest Tools installieren+aktivieren! (verbessert Leistung und Überwachung, flüssiger, Shutdown, Snapshots, qm-Befehle u.a.)
  •   Mauszeiger reagiert in noVNC Konsole auch mit Qemu Guest Tools sehr träge (kein Vergleich zu VMWorkstation- oder ESXi-Konsole)

Spice-Konsole: Vollbild (VirtIO-GPU), Sound (Audiogerät hinzu fügen), im Wirts-PC "virt-viewer" inst.

RDP-Konsole: Sound, Zwischenablage, gute Grafik, Vollbild

  •   Voraussetzung: LAN-Verbindung zur VM, RDP-Server in der VM
Last Update: 01.01.2026

Übersicht

Kernel-Based Virtual Machine (KVM) ist eine Open Source-Virtualisierungstechnologie, die im Linux® Kernel integriert ist.

  • Bare Metal-Hypervisor vom Typ 1 (wie ESXi, VM-Ressourcen werden vom Hypervisor direkt für die Hardware eingeplant)
  • erfordert Virtualisierungsfunktion der CPU,  (grep -Ec '(vmx|svm)' /proc/cpuinfo) Antwort muss > 0 sein, ggf. im BIOS aktivieren
  • erfordert VM-Emulation wie QEMU (LibVirt bzw. Proxmox)
  • Open Source Enterprise Virtualisierer, Frontend+Bundle mit KVM-VM und LXC-Container Virtualisierung, ZFS auf Debian-Basis
  • Gast-VM: Windows 2000, XP/2003, Vista/2008, 7/2008R2, 8/2012(R2), 10/2016/2019, 11/2022, Linux, Solaris und verschiedene BSD-Varianten auf Intel und AMD x64-Basis
  • Gast-Container: Ubuntu, Debian, Fedora, OpenSuse u.a. Linux
  • Filesystem: LVM (ext4) oder besser ZFS
  • TPM-Support (kein Zwang), Snapshots, Clones, Backups, Templates, Live-Migration zwischen 2 Hosts, Thin-provisioned Storage
  • Enterprise Support und Repository buchbar
  • ohne Subscription Lizenz: Betrieb + Update über Community Repository im nichtkommerziellen Bereich möglich
  • 04/2024: Proxmox 8.2 mit Importschnittstelle für VMWare ESX (Rechenzentrum -> Storage -> ESXi)
  • 11/2025: Proxmox 9.1 Container mit Templates per Pull from OCI Registry (aus Docker u.a.)
Last Update: 01.01.2026

Hardware

• ZFS nutzt per Defaul 50% des RAM als Cache (->viel RAM einbauen!)
• möglichst keine Consumer SSD/NVME verwenden, weil deren Cache zu gering ist und sie zu viel beschrieben werden
• 2 kleine SSD (256GB) für System (rpool) verwenden, große NVMe und HDD für die VM
• RAID-1 oder RAID-10 für VMs nehmen
• ZFS ohne Hardware-RAID (direkter Datenzugriff!), LVM mit Hardware-Controller
• Booten von Software-RAID (ZFS) ggf. über HBA (Boot-Partition ist kein RAID)
• ZFS ist LVM vorzuziehen
  - hat keine Schreiblücke und benötigt keinen Akku-gepufferten Cache
  - flexible Software-RAID Level
  - Copy on write, Komprimierung, Checksummierung, Scrubbing
  - HA Cluster nur mit ZFS möglich
• NVME-Cache bringt viel
Proxmox supportet Speichertypen

Last Update: 01.01.2026

Installation

  • HD-Seriennummern und Slots notieren! (falls RAID ausfällt)
  • Installer: Optionen: ZFS-RAID + HDs wählen, HD-Size für System (rpool) festlegen (100GB), ashift= 12
  • "Datastore behalten" wie VMWare kennt Proxmox nicht, der Installer macht die System-Partitions platt und "vergisst" die anderen Pools.
    Beim Neuinstallieren werden also alle VMs in rpool (sda3+sdb3) gelöscht!
    ZFS-Pools auf anderen Partitionen können per zpool import wieder eingebunden werden, wenn man die wichtigsten cfg-Dateien hat.
    /etc/pve/storage.cfg (notfalls manuell) wieder herstellen (enthält die Datastores für die GUI)
    Für VMs: /etc/pve/qemu-server, für Container /etc/pve/lcx - wieder herstellen, enthält die Configs der VMs
    Anleitung ZFS-Pool Import
    -> keine VMs auf rpool (local) planen, nur das System!
  • Proxmox erstellt 3 Partitions (cfdisk /dev/sda): Legacy BIOS Boot (1MB), EFI Boot-System (512MB), ZFS/Proxmox-RAID 'rpool' (Rest bzw. Setup:HDSize)
    Partition 1 und 2 sind kein RAID!  (UEFI-Partition nach jedem größeren Update synchronisieren)
    Partition 3 (ZFS-RAID) /dev/sda3 und /dev/sdb3 kann nicht direkt booten
    • Boot-Loader auf allen Boot-Partitionen synchronisieren:
    • update-grub  - Aktualisierung der Grub Loader
    • grub-install /dev/sdb  - Installation des Grub-Loaders auf Laufwerk sdb
    • update-initramfs -u  - aktualisiert die Grub-Infos auf diesen HDs

    ZFS RAID-1:

    >>cfdisk  (sda, ZFS)

    >> lsblk  (sda und sdb)

  • Software Defined Network (SDN): wird im Cluster organisiert, VLANs pro VM oder (besser) pro Bridge; Firewall pro VM
    1) vmbr0 -> VLAN-Aware = ON, Server neu starten
    2) pro VM/CT -> Netzwerk: VLAN-Tag setzen
    - in VM/CT ggf. geänderte IP konfigurieren
    3) zum PVE kommen vom Switch gebündelte VLAN-Trunk-Ports
    Strategie: Ports= BOND, Switche= VLAN, VMs= Firewall

  • Proxmox WEB-GUI: <ip>:8006
  • Proxmox SSH-Konsole: ssh root@<ip>
Last Update: 01.01.2026

Powersafe (Homeserver)

Per Default läuft ein Virtualisierungshost sinnvollerweise ohne Powersafe.
Im Homelab ist das aber eventuell sinnvoll.

  • cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor  - zeigt Powermodus für jede einzelne CPU
    Proxmox Default: performance
  • cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq  - zeigt Frequenz für jede einzelne CPU
  • echo "powersave" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor  - setzt Governor = powersafe  (ggf. nicht bootfest, in Crontab eintragen)
  • alle CPU Scaling Werte erklärt
  • siehe Powersafe, CPU Governor (Homeserver)
Last Update: 01.01.2026

  • DMZ-Strategie: zweite OPNsense im Proxmox für geschützte VMs (Performance, Single-Point-of-failure), DMZ-Bridge ohne zweite Firewall
    Skizze: Baribal Studios
  • Routing (manuell): ip route add 10.10.10.0/24 via 192.168.1.10 dev vmbr0  (Firewall nicht vergessen)
  • Routing (dauerhaft): /etc/network/interfaces  (enthält alle Interfaces und Bridges)
    post-up ip route add 10.10.10.0/24 via 192.168.1.10 dev vmbr0

  • zpool status - zeigt RAID-Status  (ZPOOL ist der RAID-Teil von ZFS)
  • neuen Pool erstellen: einfach über Proxmox-GUI  (Mirror, shift=12), leere Partitionen auswählen (mit cfdisk erstellen)
  • zpool list - zeigt Pool- Fragmente, Deduplizierung, (CAP soll nicht über 80% gehen!) - ggf. Autosnapshoots verkleinern
  • zpool set autotrim=on rpool  - Autotrim anschalten! Wichtiger Platz- und Leistungsgewinn.
  • zpool trim rpool  - führt TRIM manuell aus, nur zur Kontrolle, Anzeige mit zpool status
  • cd /dev/disk/by-id/ -> ls -l zeigt HDs mit Seriennummer und logischem Name (Bsp: sdb3), wichtig bei HD-Defekt
  • Datacenter / Storage / lokal-zfs: Blocksize auf 16k + ThinProv. ändern (ist jetzt DEFAULT), sonst ist Overhead riesig
    - jede danach angelegte VM bekommt per Default 16k - Blöcke
  • zfs list  - zeigt Partitionen + Mountpoints

    • /rpool/ROOT/pve-1  = '/' = Proxmox-Partition
  • E-Mail Alarmierung ist rudimentär (Postfix), besser Monitoring  (CheckMK-Plugins)
  • Vollständige Conf einer VM: cat /etc/pve/quemu-server/101.conf
  • Windows gibt gelöschten Speicherplatz deutlich verlangsamt wieder frei -> SSD-Trim (HD -> Tools -> Optimieren) regelmäßig planen
  • Proxmox-User mit Two Factor -> TOTP absichern
    • PAM-User sind lokale Linux-User (meiste besser)
    • Proxmox-User sind User des Proxmox Datastore
  • ssh-keygen  - Schlüsselpaar erzeugen

    Snapshots
  • bei ZFS: ggf. Bashclub-ZFS Postinstall-Script ausführen, wechselt auf no-subscription-repository und schaltet Warnung ab, installiert Tools, konfiguriert Cache, Autosnapshots, Config-Backup, Systemaktualisierung  (Swap ab 95%, Mailer, Snapshots festlegen!! [Monate - Wochen - Tage - Viertelstunden], blocksize=16k)
  • danach: GUI Updates Refresh / Rebooten
  • Autosnapshot vererbt sich per Default
  • zfs set com.sun:auto-snapshot=false <VMSTORE>  - Dateisystem nicht AutoSnapshoten
  • zfs set sync=disabled rpool  - SYNC ausschalten
  • zfs set com.sun:auto-snapshot=true <VMSTORE>/<VM>  - nur einzelne VM SnapShoten
  • zfs list -t snapshot (zfs get written) - listet alle Snapshots auf
  • zfs list -t snapshot | grep pve-1  - listet alle Snapshots der Proxmox-Partition auf
  • Snapshots per cd anzeigen: /VMSTORE/<VMNAME> cd /.zfs/snapshot/ → ls -alh
  • zfs rollback -r rpool/ROOT/pve-1@zfs-auto-snap_hourly-2023-05-27-1158  -> Rollback des angegebenen Snapshots
    so kann Proxmox und jede einzelne VM wieder hergestellt werden
  • sollte sich auch die VM-Konfig geändert haben, extra /pve/ Snapshot holen. PBE Backup Server sichert auch die VM-Konfig.
  • Proxmox Update: niemals via apt upgrade!! Nur über Proxmox-GUI oder so:
    • apt update  (Paketquellen updaten)
    • apt dist-upgrade  (Pakete mit ihren Abhängigkeiten installieren)
    • REBOOT nach jedem Kernel-Update
  • Upgrade v8 -> v9: https://pve.proxmox.com/wiki/Upgrade_from_8_to_9

  • ZFS-RAID löschen:
    zfs list  - zeigt Pools
    nano /etc/pve/storage.cfg  - Eintrag löschen
    zpool desroy <pool>

    RAID-Cache mit schneller SSD oder NVM (sdc) erstellen
  • es können mehrere Cache Laufwerke pro Pool angegeben werden
  • zpool add -n hd-pool cache sdc sdd
  • zpool iostat -v 1  - zeigt Befüllung des Cache

    Fehler: 1 ZFS RAID-HD (bsp: sda) gestorben oder ich will 2. HD zufügen
  • RAID ist degraded, man merkt das nicht (Monitoring!!)
  • zpool status zeigt RAID-Status (degraded)
  • HD/SSD wechseln (darf auch größer sein)
  • zpool set autoexpand=on rpool  - schaltet Autoexpand an
  • sgdisk /dev/sdb -R /dev/sda  - überträgt (repliziert) Partitionen von sdb auf sda
  • lsblk  - zeigt Partitionen an
  • cfdisk /dev/sda  - gpt-Partition, Linux Filesystem, wenn neue HD sda größer ist, Proxmox-Partition sda3 resizen auf volle HD-Größe
  • sgdisk -G /dev/sda  - erstellt neue GUID für die neue HD
  • proxmox-boot-tool clean  - entfernt ID der defekten HD aus der Bootkonfig
  • proxmox-boot format /dev/sda2  - formatiert Boot-Partition mit Windows Dateisystem (sda1 + sda2)
  • proxmox-boot-tool init /dev/sda2  - überträgt Bootpartition auf neue HD
  • proxmox-boot-tool status  - gelegentlich prüfen, muß wieder 2 HDs zum Booten haben
  • zpool status   - zeigt immer noch, dass rpool DEGRADED ist (HD REMOVED), d.h. neue sda3 hat noch keine Daten
  • (zpool replace rpool sda3  - Daten werden auf neue Partition repliziert)
  • ls -althr /dev/disk/by-id/ zeigt HDs mit Seriennummer und logischem Name (Bsp: ata-Gigastone_SSD_GSTGGGHABK2406260460-part2 -> ../../sdb2)
  • zpool attach rpool sdb3 ata-Gigastone_SSD_GSTGGGHABK2406260460-part2
    -> füge neue HD (sdb2) über ID (wichtig beim Umstecken der HD!!) zum rpool (zu funktionierender Platte sdb3, ggf. auch als ID) hinzu
  • zpool status   - jetzt Online, resilvering
  • zpool status -v [pool] - zeigt genauen Status des Resilvering an

    Notfall-Recovery bei defektem Proxmox Bootsystem
  • Intallation Proxmox von CD auf beliebigen anderen Datenträger ohne ZFS inst. (sonst hätten wir 2x RPOOL) (gute Datenplatten raus ziehen)
  • zfs list  - keine Volumes da   (HD wieder rein)
  • zpool import -fa  - importiert alle ZFS-Pools
  • Kopieren storage.cfg, quemu-server (/rpool/pveconf/)
  • System läuft (ohne SSH-Keys, Autosnapshot usw)
  • siehe auch Thomas Krenn WiKi

    neue HD hinzufügen, ohne die Alte zu löschen (Backup o.ä.)
  • zpool attach rpool sdb3 <neue HD>  - statt REPLACE kann man mit ATTACH weitere HDs hinzufügen
  • zpool status  - zeigt dann 3 HD im RAID an
  • nun kann man 1 HD entnehmen und aus dem RAID entfernen:
  • zpool detach rpool sdb3  - löscht HD aus RAID-Konfig
  • proxmox-boot-tool clean  - entfernt ID der entfernten HD aus der Bootkonfig
  • bootet man jetzt nur von der entnommen sdb, würde sie immer noch melden dass die beiden anderen HD fehlen

    separaten ISO-Pool erstellen (NVMe-RAID ist dafür zu schade)
    Bsp: ZFS-Pool heißt "hd-pool" und soll Dataset "ISOs" bekomme und ein Directory Storage "ISOs"
  • zfs create hd-pool/ISOs  - Dataset erzeugen
  • zfs destroy hd-pool/ISOs - Dataset löschen
  • zfs set compression=zstd hd-pool/ISOs  - ZSTD-Kompression für weniger Platzverschwendung
  • zfs set relatime=on hd-pool/ISOs  - ggf bei SSD: unnötige Writes vermeiden
  • zfs set quota=100G hd-pool/ISOs  - ggf. Quota auf 100GB setzen
  • pvesm add dir ISOs --content iso --is_mountpoint yes --shared 0 --path "/hd-pool/ISOs"  - Directory Storage für ISOs anlegen
    (Pool für VMs: Content= images), auch manuell mit nano /etc/pve/storage.cfg

    VM erstellen:
  • virtuelle Hardware nicht E-1000 (1GB) o.ä., sondern virtuelle Proxmox-Hardware mit 100 GB/s nehmen!
    PVE -> Storage local -> ISO-Images -> Download from URL
    Suche: proxmox windows drivers stable -> Download-Link kopieren in URL oben, Query URL -> lädt virtio-win.iso (Treiber-CD)
    (https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso)
    • Windows7: virtio-win-0.1.173-4.iso
  • Disk Device: SCSI mit 'VirtIO SCSI single' Controller, Discard + SSD-Emulation +IO thread anhaken, no Cache
  • CPU Type = host (außer wenn man den Host wechseln will), Machine= Q35, (Version= 5.2 ggf zuverlässiger)
  • Quemu anhaken, vergl. VMWare Tools, UEFI Boot
  • Network = VirtIO (paravirtualized), vmbr0 ist Default Bridge
  • CD1 = Boot-OS
  • CD2 = virtio-win.iso
  • Windows Installation findet keine Festplatte -> Treiber laden -> vioscsi -> win10
  • von CD virto-win.iso 'virto-win-guest-tools' installieren -> installiert alle fehlenden Treiber
  • QEMU Guest Agent installieren
    • Windows: virto-win.iso, Verzeichnis guest-agent
    • Linux: apt-get install qemu-guest-agent , systemctl start qemu-guest-agent
    Danach zeigt die VM unter Übersicht die IP, Meldung "kein Agent" verschwindet, qm-Befehle gehen, Shutdown über GUI geht.
  • im Host Qemu Guest aktivieren: qm set <vid> --agent 1
    Test: qm agent <vid> ping
  • ggf. Spice oder RDP aktivieren

    Hochlastige VM optimieren, Auslagerungsdatei ohne Snapshot
  • powercfg -h off  - Hyperfil off
  • zfs create -o com.sun:autosnapshot=false rpool/swap  - erstellt Verzeichnis, in dem keine Autosnapshots gemacht werden
  • Proxmox Datacenter -> Stoarage -> Add -> ID: rpool-swap, ZFS-Pool auswählen, Content= Disk Image, 16k Block Size
  • VM -> Hardware -> Add HD -> Bus: SCSI, Storage: rpool-swap, Size: 8GB, SSD-Emulation, Discard
  • Windows Datenträgerverwaltung: Datenträger initialisieren, LW-Buchstabe
  • Windows Systemeigenschaften -> Leistungsoptionen -> Auslagerungsdatei ändern in Swap-LW

    ZFS-HD einer Windows-VM vergrößern
  • HD in Proxmox vergrößern: VM -> Hardware -> Harddisk -> Disk Action: Resize
  • in Windows hindert die Widerherstellungspartition am Vergrößern von LW C:
  • Proxmox: lsblk, Widerherstellungspartition identifizieren
  • cfdisk /dev/cd16
    Windows RE (546MB) löschen (nicht hier Resizen!)
  • HD in Windows Datenträgerverwaltung vergrößern
  • ggf. in /etc/pve/quemu-server/100.conf anpassen, sonst wird das weiter falsch angezeigt

    Backup-Strategie:
  • /etc/cron.daily (Cronjob)
  • VM herunter fahren (qm shutdown...)
  • Snapshot
  • VM starten
  • Snapshot weg sichern (repl)
  • PBS ermöglicht Backup ohne Shutdown
  • keine Backups, Hyperfil oder Auslagerungsdatei auf produktive Volumes legen (mit Snapshot)
  • keine Backups auf "Local-Store" legen, denn das ist der PVE

    Backup Replication einfach und trojanersicher (SysOps) mit pull, geht auch remote in LAN/WAN
  • zfs create -o com.sun:autosnapshot=false backup/repl (data, clone, rpooldata)  - auf neuem Volume anlegen
  • zfs set com.sun:autosnapshot=false backup  - ganzer Datenträger ohne Autobackup
  • gihub.com bashclub: bashclub-zfs-push-pull  -> Link kopieren
  • git clone <link>  - installiert
  • chmod +x 02pull bashclub-zfs  - ausführbar machen
  • cp bashclub-zfs /usr/bin/  - kopiere an bessere Stelle
  • nano 02pull - editieren
    Scriptpaht='/usr/bin'
    Sourcehost='localhost'
    DestPath='backup/repl'
  • Trojanersicher ist das initiiert vom Remote Backup Server aus. Auf den Systemen läuft zfs send / zfs receive mit Prüfsumme.

    VMs importieren
  • vmdk, vhdx, raw, qcow2, ovf > mounten (Kopieren mit winscp) im Original nach mnt/pve/nfsstore
  • zvols, lvm, usb, hdd, ssd (phys. Geräte)
  • qm importdisk 100 /mnt/hypervfreigabe/dc.vhdx local-zfs  - importiert und konvertiert automatisch
  • ova: entpacken von ovf, mf, vmdk, nvram

  • VMWare Workstation: Export als OVA (möglichst vorher VMWare Tools deinstallieren)
  • WinSCP: Dateien auf Proxmox übertragen
  • qm importovf 101 bitnami-wordpresspro-5.1.1-0-linux-debian-9-x86_64.ovf local-zfs
  • bei UEFI-VM: BIOS auf UEFI setzen (qm set 101 --bios ovmf)
  • Treiber von SCSI auf SATA ändern (sed -i 's/scsi/sata/g' /etc/pve/qemu-server/101.conf)
    Quelle: Krenn AG WIKI
  • ESX.vmdk von Proxmox Shell aus importieren
  • Disk als IDE-LW hinzu fügen

  • physische Systeme: mit VMWare Converter oder Clonezilla Festplatten erzeugen
  • VM in Proxmox neu einrichten, HDs hinzu fügen (unused disk: discard + add)
  • VMWare Tools deinstallieren
  • virtio-win.iso installieren, QUEMU-Guest installieren
  • ab Proxmox 8.2 mit Importschnittstelle für ESXi (Datacenter -> Storage -> ESX), Variante 4

    Variante 3: Clonezilla
  • clonezilla Empfangsmodus auf neu erstellter, leerer VM
  • clonezilla booten auf PC

    Variante 4: VMWare ESX per Proxmox Import Agent (neu 2024)
  • importiert ESX Host v.6.5 - v.8
  • ESXi Datastore in Proxmox einbinden und VM importieren
  • Assistent erkennt (je nach Ausgangs-VM) Controllertyp, CPU, RAM, HD automatisch
  • https://forum.proxmox.com/threads/new-import-wizard-available-for-migrating-vmware-esxi-based-virtual-machines.144023/
  • https://www.thomas-krenn.com/de/wiki/ESXi_VM_Importer_-_Proxmox_VE_Storage_Plugin?xtxsearchselecthit=1
  • nach Import: Treiber für HD auf VirtIO umstellen, LAN neu hinzu fügen, Quemu Guest Agent inst.

  • nach dem Import alter VM ggf. Controller in vioscsi ändern
  • vio-Treiber in nicht startendes Windows per CMD integrieren:
    - virt-IO -CD "einlegen"
    - System reparieren - > Eingabeaufforderung
    - Windows-Laufwerk (x:) und VirtIO-Laufwerk (d:) suchen
    - drvload d:\vioscsi\2k22\amd64\vioscsi.inf -> erfolgreich geladen
    - dism /image:x:\ /add-driver /driver:d:\vioscsi\2k22\vioscsi.inf  -> Operation successfully

    Proxmox - Cluster
  • ermöglicht Livemigration, Hochverfügbarkeit, gemeinsame Oberfläche
  • ZFS erforderlich (also kein RAID-Controller + LVM)
  • 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.
  • 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)

    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
  • verwaltung von mehreren Proxmox VE oder PBS-Servern
  • Server müssen nicht im selben Cluster sein
  • Vertrauensstellung wird durch Fingerprint hergestellt (PVE: Zertifikate -> pve-ssl.pem)

    USB-Stick in VM durchreichen
  • USB-Stick an Host stecken, Stick erscheint im Host unter "Disks"
  • USB-Device in VM hinzu fügen, "Use USB Vendor/Device ID"
  • Stick auswählen, fertig
Last Update: 01.01.2026

Quellen und Links:

Last Update: 01.01.2026

Linux Software für Desktop-Installation

Software, die nicht fehlen sollte:

Browser:

  • Firefox Browser (+Ghostery) und Thunderbird Mailclient
  • Chrome Browser kann ohne Zusatzsoftware URL-Verknüpfungen auf dem Desktop erstellen

Office-Suiten:

  • Libre Office - meist vorinstalliert, OpenSource, leistungsstark
  • OnlyOffice - OpenSource, sehr moderne Suite, kein Datenbank-Modul

Grafik:

  • Grafik siehe auch "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

Utils/Sonstige:

  • PDF Drucker (apt install printer-driver-cups-pdf)
  • Devolutions Remote Desktop Manager (RDP, SSH, VNC, VMWare, Hyper-V, Telnet, FTP, Powershell, Anydesk, Teamviewer, HTTP/S, SNMP) (Synaptic)
  • 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
  • Angry IP Scanner - IPs und Ports, Open Source
  • 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)
  • K3B - Brennen von CD-ROMs & Audio-CD's
  • Turbo-Print - kostenpflichtig, aber Druckertreiber mit großem Funktionsumfang

Virtualisierer mit Qemu und KVM (für die letzte Windows App)

  • WinBoat - sehr einfach zu installieren, reicht Verzeichnis, Zwischenablage, USB durch
  • KVM - volle KVM/Quemo-Virtualisierung, Verwaltung mehrerer VMs
    -> siehe Linux KVM

5 Wege zur Softwareinstallation: https://www.tutonaut.de/5-wege-zur-softwareinstallation-unter-linux/

Last Update: 30.12.2025

Linux Basics

Quellen und Links:

Last Update: 02.01.2026

Distributionen

  • Debian
    - freies Betriebssystem des Debian-Projektes
    - Basis für viele andere Forks
    - "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 beri Bedarf nachinstallieren
    - eigene Paketverwaltung dpkg und deren Frontend APT
    - Cinnamon Desktop installieren:
    su
      apt install cinnamon-desktop-environment
    - Drucker: CUPS = lokale Drucker mit automatischer Erkennung (http://localhost:631/)

  • Ubuntu
    - kommerzieller Hersteller Canonical
    - Debian-basierend, LTS-Versionen alle 2 Jahre, 5 Jahre oder mehr Support
    - 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
    - eigenes Softwarecenter: App Center (kein Open Source) zeigt nur Snap (andere Softwareverteilungen nur über Shell)
    - RDP Zugriff standardmäßig
    - Wireguard mit GUI
    - stabil, geht inzwischen viele Sonderwege, dass es oft nicht mehr empfohlen wird
    - Cinnamon Desktop unter Ubuntu inst: sudo apt install cinnamon-desktop-environment

  • Linux Mint
    - einfach, pragmatisch, Windows-ähnlich
    - stabil, wartungsarm
    - 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
    - ein zweiter, separater Zweig "Linux Mint Debian Edition" nutzt die original Debian Quellen

  • 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

Netzwerk
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)
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

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 anzeigen
id {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

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)

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
Last Update: 02.01.2026

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.

Aus diesem Grund hat sich Linux-Chefentwickler Linus Thorvalds dazu entschieden, die Schutzfunktion im nächsten Kernel nicht zu aktivieren.
Es ist immer noch strittig, wie groß das Risiko dieser Lücke in der Praxis ist.
Die Performance-Einbußen seien zu groß und das Risiko zu theoretisch, um eine solche Schutzfunktion für alle Nutzer einzuschalten, so Torvalds.
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.
 
Microsoft hat die Sicherheitslücke für ausgewählte neuere Prozessoren mit einem optionalen Update in den Windows 64-bit Versionen geschlossen.
Auch hier ist der Schutz also optional und keineswegs durchgehend.
 
Last Update: 30.12.2025