A techie blog

IT, Linux

Linux als Desktop System nutzen

Tux der Linux Pinguin als Gandalf der Zauberer verkleidet.

Die Installation von Linux kann am Anfang schwierig sein, daher möchte ich mit dieser Anleitung etwas Hilfestellung geben, um eine Desktop-Umgebung zum Laufen zu bringen.

Diese richtet sich hauptsächlich an Entwickler oder Personen mit ein wenig technischem Verständnis / Hintergrund.

Distribution und Desktop-Umgebung auswählen

Es gibt viele Linux-Distributionen in freier Wildbahn und jede hat ihre eigenen Vor- und Nachteile. Ich habe von einer Analogie gehört, die besagt, dass die Distributionen der Marke eines Autos entsprechen und die Desktop-Umgebungen (im Folgenden mit DE für Desktop Environment abgekürzt) das Modell sind.

Das bedeutet, dass sich manche Personen mit einem Audi TT wesentlich wohler fühlen, und andere wiederum mit einem Renault Traffic.

Es gibt sogar Linux-Distributionen, welche mit Gabelstaplern vergleichbar sind – perfekt für den Einsatzzweck, jedoch würde niemand im Alltag damit herum fahren (ich blicke mal unauffällig rüber zu Kali).

Um also eine zu finden, die zu deinen Bedürfnissen passt, solltest du überlegen, was genau du damit machen willst.

Einsteigerfreundliche Distribution auswählen

Unabhängig davon gibt es einfachere und schwierigere Linux-Distributionen. Einsteigerfreundlich sind meines Erachtens folgende:

  • Linux Mint (am besten für den Umstieg von Windows – die DE namens Cinnamon sieht aus wie Windows 7 und fühlt sich auch so an) – Installation der Software erfolgt über APT
  • Linux MX – Installation der Software erfolgt über APT
  • Ubuntu – mit einem ihrer vielen DEs – Installation der Software erfolgt über APT
  • Manjaro (etwas mehr Bastelei als bei den vorher genannten erforderlich, daher würde ich es fortgeschrittenen Benutzern empfehlen bzw. User die ein wenig Zeit zum Recherchieren mitbringen) – Die Installation der Software erfolgt über pacman oder AUR

Bei den DEs ist es ähnlich wie bei der Suche nach der richtigen Linux-Distribution, wichtig für mich persönlich ist, dass es irgendwie vertraut aussieht (=ähnlich wie Windows), und dass es schnell ist und wenig Ressourcen verbraucht – es muss nicht schick sein, für mich ist es ganz klar ein Arbeitstier.

Daher verwende ich in der Regel eine von diesen:

  • Cinnamon (den höchsten Ressourcenverbrauch von den hier genannten, am meisten konfigurierbar, habe ich lange verwendet)
  • MATE (liegt irgendwo zwischen Cinnamon und XFCE, habe ich nur kurz verwendet)
  • XFCE (am schlanksten und mit den wenigsten Ressourcen) – nutze ich aktuell
  • KDE Plasma (habe es selbst nicht benutzt, aber viel Gutes darüber gehört)

Alle sind stabil, gut konfigurierbar bzw. personalisierbar und daher eine gute Wahl für meine Bedürfnisse.

Installation des Systems

Ich empfehle als grundsächliches Vorgehen folgendes:

  1. Erstelle einen bootfähigen USB-Stick (es gibt viele Anleitungen für Windows im Internet)
  2. Boote ins Live-System (oder den Installer)
  3. Teste wie sich das Linux Live-System auf deinem Rechner verhält bzw. “anfühlt”, ob du es intuitiv findest (z. B. wie ändere ich die Maus-/Touchpad-Einstellungen, wie füge ich Dinge im Hauptmenü hinzu,…)
  4. Installiere es mit dem Installationsprogramm – wenn du die Festplattenverschlüsselung verwenden möchtest (empfehle ich!), solltest du vorab etwas googeln, ob es irgendwelche Probleme mit der von Ihnen gewählten Distribution gibt. (z.B. musste ich Manjaro 4-5 mal neu installieren, weil es viel schwieriger ist, das Setup so performant wie in Mint zu gestalten)

USB Stick unter Linux erstellen

Hier gibt es verschiedene Herangehensweisen.

Mit DD / Out Of the Box

Zunächst wird der USB Stick mit FAT 32 formattiert (zB mit dem graphischen Tool gparted).

Wichtig ist, dass man sich ansieht & merkt, welches Device der zu beschreibende USB Stick ist (zB /dev/sdc)

Danach wechselt man in das Terminal und gibt folgenden Befehl ein:

sudo dd if=$DOWNLOAD_ISO of=$DEVICE bs=4M && sync

wobei $DOWNLOAD_ISO mit der heruntergeladenen ISO Datei ersetzt werden muss und $DEVICE mit dem zuvor herausgefundenen Devicenamen des USB Sticks.

Usb Stick mit Balena Etcher erstellen (Windows, Linux, Mac OS)

Ich verwende eigentlich nur noch diesen Weg, weil das Programm Balena Etcher super simpel und intuitiv ist. Lade es herunter, starte es, wähle die ISO Datei und das Ziel und es geht auch schon los.

Linux Mint Installation

Lade die Live-CD mit der DE-Variante herunter, die dir am besten gefällt (Cinnamon, MATE oder XFCE werden zum Zeitpunkt der Erstellung dieses Artikels offiziell unterstützt) und installiere sie einfach über die Schaltfläche “Installieren” auf dem Desktop. Es ist ganz einfach – auch die vollständige Festplattenverschlüsselung (die ich der Verschlüsselung des Home-Ordners vorziehen würde) ist nur eine Checkbox und Mint erledigt alles “automagisch” (auf eine positive Art und Weise).

Manjaro Linux Installation

Beim Booten des Live-Systems gibt es auf dem Desktop eine Schaltfläche für den GUI-Installer namens Calamares. Den sollte man nutzen, die Fallstricke, auf die ich gestoßen bin, sind folgende:

Partitionierung

Ich war nicht in der Lage, zuvor erstellte und verschlüsselte Partitionen wiederzuverwenden – mein Vorschlag ist, ein Backup der Daten zu erstellen und mit einer neuen Partitionstabelle zu beginnen (basierend auf GPT, nicht MBR)

Außerdem konnte ich die Boot-Flags nicht richtig setzen, ich habe das nach der Installation mit GParted geändert (direkt in der Live-USB-Sitzung)

Die Verschlüsselung braucht auch eine spezielle Einstellung, sonst ist sie sehr sehr langsam.

Als erste Partition eine 512 MiB FAT32 Partition anlegen und den Mountpunkt /boot/efi

Als zweite Partition eine 1024 MiB große FAT32-Partition anlegen und den Mount-Punkt /boot

(Optional) Als dritte Partition erstelle eine Swap-Partition in der Größe, die Sie benötigen (es gibt auch genügend Anleitungen dafür)

Als letzte Partition erstelle eine ext4 (oder ein anderes Format, wenn du genau weißt, was du tust) und aktiviere das Kontrollkästchen verschlüsselt – gib ein Passwort ein, das du dir unbedingt merken solltest!

Dies führt zu einem sicheren und sehr performanten Bootvorgang.

Festplattenverschlüsselung – Wichtige Befehle, die ich verwendet habe

Um die verschlüsselte Partition zu überprüfen, kannst du die Verschlüsselungs-Header auslesen

sudo cryptsetup luksDump /dev/$YOUR_ENCRYPTED_PARTITION

Danach kannst du überprüfen, wie lange die Entschlüsselung dauert mit folgendem Befehl

sudo cryptsetup luksOpen --test-passphrase -v /dev/$YOUR_ENCRYPTED_PARTITION

Wenn dies zu lange dauert (bei mir mehr als etwa 5 Sekunden), schaue nach, wie viele Iterationen du mit deinem Schlüssel hast (ich hatte etwa 2 223 914, was ziemlich hoch war). Mit folgendem Befehl kannst du es mit reduzieren (die letzte Zahl ist die Anzahl der Iterationen – höher bedeutet sicherer & längere Bootzeit)

sudo cryptsetup luksChangeKey /dev/$YOUR_ENCRYPTED_PARTITION -S 0 --pbkdf-force-iterations 1000000

und gib deinen Schlüssel ein, damit dieser mit den neuen Iterationen verschlüsselt gespeichert wird.

Falls es Probleme gibt, folge diesen Schritten, oder lies hier weiter:

Schlüssel ändern, wenn luksChangeKey nicht funktioniert

Überprüfe den Schlüssel und merke dir die Position:

sudo cryptsetup luksDump /dev/$YOUR_ENCRYPTED_PARTITION

SEHR WICHTIG: Füge temporär einen einfachen, kurzen (und damit natürlich unsicheren) Schlüssel (wie 123) mit hinzu:

sudo cryptsetup luksAddKey --pbkdf-force-iterations 10000 /dev/$YOUR_ENCRYPTED_PARTITION

und gib 123 ein, wenn das System dazu auffordert. Wenn du das nicht tust und deinen letzten bekannten Schlüssel entfernst, kann die Partition gar nicht mehr entschlüsselt werden und die darin enthaltenen Daten sind für immer verloren (außer es existieren Backups).

Dann entferne den Schlüssel mit

sudo cryptsetup luksRemoveKey /dev/$YOUR_ENCRYPTED_PARTITION

und gib den neuen gewünschten Schlüssel ein (nicht die 123).

Überprüfe die Schlüssel und vergleiche sie mit dem ersten Dump

sudo cryptsetup luksDump /dev/$YOUR_ENCRYPTED_PARTITION

Wenn Slot 0 noch in Gebrauch ist (muss er sein, sonst hätte luksChangeKey funktioniert), müssen Sie

cryptsetup -v luksKillSlot /dev/$YOUR_ENCRYPTED_PARTITION 0

Jetzt kannst du einen neuen Schlüssel in Slot 0 hinzufügen

sudo cryptsetup luksAddKey /dev/$YOUR_ENCRYPTED_PARTITION -S 0 --pbkdf-force-iterations 1000000

und gib den gewünschten Schlüssel ein, wenn du dazu aufgefordert wirst.

Zum Bereinigen entferne den unsicheren Schlüssel mit

sudo cryptsetup luksRemoveKey /dev/$YOUR_ENCRYPTED_PARTITION

und gib 123 ein, wenn du zur Eingabe des zu löschenden Schlüssels aufgefordert werden.

ssh-Schlüssel beziehen & einsetzen

Voraussetzungen

  1. Überlege, wie du deine ssh-Schlüssel (sicher) auf den neuen Rechner übertragen kannst oder erstelle einen neuen Schlüssel. Du musst im Nachgang dann den alten public key gegen den Neuen auf allen Servern tauschen.
  2. Übertragen kannst du den Key mit send.tresorit.com oder mittels usb stick

Erforderliche Software installieren

Aktualisiere erst mal alle installierten Pakete

sudo pacman -Syu

Installiere Hilfsprogramme wie Passwort-Safe, Dropbox, etc.

sudo pacman -S keepass
sudo pacman -S dropbox
sudo pacman -S redshift

Installiere Entwicklungswerkzeuge wie VS Code, Docker,…

sudo pacman -S vscode
sudo pacman -S docker
sudo pacman -S chromium
sudo pacman -S traceroute
sudo pacman -S sshfs

AUR-Helfer installieren

sudo pacman -S yay
sudo pacman -S base-devel

Gegebenenfalls den Franz Messenger installieren

yay -Sy franz

Eclipse (oder eine andere IDE für Java) herunterladen und entpacken.

Tastaturbindungen unter Manajro Linux

In Manjaro gibt es eine Einstellung namens Tastatur, in der du konfigurieren kannst, dass Anwendungen über Tastenkombinationen gestartet werden. Außerdem gibt es den Fenstermanager, in dem du bestehende Tastenkombinationen bearbeiten kannst.

Ich habe Super + E für Thunar in Keyboard hinzugefügt und von Ctrl + Alt + D zu Super + D für Show Desktop in Windown Manager -> Keyboard geändert.

Weiters habe ich Ctrl + Alt + T vom dropdown terminal entfernt und einen neuen Eintrag für /usr/bin/xfce4-terminal mit dieser Tastenkombination erstellt.

Terminal-Helfer

Ich habe ein Projekt für ein paar kleine Terminal-Helfer erstellt. Mein Vorschlag ist, sich das Projekt anzuschauen und es via git zu klonen, wie es in der im GIT Repository beschrieben ist.

Andere nützliche Einstellungen

Bash History

Ignorieren von Befehlen, die mit einem Leerzeichen in der Bash-History beginnen.

Lock Screen

Das Programm `LightDM GTK+ Greeter Setting` öffnen und dort das Bild auswählen – Tipp: Das Bild muss scheinbar im Pfad `/usr/share/backgrounds/` oder in einem Subpfad davon liegen. Siehe hier.

Lock User on wrong Password

Nachdem die Sperrung des Nutzeraccounts recht schnell von Statten geht (3 mal falsches Passwort), und lange dauert (10 Minuten), hier eine kurze Anleitung um etwas angenehmere Einstellungen vorzunehmen.

Führe folgenden Befehl aus:

sudo vim /etc/security/faillock.conf

Danach füge am Ende der Datei folgende Zeilen ein:

deny = 5
fail_interval = 450
unlock_time = 300

Geschafft, nun haben wir 5 Versuche, und der Sperrungs-Zeitraum ist deutlich kürzer.

(Grafik)-Probleme

Ich hatte eine Zeit lang das Problem, dass das oberste 1/4 des internen Displays nicht regelmäßig refresht wurde bzw. unter anderen Distributionen das Display mit jeder Mausbewegung furchtbar geflackert hat.

Die Lösung brachte die Deaktivierung vom Panel Self Refresh feature.

Auf einem anderen Rechner hatte ich unter Manjaro das Problem, dass er einfach immer wieder mal restartet hat, auch das wurde so behoben.

Daher würde ich bei eigenartigen, sonst nicht zuordenbaren Fehlern, dies als Lösungsversuch einfach mal empfehlen. Es ist auch einfach wieder zu revidieren, und außer leicht erhöhtem Stromverbrauch sollte es keine weiteren Auswirkungen haben.

PSR deaktivieren

1. GRUB Datei editieren

sudo nano /etc/default/grub

2. Das PSR (Panel Self Refresh) deaktiveren, in dem wir GRUB_CMDLINE_LINUX_DEFAULT anpassen:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_psr=0"

3. GRUB aktualisieren

sudo update-grub

Entnommen habe ich das von hier.

Quellen

Verschlüsselung / Langsamer Boot

Unbekannte LUKS Schlüssel entfernen

Keybinding für Thunar (Win+E) festlegen

Keybinding für Desktop-anzeigen festlegen

Befehle mit Leerzeichen nicht in Bash Historie aufnehmen

Lockscreen Hintergrund ändern

PSR deaktivieren