Leserartikel [How-To] Arch Linux installieren (verschlüsselt, gehärtet, spieletauglich, modular)

agon

Lt. Junior Grade
Registriert
Feb. 2022
Beiträge
323
Arch Linux – Setup Guide
– 2-year, 100 pages & KDE6 Special Edition –

0 INTRO​

This extensive & modular guide focuses on how to install and set up Arch Linux with the following goals in mind. The system should:
  • be as stable as possible,
  • be sufficiently secure (without compromising usability too much),
  • have acceptable low latency (for real-time applications, including games),
  • be automated as much as possible (also for a small maintenance of the system),
  • be well set up for KDE, Gaming, Firefox, mpv, Virt-Manager, your hardware, …
This guide should be very helpful especially – but not only – for Arch beginners.
Many sections (esp. after installation) should be adaptable to other distributions.

0.1 Recommended prerequisites​


0.2 Key features – Realization of goals​

0.2.1 Ideal setup of Secure Boot using

0.2.2 File system: Btrfs (Feature overview)​

0.2.3 Low latency

0.2.4 System Hardening

0.2.5 Setup of the following software​

… to make them "best" in their category.

0.2.6 Disk layout​

Partition
1: EFI system partition2: Root partition
File systems
& Labels
└ FAT32 (Unencrypted)└ "Arch" – LUKS2 encrypted
. └ "Root" – Btrfs
Mount points
/efi/, /.snapshots, /home, /swap, …


Attachments

  • Arch Linux – Setup Guide (ODT, PDF)
  • My config files: Package lists, Zsh, Firejail, Firefox, mpv
  • Shortcuts introduction (DE: Rund um Shortcuts)
If you have any suggestions for improvement, let me know!
 

Anhänge

Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: atze303, THED0M, Sensei21 und 37 andere
Schöne Zusammenfassung

Um sich Sudo Rechte zu geben, könnte man sich auch alternativ eine Datei unter /etc/sudoers.d erstellen, zum Beispiel g_wheel und dort einfach die Zeile einfügen, die man sonst auskommentieren würde
Code:
%wheel ALL=(ALL) ALL
. Bin ich kürzlich beim basteln an meiner Iso darauf gestoßen.

Hardwarebeschleunigung:
Für Firefox und Nvidia ist cuda und der libva-nvidia-driver aus dem aur nötig wenn ich mich nicht irre
Bei AMD würde ich rein auf den libva-mesa-driver setzen, da mehr features + encoding und mehr unterstützte Anwendungen

Bei pipewire würde ich noch den Hinweis mit dem startctl start --user pipewire-pulse.serve ergänzen.
 
Zuletzt bearbeitet: (sudo,hw,pipewire)
  • Gefällt mir
Reaktionen: agon
Kaito Kariheddo schrieb:
Um sich Sudo Rechte zu geben, könnte man sich auch alternativ eine Datei unter /etc/sudoers.d erstellen, zum Beispiel g_wheel und dort einfach die Zeile einfügen, die man sonst auskommentieren würde
Code:
%wheel ALL=(ALL) ALL
https://wiki.archlinux.org/title/Sudo#Configure_sudo_using_drop-in_files_in_/etc/sudoers.d
"Warning: The files in /etc/sudoers.d/ are just as fragile as /etc/sudoers itself: any improperly formatted file will prevent sudo from working. Hence, for the same reason it is strongly advised to use visudo"

Bzgl. Hardwarebeschleunigung
Fixed
in v2022-02-22v2.pdf

Bzgl. Pipewire
https://wiki.archlinux.org/title/PipeWire#PulseAudio_clients
"Normally, no further action is needed, as the user service pipewire-pulse.socket should be enabled automatically by the package."
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Kaito Kariheddo
Warum wieder eine Installationsanleitung wie man Arch Linux installiert, und dann noch in englisch.

Es gibt hier im Forum doch bereits eine deutsche Installationsanleitung und links zur Arch Linux Wiki
mit einer deutschen Installationsanleitung für Einsteiger.
 
  • Gefällt mir
Reaktionen: wolve666, Mydgard, CB_usr90 und 2 andere
Paul09 schrieb:
Warum wieder eine Installationsanleitung wie man Arch Linux installiert, und dann noch in englisch.

Es gibt hier im Forum doch bereits eine deutsche Installationsanleitung und links zur Arch Linux Wiki
mit einer deutschen Installationsanleitung für Einsteiger.
Die meisten aktuellen Arch Wiki-Seiten sind halt auf Englisch. Zu PipeWire gibt es bspw. keinen deutschen Eintrag. Entweder man kann Englisch oder man benutzt einen guten Übersetzer. Der Guide ist auf Englisch, wie auch das offizielle Wiki. Gleichzeitig gibt es eine potenziell höhere Leserschaft.
Es steht jedem frei, meinen Guide ins Deutsche zu übersetzen.

Mein Guide bezieht sich auf die Verwirklichung der oben genannten Ziele. Diese zu erreichen ist gar nicht mal so einfach und erforderte eine Dokumentation bzw. Guide. Da ich einige Zeit daran gearbeitet habe und davon überzeugt bin, dass mein Guide heute weitgehend korrekt ist, habe ich beschlossen, ihn aufzupolieren und zu veröffentlichen. Das Problem mit den meisten "Arch Guides" ist, dass sie oft falsch oder einfach nur veraltet sind.

Bzgl. Zielgruppe von Arch: "I am a complete GNU/Linux beginner. Should I use Arch?". Wenn Linux-Einsteiger meinen Guide folgen wollen, sollten sie die Wiki-Einträge beachten.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: R4sTurtl3, ral9004, kat7 und eine weitere Person
Ich würde mich übrigens über Feedback freuen. Mein Plan war es auch, diesen Guide als Basis für andere "Abwandlungen" zu benutzen. Dafür sollte jedoch die Basis stimmen.

Ich würde jetzt einfach mal eine Umfrage bzw. Diskussion über "Abwandlungen" eröffnen. Also, was ihr euch (mehr) wünschen würdet:
1 - Einsteigerfreundlicher gestalten. (An welchen Stellen?)
2 - Deutsche Version.
3 - Keine Abwandlung nötig. Basis ist gut so.
4 - Keine Abwandlung nötig. Basis ist schlecht geschrieben.
5 - Andere Wünsche.
 
Hast du echt Einsteiger als Zielgruppe? Wenn ich "Guide" lese erwarte ich mehr Erklärungen. Eine Kommandosammung würde ich als "How-To" sehen. Ist aber sicher Ansichtssache, du hast ja begleitend für Neulinge auf das Wiki verwiesen.

Ich sage 3. Ist gut so, nur dass auf eine HighProfessional Installation nano anstatt vi installiert werden sollte.

5. Dateisystem. btrfs mit snapshots (timeshift/snapper) ist schon eine feine Sache. Dateikompression mit zstd ist auch Pfeilschnell.
https://fedoraproject.org/wiki/Changes/BtrfsTransparentCompression
https://btrfs.wiki.kernel.org/index.php/Compression
 
  • Gefällt mir
Reaktionen: Newbie_9000 und agon
Was du noch schreiben könntest wie Platz eine Standardinstallation auf der EFI Partion belegt da es dort verschiedene Verfahren gibt zwischen Grub und systemd-boot soweit mir bekannt ist. Auch über eine deutsche Version würden sich einige freuen.
 
  • Gefällt mir
Reaktionen: subdural und agon
@ModellbahnerTT
Bzgl. Größe der EFI-Partition:
https://wiki.archlinux.org/title/EFI_system_partition#Create_the_partition
Übersetzt: "Für alte und/oder fehlerhafte UEFI-Implementierungen kann eine Größe von mindestens 512 MiB erforderlich sein."
Für systemd-boot sollte die esp bei /boot/ mit 550 MiB für 3 Linux Kernels Platz haben.

Bzgl. deutsche Version:
Kommt denke ich mal darauf an, wie viele sich denn soetwas wünschen würden.
Die Basis muss so oder so erst mal fertig werden.
Ergänzung ()

@LochinSocke
Du hast in vielen Punkten recht.
- Die Basis ist eher ein How-To. Man kann es auch als System-Einrichtung in Kurzform betrachten.

- Zielgruppe sind auf jeden jene, welche Arch installieren wollen und die Basics von Arch und "Linux" verstehen. (wie Handbuch öffnen mit: man <application>)

  • systemd-boot ist integriert.
  • nano ist integriert.
  • btrfs ist integriert.
 
Zuletzt bearbeitet: (Update)
Also ich finde Deine Anleitung gut. Die streift jeden Aspekt. Hat einen gewissen Checklisten-Charakter wodurch sie dann auch nicht zu lang wird, fügt aber auch immer Links dazu wo die Themen dann weitergehend behandelt werden.

Es gibt aber doch ein paar Sachen zu denen mir spontan ein paar Anmerkungeneinfallen. Es möchte das explizit nicht als Kritik verstanden wissen, sondern so eher Anregungen ob man das vielleicht mit einfließen lassen könnte.

Wenn man UEFI hat braucht man eigentlich kein GRUB mehr (und gewinnt dadurch nicht mal was selbst im Multi-System-Setup) und kann den eigentlich weglassen. Der einzige Fall wo man vielleicht trotz UEFI GRUB haben will ist, wenn man Secure-Boot einsetzt und kein signierten Kernel hat (z.B. weil die propritären nvidia-Treiber gebraucht werden).

Das Thema Backup kommt mir ein bisschen zu kurz. Da wird nur lapidar auf rsync verwiesen was als Backup-Tool eher weniger gut geeignet ist (keine Versionierung, keine Verschlüsselung usw.). Ich würde hier eher auf Lösungen wie Restic oder auch Borgbackup verweisen. Oder wenn man schon rsync nehmen will dann vielleicht auf rsnapshot verweisen, welches rsync nutzt aber zusätzliche Funktionen bietet wie Versionierung.

Beim Kapitel Security vermisse ich so ein paar Basics. Es werden zwar Geschütze aufgefahren wie AppArmor aber so paar einfache grundlegende Dinge fehlen. Zum Beispiel zu überprüfen welche (netzwerklauschende) Daemons laufen oder welche SUID und GUID-Binaries auf dem System sind. Oder die Nutzung von doas statt sudo oder chrony als schlanker und sicherer NTP-Client.

Bezüglich Firewall: Im Arch-Wiki befindet sich auch ein nette kleine nftables-Scripts die man direkt benutzen (oder ggf. anpassen) kann:
https://wiki.archlinux.org/title/Nftables#Examples

Den Verweis auf firejail finde ich gut. Das ist echt ein nettes Tool was die Security-Features von Linux ganz gut zugänglich macht um sich schnell mal ne Sandbox zu basteln.
 
  • Gefällt mir
Reaktionen: agon
Ich liebe euch alle!
Ich habe nun in der heutigen Version umfangreiche Änderungen vorgenommen!

- nano anstatt vi
Danke an @LochinSocke.

- btrfs mit snapshots (Snapper) & Dateikompression mit zstd
Danke an @LochinSocke. Btrfs mit Snapper einzurichten war etwas mühselig ;)

- systemd-boot statt GRUB
Danke an @ModellbahnerTT & @andy_m4.
Das Booten wurde stark auf meinem Notebook beschleunigt, da auch LUKS2 statt LUKS1, und weil wahrscheinlich /boot/ nicht verschlüsselt wird. Das Entschlüsseln ist mir vlt. dann doch etwas zu schnell? :o
Vlt. sollte man doch dann lieber Secure Boot benutzen? (Für Nicht-NVIDIA & -Windows Nutzer)

- Antworten an @andy_m4:
Bzgl. Backup:
Habe restic & borg als Backup-Lösungen mit Wiki-Eintrag ergänzt. Ich werde diesen Teil später wahrscheinlich ergänzen.

Bzgl. doas statt sudo:
sudo ist in der Gruppe base-devel enthalten und wird auch von pacman-contrib gut genutzt.
doas scheint mir noch nicht funktional ausgereift zu sein, bspw. das doas persist feature. Ich habe es aber dennoch als OPT ergänzt.

Bzgl. NTP-Client:
Habe das von der ArchWiki als empfohlen empfundene systemd-timesyncd integriert.

Bzgl. grundlegende Dinge wie bspw. zu überprüfen welche (netzwerklauschende) Daemons laufen oder welche SUID und GUID-Binaries auf dem System sind.
Ich habe eine Liste an Anwendungen bzgl. Security ergänzt. Könntest du da etwas empfehlen? Man sollte auch beachten, dass das How-To möglichst Arch-spezifisch sein sollte. AppArmor & Firejail ist integriert, da ich die für wichtig halte. Ich habe dann nur kleine Tipps & weiterführende Guides ergänzt.

Bzgl. Firewall werde ich später vlt. noch mehr dazu schreiben als nur firewalld zu nennen.:o
 
Zuletzt bearbeitet:
agon schrieb:
Gehen tut das ja. Man hat es nur aus sicherheitstechnischen Gründen standardmäßig deaktiviert (übrigens; das sicherheitstechnische Problem hast Du im Prinzip auch bei sudo; nur da kümmert sich halt keiner drum und man macht das einfach).
Allerdings braucht man das eh selten. Wenn ich weiß, das ich mehrere Befehle als "root" ausführen will dann mache ich halt ne interaktive Session auf statt vor jedem Befehl doas zu schreiben.
 
  • Gefällt mir
Reaktionen: agon
agon schrieb:
- nano anstatt vi
Danke an @LochinSocke.

War eigentlich als Witz gedacht. :freak: Da es außer in der Bedienung keinen Unterschied macht. Aber gut, jetzt ist es wirklich besser.
 
@LochinSocke Habe es nur geändert, da es für viele sicherlich einfacher zu benutzen ist. Persönlich nutze ich weiterhin vim.
Edit: Vim ist wieder zurück. Mit nano wurde es dann doch leicht "umständlicher".

@andy_m4 sudo ist nun weg. Das nftables Workstation Bsp. ist integriert.

Hat jmd. noch Verbesserungsvorschläge?
 
Zuletzt bearbeitet:
Arch ist nicht das Problem, sondern das man wissen muss, woran man beim Hardening schraubt und dafür braucht es jahrelange Erfahrung.

Man muss einen Guide ja nicht blind befolgen aber ich habe ein paar gute weitere Anhaltspunkte für mich gefunden, die ich mir definitiv näher ansehe. Inklusive der Kommentare der Benutzer, die länger Arch nutzen.

Ich sage einfach mal Vielen Dank für die Mühe!
 
  • Gefällt mir
Reaktionen: agon
Soo. Ich habe nun Secure Boot integriert. Um das "Unterzeichnen" zu vereinfachen und die EFI System Partition nur mit EFI Anwendungen zu versehen, entschloss ich mich für "Unified kernel images", welche man direkt aus der UEFI Firmware starten kann. Optional lässt sich auch systemd-boot integrieren, was nicht im How-To genannt wird.

Das automatische Unterzeichnen und Backupen der EFI Anwendungen übernehmen Pacman-Hooks.
Könnte sich vlt. jemand meinen angepassten "/etc/pacman.d/hooks/99-secureboot.hook"-Hook (insb. Trigger) anschauen?

Feedback zu dieser Version ist erwünscht!
 
Großes Update:
- Neu:
PipeWire: Automatische Änderung der Abtastrate, erhöhte Resample-Qualität, Verringerung der Standard-Latenz (verkleinerte Puffergröße), Leistungsoptimierung
- Neu: Firefox How-To für mehr Datenschutz, Sicherheit & nützliches wie bessere KDE-Integration. Viele Schadprogramme finden bekanntlich ihren Weg über den Internet-Browser.
- Neu: Abschnitte für Drucker, Scanner, CD, DVD, Blu-Ray
- Neu: Kleine Tipps für Instandhaltung & Fehlersuche bzgl. Arch Linux.
- Bessere Unterstützung von Thumbnails und weiteren Bildformaten wie JPEG XL & AVIF.
- Generelle Überarbeitung: Mehr Ergänzungen, Fehlerbereinigungen, etc.

Notiz für NVIDIA + Intel Nutzer:
Falls ihr das nvidia Paket installieren wollt, solltet ihr den Kernel Parameter "ibt=off" setzen, sonst bootet Linux 5.18 nicht.
Siehe https://wiki.archlinux.org/title/NVIDIA#Installation.
 
Zuletzt bearbeitet:
Zurück
Oben