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

Servus. Ich versuche mich gerade an deinem Guide in einer VM und ich mag deine Aufteilung im Allgemeinen, besonders den Teil gegen Ende, dass du auch Möglichkeiten gibst, Unterschiedlichstes zu konfigurieren. Ich versuche aber auch Vorschläge, Änderungen (mit Hervorhebung) in dein Dokument zu integrieren, da mir ein paar Sachen aus der Sicht eines fortgeschrittenen Laien auffallen.

Ein Problem, das mich Zeit gekostet hat, weil ich herausfinden wollte, ob das überhaupt wichtig ist - Deaktivierung von swapfile compression:
Code:
ERROR: Failed to set compression for /swap/swapfile: Invalid argument
Laut dem ArchWiki sollte dieser Schritt jedoch nicht mehr notwendig sein: Compression needs to be disabled as well but the No_COW attribute (previously set with chattr +C) takes care of that. Wird auch hier erwähnt.

Hat mich insgesamt einiges an Zeit gekostet, weil ich es erst beim vierten Mal geschafft habe, Arch vernünftig zu installieren. Bei den ersten beiden Malen habe ich den selben Fehler gemacht, jedoch nicht bemerkt, dass HOOKS=() schon unkommentiert ist...
Beim dritten Mal habe ich für die VM einen falschen Speicher erstellt (wegen anderer kurzer Probleme), es war dann statt vda eine sda angegeben. Konnte nicht über das UEFI hinaus.

Im Dokument habe ich für die bessere Übersicht die Code-Eingabe mit einem leicht grauen Rahmen hervorgehoben. Andere Änderungen/Vorschläge habe ich mit einem hellpurpurnen Rahmen hervorgehoben. Zum Teil ist es besser gewisse Hinweise früher zu vermerken, wie unter 3.11.1.
Mir war anfangs nicht klar, dass ich linux-zen statt linux schreiben sollte, auch wenn fettgedruckt war. Dann sehe ich deinen Hinweis und musste es korrigieren.
3.9.2 habe ich leicht angepasst, weil die Tabelle bei mir merklich anders ausgesehen hatte.
Und ich konnte vor dem ersten reboot nie umounten. Ständig war /swap ausgelastet. Ich habe es einfach ignoriert. Aber anfangs habe ich nach Lösungen gesucht, aber wenn es nicht wichtig ist, wieso überhaupt anführen?
Wieso nicht auch Hinweise anführen, wie man ohne Verschlüsselung installiert? Als Bsp. drinnen: To set up without encryption ignore 1.10.1 and 1.10.2. Das könnte man bei anderen wichtigen Passagen ergänzen.
Auch wäre es nützlich, zusätzlich zu plasma-meta auch plasma-desktop oder plasma (group - selber auswählen), falls eine bessere Auswahl und schlankeren Desktop haben möchte.

(Und jetzt verstehe ich, wieso die Dokumentdateien komprimiert sind... ._.)
 

Anhänge

  • Gefällt mir
Reaktionen: agon
@Deinorius Vielen Dank für dein Feedback!
- btrfs property set /swap/swapfile compression none ist nun weg. Habe auch den Verweis auf die man-page von btrfs hinzugefügt. Da steht das auch so.

- HOOKS=() sollte jetzt eindeutiger (& einheitlicher) dargestellt sein.

- vda neben sda wurde ergänzt. Bei VirtualBox kannst du übrigens einen NVMe-Controller hinzufügen (statt SATA-Controller). So hätte man dann auch eine /dev/nvme0n1-Disk.

- Bzgl. "Code-Eingabe mit einem leicht grauen Rahmen"
Normalerweise wird ein User-Befehl mit $ befehl & ein Root-Befehl mit # befehl gekennzeichnet. Das missfiel mir, da man so nicht leicht die Befehl-Zeile markieren & kopieren kann. In einigen Abschnitten war sowieso alles als Root. Von daher entschied ich mich für den Befehl in der mono-Schriftart, bei dem das Programm, sowie ggf. das folgende ">" fettgedruckt ist. Das ">" symbolisiert (meist) den nächsten Schritt.
Diese grafische Darstellung eines Befehls sollte in den meisten Fällen eindeutig genug sein. Es wäre (für mich) auch umständlich, den Schrift-Farbton eines Befehls in bspw. grün zu ändern.

- 3.11.1 (Preparing the unified kernel image) ist nun eindeutiger dargestellt.

- 3.9.2 Tabelle wurde aktualisiert (da neuere Version).

- umount -R hatte bei mir in VirtualBox auch nicht immer funktioniert. -> Vermerkt, dass man die Fehlermeldung ignorieren kann. Der Befehl ist aber optional (OPT). Warum ausführen? (Siehe https://wiki.archlinux.org/title/Installation_guide#Reboot)

- Bzgl. "Hinweise anführen, wie man ohne Verschlüsselung installiert":
Ich habe das nun nur bei gdisk vermerkt. Die Verschlüsselung ist ein "Key-Feature" bei der Installation. Ohne diese, würde bspw. "Secure-Boot" & somit auch "Unified kernel image" wenig Sinn machen. Man bräuchte wahrscheinlich auch einen anderen Mount-Point für die esp. Ich habe oft als Hinweis in den Headings "for LUKS" oder "for Hibernation" geschrieben. Das sollte (denke ich) genügen.

- Bzgl. "zusätzlich zu plasma-meta auch plasma-desktop oder plasma":
Entscheidender Vorteil: "Any new member packages will be installed when the meta package itself is updated with a new set of dependencies." – Quelle.
Bei plasma-meta finde ich fast alles sehr nützlich. Wenn man kein Thunderbolt hat, dann ist plasma-thunderbolt etwas sinnlos, aber das ist mMn. verkraftbar. Aus diesem Grund habe ich auch bei KDE Gear die Meta-Pakete benutzt. Ein zu schlankes KDE ist doch kein KDE mehr, oder doch?

- Bzgl. anderen möglichen "USB writing tools" kann man sich den Wiki-Eintrag anschauen. Ich habe mit den zwei genannten (& populären) Programmen imagewriter und Rufus sehr gute Erfahrung gehabt. Schlechte Erfahrung habe ich bspw. mit Ventoy gehabt.
Ergänzung ()

Changelog:
-Übernommene Änderungen von @Deinorius (siehe oben).
-Neu: Abschnitt "Virtualization" (KVM, QEMU, libvirt, Virt-Manager)
-> Dabei gab es Probleme mit der nftables-config aus der ArchWiki.
-> Neu: Firewalld als Firewall mit vorkonfigurierter libvirt-Zone.
-> Für Wechsler sollte man nftables.service davor deaktivieren & /etc/nftables.conf löschen.
- Andere kleine Fixes.
 
Zuletzt bearbeitet: (Changelog)
  • Gefällt mir
Reaktionen: Deinorius
Als VM nutze ich qemu mit virt-manager. Es ist abartig, wie schnell das bootet!
Mag ja sein, dass ohne LUKS secure boot und unified kernel image wenig Sinn machen, aber nicht jeder wird das auswählen. Ein Hinweis reicht ja.

Was mir noch eingefallen ist: Es wird auch so kaum erwähnt. Irgendwelche Gedanken, beim Formatieren die alignment size von 512b auf 4K zu erhöhen?

agon schrieb:
- Bzgl. "Code-Eingabe mit einem leicht grauen Rahmen"
Ein Alternativvorschlag, der sogar besser ist und die Möglichkeit, es einfach zu kopieren, immer noch ermöglicht. Du könntest eine Aufzählung aus den Zeilen machen, mit welchem Symbol auch immer. Pfeiloptionen gibt es genug.

agon schrieb:
Bei plasma-meta finde ich fast alles sehr nützlich. Wenn man kein Thunderbolt hat, dann ist plasma-thunderbolt etwas sinnlos, aber das ist mMn. verkraftbar.
Ich muss sagen, das ist ein gutes Argument. Und vieles, das zusätzlich zu plasma-desktop installiert wird, ist auch nützlich. Auf die Wallpaper könnte ich verzichten... Zumindest brauchen die Thunderbolt packages kaum Platz. Warum ist modemmanager nicht unter KDE-network-meta? Meh, I zuck scho wieda aus. :lol:
Aber die meta-packages der KDE applications werde ich niemals installieren. Zu viel ist zu viel. xD
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: agon
Deinorius schrieb:
Es ist abartig, wie schnell das bootet!
Mein Notebook, welches davor GRUB+LUKS1+LVM+Ext4 hatte, startet gefühlt 40 mal schneller (nicht übertrieben). Die Entschlüsselung der LUKS2-Partition geht wirklich sehr fix.
Man kann die "Startup Time" mit systemd-analyze bzw. systemd-analyze blame ermitteln.

- Bzgl. Unified Kernel Image
Ich habe mich da falsch ausgedrückt. Ich meine, es gibt bestimmt bessere Methoden als mit einem "Unified Kernel Image". Es ist natürlich nicht verkehrt, diesen zu benutzen.

- Bzgl. ohne LUKS
Könntest du mir schreiben, was du generell geändert hast. Wenn es nicht all zu viel ist, kann ich das ergänzen.

- Bzgl. beim Formatieren die alignment size von 512b auf 4K zu erhöhen
"gdisk and cgdisk handle alignment automatically." – Soße.
"gdisk performs partition alignment automatically on a 2048 512-byte sector (1 MiB) block size base which should be compatible with all Advanced Format HDDs and the vast majority of SSDs if not all." – Soße.
Edit: Du meinst sicherlich https://wiki.archlinux.org/title/Advanced_Format#Solid_state_drives.
Meine "Corsair Force Series MP510" (NVMe 1.3) unterstützt 512 Bytes & 4 KiB als Sektorgröße. Lt. doas nvme id-ns /dev/nvme0n1 habe ich mit 4 KiB die bessere Leistung. Dumm nur, dass die 512er Sektorgröße voreingestellt war & gerade aktiv genutzt wird. Warum tut man so etwas?


- Bzgl. Code-Hervorhebung
Das mit den Pfeil-Variationen wäre OK. Kannst du mir ein paar Stellen nennen, bei dem du es nicht eindeutig genug findest? Ich habe schließlich nach dem ">" mitunter hingeschrieben, dass man bspw. auskommentieren soll, oder dass es eine Ausgabe ist. Grün-markiertes sind Hinzugefügtes & Rot-markiertes Löschungen.
Ich werde die Farbe "Brick (orange)" in Zukunft einheitlicher bei "Dingen" benutzen, welche man ändern sollte bzw. kann.

- modemmanager ist in plasma-meta, aber nicht in plasma-desktop enthalten!
modemmanager > modemmanager-qt > plasma-nm > plasma-meta & plasma-desktop (optional)

- Bzgl. KDE Gear Meta-Pakete
kde-system-meta geht doch voll fit.
Bei kde-utilities-meta gehe ich mit. Aber kteatime ist doch ein Must-Have eines jeden Tee-Trinkers! ;)
Ich habe die mMn. nützlichen Pakete nun in kde-utils.txt aufgenommen.
plasma-workspace-wallpapers mit 80 MB ist schon groß. Wenn man in die "Package Contents" geht, erkennt man, dass die meisten Bilder in mehrere Auflösungen ausgeliefert werden. Oft von 640x480 bis 2560x1600, aber kein UHD od. 4K. Auch für das Seitenverhältnis 16:10 wird mitgeliefert. MMn. würden FHD, WQHD & UHD ausreichen (alles in 16:9).
 
Zuletzt bearbeitet:
agon schrieb:
Die Entschlüsselung der LUKS2-Partition geht wirklich sehr fix.
Das sehe ich. Ich sehe nur für mich keinen nennenswerten Vorteil, das ist alles.

agon schrieb:
Könntest du mir schreiben, was du generell geändert hast. Wenn es nicht all zu viel ist, kann ich das ergänzen.
Ich bin noch am Testen und generell mehrfachem Einlesen von btrfs. Zumal ich ein Online-Skript für mich bearbeite (in Richtung deines How-to), das das alles automatisieren soll. (Noch lange nicht fertig.) Im Grunde lasse ich einfach die LUKS-spezifischen Zeilen weg. Aber ich überlege noch ein weiteres subvolume hinzuzufügen.
Da ich von Dual-Boot weg will, wird zumindest eine Windows VM mittels qemu standardmäßig hinzukommen. Dabei kann var/lib/libvirt groß genug werden. Backup brauche ich dafür sicher nicht und CoW sollte dafür am besten auch deaktiviert werden (wobei ich nocow erst nach dem mounten aller subvolumes mache). Also...

Bash:
mount -o compress=zstd,subvol=@var_lib_libvirt "${DISK}3" /mnt/var/lib/libvirt
chattr +S /mnt/var/lib/libvirt

agon schrieb:
"gdisk and cgdisk handle alignment automatically." – Soße.
Welp, noch was zum Einlesen/Drüberfliegen. :D

agon schrieb:
Das mit den Pfeil-Variationen wäre OK. Kannst du mir ein paar Stellen nennen, bei dem du es nicht eindeutig genug findest?
Es ist nicht so, dass ich es nicht eindeutig genug empfinde, aber die Übersichtlichkeit wird verbessert. Z.B.:
  • vim /etc/locale.gen
Uncomment (using [Del] in normal mode):
de_DE.UTF-8 UTF-8​
#en_DK.UTF-8 UTF-8​
en_US.UTF-8 UTF-8​
#ja_JP.UTF-8 UTF-8​
#ko_KR.UTF-8 UTF-8​
Nur ein grobes Beispiel. Statt dem Punkt kann ein bestimmter Pfeil verwendet werden, der eindeutig ist. Gegenargument wäre vielleicht, dass es einen dazu verleitet, schneller durch den Eingabecode zu flitzen, aber IMO gerade beim ersten Mal geht man langsam vor, weil sich sonst Fehler einschleichen.

agon schrieb:
Meh, kcron und khelpcenter sind gut, aber ich brauche es dennoch nicht. ¯\(ツ)

agon schrieb:
Bei kde-utilities-meta gehe ich mit. Aber kteatime ist doch ein Must-Have eines jeden Tee-Trinkers! ;)
Wann ich meinen Tee zu trinken habe, habe ich im Blut. :p

agon schrieb:
Ich verstehe nicht, wieso man diesen ins meta-package haut. OK, ich verstehe es schon, gefallen tut es mir dennoch nicht. 16:10 Wallpaper finde ich auch wichtig. Wenigstens verbreiten sich die wieder mehr auf Laptops. Aber das führt auch zum Gedanken, dass man 16:9 und 16:10 trennen könnte, und natürlich reichen FHD, QHD und UHD (für Steam Deck dann separat). Aber das führt wieder zum Denken, dass eine separate Installation auch gereicht hätte.
 
  • Gefällt mir
Reaktionen: agon
- var/lib/libvirt
Habe nun das subvolume ergänzt. Ich habe allerdings [B]chattr[/B] +C /mnt/var/lib/libvirt nach dem arch-chroot /mnt (im Virtualization-Abschnitt) ergänzt.

- Wozu eigentlich chattr +S /mnt/var/lib/libvirt? Konnte nicht wirklich dazu etwas finden.

- vim /etc/locale.gen habe ich etwas übersichtlicher gestaltet.
Ich möchte ungern etwas auf der gleichen Zeile stehen haben. Ich führe gerne mehrere Zeilen bzw. Befehle in einem Rutsch aus (nur 1x enter).

- Wenn man die Task-Leiste nach links oder rechts verschiebt, hat man doch auch bei einem 16:9-Bildschirm auch das 16:10-Feeling, oder nicht? ;)
Ich frage mich, warum sie nicht einfach nur WQHD- & UHD-Wallpaper genommen haben, sodass man die diese dann nur lokal herunterskaliert würde.

- Ich werde später eine größere Einleitung schreiben. Als nächsten Abschnitt hatte ich "Empfehlenswerte Hardware" im Sinne.
 
agon schrieb:
- Wozu eigentlich chattr +S /mnt/var/lib/libvirt? Konnte nicht wirklich dazu etwas finden.
Meine eigentliche Quelle habe ich jetzt auf die Schnelle nicht mehr wiedergefunden, zu faul. Da ging es auch mehr um VirtualBox VDIs.
Aber eine kurze Suche hat diese Seite zu Tage gebracht, wo direkt libvirt erwähnt wird. Es geht einfach darum, dass CoW die I/O performance nicht reduziert. (Edit: Ich sollte alles lesen. CoW wird anscheinend von libvirt direkt deaktiviert... Meh, man kann auf Nummer sicher gehen. :D )
Das bringt mich eigentlich auch dazu, ob es nicht sogar Sinn machen würde, CoW für Spiel-spezfische Ordner (also /home/user/.steam z.B.) ebenfalls zu deaktivieren. Zumindest in diesem reddit Thread dürfte CoW eher Vorteil für gewisse Sachen haben. Um zu zitieren:

The main benefits of BTRFS for gaming are:
  • Transparent compression (can compress many emulator ROMs without zip/7zip etc) # Weniger interessant, da gaming assets schon komprimiert sind. Auch nutze ich für ROMs viel lieber 7z bzw. CHD.
  • Dupe removal (all of those wineprefixes can share the space they use) # DAS finde ich extrem interessant. Mich nervt das gewaltig, wie verschwenderisch prefixe aus Sicht der Platznutzung sind.
  • CoW for installing mods, testing fixes, etc. Just make a reflink copy before trying any mods and the backup will be made near instantly and without taking up any additional space (just the space for the mods you add). # Faszinierend!
  • Snapshots for your save games. Your savegame get corrupted and the cloud version also gets corrupted (or the game doesn't have cloud saving)? Just get the save from the previous snapshot. Ideally, have backups as well, but this has saved me on numerous occasions in the case where my backups haven't been updated yet. # Zugegeben, weniger häufig ein Problem, aber durchaus eine interessante Option!

agon schrieb:
Ich möchte ungern etwas auf der gleichen Zeile stehen haben. Ich führe gerne mehrere Zeilen bzw. Befehle in einem Rutsch aus (nur 1x enter).
Ist auch absolut korrekt so. Deswegen finde ich eine Art Markierung für den Ausführungscode noch übersichtlicher.

agon schrieb:
- Wenn man die Task-Leiste nach links oder rechts verschiebt, hat man doch auch bei einem 16:9-Bildschirm auch das 16:10-Feeling, oder nicht? ;)
:stacheln:

agon schrieb:
Ich frage mich, warum sie nicht einfach nur WQHD- & UHD-Wallpaper genommen haben, sodass man die diese dann nur lokal herunterskaliert würde.
Gerade unter Linux-Usern sollte das keine große Sache sein. Mit Gwenview ist das ja pipi-einfach. Oder halt einfach nur die höchste Auflösung liefern und bei Verwendung auf die jeweils genutzte Auflösung runterskalieren, das dürfte heutzutage ja keine nennenswerte Sache sein.

agon schrieb:
- Ich werde später eine größere Einleitung schreiben. Als nächsten Abschnitt hatte ich "Empfehlenswerte Hardware" im Sinne.
In welche Richtung würde das gehen? Minimale Leistung? Linux-kompatible Hardware? Welche Hardware definitiv nicht unterstützt wird?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: agon und todschick
Deinorius schrieb:
CoW wird anscheinend von libvirt direkt deaktiviert.
Gut zu wissen.

- CoW für Spiel-spezfische Ordner (also /home/user/.steam z.B.) ebenfalls deaktivieren?
Einige berichteten, dass man bei einer relativ schnellen SSD (bspw. NVMe) keine FPS-Probleme bekommen sollte.

- transparent and automatic compression (https://wiki.archlinux.org/title/Btrfs#Compression):
Die Kompression wird nur ausgeführt, wenn festgestellt wurde, dass die erste Portion der Datei auch kleiner werden würde. Der SSD kommt die Kompression jedenfalls zugute. Btw. 7z = 7-Zip.

- "Empfehlenswerte Hardware"
Es wird sich (erst mal) rund um den PC "gedreht". Also so Sachen wie:
  • Monitor: Sollte mit DP verbunden sein (statt HDMI). HDR noch irrelevant.
  • RAM: ECC > DDR5 (oder DDR4 mit ECC)
  • Aktuelle dGPU: AMD > Intel >> NVIDIA (wahrscheinlich)
  • CPU:
-- Sichere Virtualisierung: AMD Pro oder Intel …?
-- Für IOMMU: iGPU
-- Upgradebar (DDR5): AMD > Intel
-- Kleinerer, zukünftiger Leistungsverlust wegen Microcode (mitigations): AMD (-) > Intel (--)
- Mainboard:
-- Sollte populär sein > besserer/längerer Support (?)
-- Ethernet & Wireless: Intel > Realtek
-- Sensor-Treiber oft (etwas später nach Release) vorhanden bei: ASUS (Community-Treiber), ASRock?, MSI?, Biostar?
Gigabyte-Mainboards verursachen anscheinend schon so oft Probleme (also mehr als die anderen Hersteller).
  • OPT: NVMe SSD: Möglichst aktuelle NVMe Spezifikation (1.4, 2.0+).
  • Zu den Druckern & Scannern wurde schon verwiesen.
  • Zur Peripherie könnte man auf die unterstützten Geräte der jeweiligen Software verweisen.

So allgemein wie möglich, keine expliziten Modelle.
 
Ich persönlich werde dennoch chattr +S für libvirt ausführen. Einfach sicherheitshalber. ;)

Zu CoW wegen Spielen deaktivieren, werde ich wohl eh nicht machen. Auch bei SATA-SSDs nicht.

agon schrieb:
Ich weiß, wieso? Ich habe nur geschrieben, dass btrfs zstd Komprimierung für mich kein Ersatz für direkte Komprimierung ist. Ich würde mal nachsehen wollen, wie weit die Unterschiede sind.
Ich sehe als direkten Vorteil, dass besonder kleine Dateien weniger Platz einnehmen, einfach weil diese lesbar bleiben müssen, ohne direkt komprimiert zu sein, aber über das FS dennoch sind.

Wenn du Hardware-Empfehlungen ausgeben willst, dann pass bitte auf. Die erste Regel sollte gelten. Für den jeweiligen Anwendungszweck eigene Empfehlungen!
Das müsstest du dann auch für die Arch Installation hinzufügen. Für wen ist das gedacht? Braucht jeder encryption oder linux-hardening?
ECC ist für den normalen User uninteressant, aber, sofern ich mich nicht irre, in DDR5 immer dabei?
Zu den microcodes könntest du auch als Warnung hinschreiben, dass Leistungsoptimierungen wie "mitigations=off" aus Sicherheitsgründen nicht durchgeführt werden sollten, außer man kappt den Zugang zum Internet.
Je mehr du diese Empfehlungen einpflegst, umso eher musst du daran denken, dass die Leser des Tutorials noch mehr Anfänger sind.

Eine andere Sache, da ich gerade versuche, das Tutorial für mich vollständig zu automatisieren, fehlt besonders die Möglichkeit, Textdateien ohne weitere Eingaben auszuführen. Ich werde es so machen.

Bash:
#uncomment
sed -i '125,177 s/^#//' /etc/local.gen
Bash:
#add lines
echo "127.0.0.1    localhost" >> /etc/hosts
echo "::1    localhost" >> /etc/hosts
echo "127.0.1.1    myHostname" >> /etc/hosts
Bash:
#replace lines
sed -i '14 s/.*/BINARIES=(btrfs)/' /etc/mkinitcpio.conf
sed -i '52 s/.*/HOOKS="base systemd keyboard autodetect sd-vconsole modconf block sd-encrypt keymap consolefont resume filesystems fsck"/' /etc/mkinitcpio.conf

Die Zahlen stellen natürlich die Zeilennummern dar und bei sed werden regex (regular expressions) verwendet. Man kann die Zeilen auch direkt angeben. Wenn man Parallele Downloads in pacman.conf aktivieren will, also die Zeile unkommentiert werden soll, geht das auch ohne die Zeile vollständig auszuschreiben:
Bash:
sed -i 's/^#Para/Para/' /etc/pacman.conf
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Kaito Kariheddo
  • Ich habe mich nur gewundert, warum du einmal "7zip" & dann "7z" geschrieben hast.
  • Bei sed würde ich das nicht nach der Zeilennummer festmachen. Bspw. wurde /etc/locale.gen (als ich mal pacdiff ausgeführt habe) geändert.
  • Bei den HOOKS solltest du sd-encrypt entfernen. Habe dazu nun auch eine Notiz gemacht.
  • consolefont ist in sd-vconsole enthalten, siehe https://wiki.archlinux.org/title/Mkinitcpio#Common_hooks.
Statt
Deinorius schrieb:
echo "127.0.0.1 localhost" >> /etc/hosts echo "::1 localhost" >> /etc/hosts echo "127.0.1.1 myHostname" >> /etc/hosts
könntest du
Bash:
echo -e "\
127.0.0.1\tlocalhost\n\
::1\tlocalhost\n\
127.0.1.1\tmyHostname" > /etc/hosts
schreiben.

Unlike DDR4, all DDR5 chips have on-die ECC, where errors are detected and corrected before sending data to the CPU. This, however, is not the same as true ECC memory with an extra data correction chip on the memory module. DDR5's on-die error correction is to improve reliability and to allow denser RAM chips which lower the per-chip defect rate. There still exist non-ECC and ECC DDR5 DIMM variants; the ECC variants have extra data lines to the CPU to send error-detection data, letting the CPU detect and correct errors that occurred in transit. – Quelle

Changelog:
  • Abschnitt "Hardware Recommendations" wurde nun ergänzt. Feedback ist erwünscht.
  • Habe als Optionales die "Deaktivierung der Retbleed-Mitigation" ergänzt.
  • "Preparing the disk" wurde ergänzt.
  • Andere kleine Fixes.
Changelog(2):
  • Neu: Grüner Strich an der linken Seite einer Zeile verdeutlichen einen Befehl (Neu: Command-Style)
 
Zuletzt bearbeitet: (Command-Style)
Habe nun seit längerer Zeit wieder die Installation im neuen virt-manager (ohne swap) ausprobiert.
Dabei gab es zwei kritische Fehler, die ich nun beseitigt habe:
1 - pacstrap konnte wichtige Pakete nicht installieren, da archlinux-keyring von der ISO veraltet war. Das Problem hatte ich noch nicht. (In diesem Monat wurde relativ oft archlinux-keyring aktualisiert.)
-> pacman -Sy archlinux-keyring && pacstrap …

2 - "Create UEFI boot entries for the .efi files – efibootmgr" ist bei Nicht-NVMes (vda, sda, …) wohl anders.
-> Anstelle von --disk /dev/nvme0n1p1 wird nun --disk /dev/nvme0n1 --part 1 benutzt.


Änderungen:
  • Neu: QEMU Guest Einbindung in /etc/mkinitcpio.conf.
  • Vieles ist nun Copy&Paste-freundlicher -> (weniger Fehler &) die Installation geht noch schneller :)
  • Standard-Kernel ist nun linux-zen (da es mittlerweile auch die VIRTUALBOX-GUEST-MODULES hat).
  • Notizen zur "Kernel command line" hinzugefügt, falls man keine Hibernation oder LUKS (Feedback?) benötigt.
  • Kleine Umstrukturierung. Bspw. nach einem Neustart kommt ein neuer Abschnitt (z.B. bei "Secure Boot").
  • Die üblichen Fehlerkorrekturen.

TODO:
  • fwupd, auch interessant bzgl. Hardware-Empfehlungen.
  • Später: Größere Einleitung
 
Zuletzt bearbeitet:
Ich bin gerade ziemlich damit beschäftigt, diese autoinstall script anzupassen. Derzeit bootet gar nix und Ordner wie /home/user, die vor dem reboot existiert haben, gibt's nimma. Da habe ich wohl noch einiges vor mir...

agon schrieb:
Bei sed würde ich das nicht nach der Zeilennummer festmachen. Bspw. wurde /etc/locale.gen (als ich mal pacdiff ausgeführt habe) geändert.
Danke. Habe ich sogar kurz bevor ich das gelesen habe, schon geändert. Nur bei mkinitcpio.conf lasse ich es noch bei Zeilennummern.

agon schrieb:
Bei den HOOKS solltest du sd-encrypt entfernen. Habe dazu nun auch eine Notiz gemacht.
Auch schon geändert, habe mich schon mit den hooks beschäftigt.
Ich musste auch feststellen, dass ich beim Schreiben der hosts den Fehler gemacht, regex im Befehl nicht zu aktivieren. Deshalb wurden statt Tabs direkt \t hineingeschrieben. Diese kleinen Fehler...

Zu DDR5 & ECC: Ja, so war das. Wie gesagt, ECC ist nicht für jeden relevant, eher nur für wenige.

Zu archlinux-keyring: Das Problem hatte ich auch schon mehrfach, aber direkt zu Beginn der Installation. Da reicht es anscheinend, wenn man nach dem live boot rund 30 s wartet.

agon schrieb:
"Create UEFI boot entries for the .efi files – efibootmgr" ist bei Nicht-NVMes (vda, sda, …) wohl anders.
-> Anstelle von --disk /dev/nvme0n1p1 wird nun --disk /dev/nvme0n1 --part 1 benutzt.
Merkwürdig, ich hatte damit mit qemu keine Probleme.

Ist der reboot nach der Erstellung der EFI Einträge eigentlich wichtig? Bzw. ist das für secure boot relevant? Ich versuche derzeit EFI erst gegen Ende einzurichten und davor keinen reboot durchzuführen. Zumindest beim originalen Script und mit grub geht das.
 
Zuletzt bearbeitet:
Deinorius schrieb:
Da reicht es anscheinend, wenn man nach dem live boot rund 30 s wartet.
Lustig. Im offiziellen Installation guide steht darüber nichts.

Deinorius schrieb:
Merkwürdig, ich hatte damit mit qemu keine Probleme.
Gerade im funktioniereden Arch-Gast nochmal probiert -> funktioniert. Scheint dann wohl ein Tippfehler von mir zu sein (da ich nicht nvme0n1 mit vda ersetzt habe).

Deinorius schrieb:
Ist der reboot nach der Erstellung der EFI Einträge eigentlich wichtig? Bzw. ist das für secure boot relevant?
Es ist wirklich nur ein "Check", ob das System richtig bootet. Bei Fehlern kann man so den Suchradius eingrenzen. Die Installation (also bis Abschnitt "Secure Boot") ist mMn. der schwierigste bzw. der fehleranfälligste Teil. Deswegen würde ich dir auch empfehlen, das Skript erst mal bis zu jenem Schritt laufen zu lassen. Dann halt nach Fehlern Ausschau halten.
Secure Boot ist separat. Deswegen nun auch in einem eigenständigen Abschnitt.

Kurz die 0-preinstall.sh überflogen:
  • die BIOSBOOT-Partition braucht man bei einem EFI-System nicht.
  • Bei mkdir -p /mnt fehlt lib/libvirt.
  • dd if=/dev/zero of=/mnt/swap/swapfile ... benötigt man nicht.
 
Mittlerweile habe ich einige Sachen ausprobiert. Ein Vorschläge zur Anpassung sind vorhanden und andere Fragen.

agon schrieb:
Lustig. Im offiziellen Installation guide steht darüber nichts.
Ich müsste es eigentlich wieder testen. Ich umgehe dieses mögliche Problem, indem ich pacman && git clone && cd && ./.sh auf einmal eingebe und das mich zum Skript führt. Das Eingeben dauert lange genug, dass dieses Problem nimma auftritt.

agon schrieb:
Kurz die 0-preinstall.sh überflogen:
  • die BIOSBOOT-Partition braucht man bei einem EFI-System nicht.
  • Bei mkdir -p /mnt fehlt lib/libvirt.
  • dd if=/dev/zero of=/mnt/swap/swapfile ... benötigt man nicht.
Gewisse Sachen habe ich schon selber geändert gehabt. Den zweiten Punkt habe ich wirklich übersehen. Danke. So läuft alles wunderbar. Es stört nur, dass ich nicht völlig alles automatisieren kann. Zumindest nicht mit meinem geforkten Skript.

Vorschläge:
Bei den Subvolumes kann man gleich var/lib/libvirt/images nehmen. Der Rest in libvirt ist nur ein paar KiB groß.
Für Vim kann man "syntax on" eingeben, wenn man es sich einfach machen möchte. Für die fertige Installation kann man eine Datei anpassen. Dann hat man auch gleich Zeilennummern (wieso ist das nicht automatisch aktiv?).

Bash:
echo -e '"Syntax highlighting\nsyntax on\n"Number lines\nset number\n"Autocomplete\nset wildmenu\n"Highlight matching brackets\nset showmatch\n"Search tweaks\nset incsearch\nset hlsearch' > /etc/vimrc

Eine weitere Möglichkeit zum Tweaken wäre das Einstellen der Swappiness, damit nicht zu oft auf Swap geschrieben wird, wenn man genug RAM hat.

Bash:
sysctl vm.swappiness=10 # For temporary change
echo "vm.swappiness=10" > /etc/sysctl.d/99-swappiness.conf # Permanently set

Beim Wechsel auf zsh empfiehlt es sich auch gleich die weiteren Vorteile zu installieren, wie autosuggestions und completions.

Bash:
sudo pacman -S --noconfirm --needed zsh zsh-autosuggestions zsh-completions zsh-history-substring-search zsh-syntax-highlighting zsh-theme-powerlevel10k
Dazu entweder grml-zsh-config oder oh-my-zsh-gitAUR nehmen. Ich habe für mich die config von manjaro genommen, gefällt mir persönlich sehr gut. Wegen einer einzelnen Zeile im PKGBUILD habe ich es geforkt, damit es einfacher wird.

Bash:
git clone https://aur.archlinux.org/nerd-fonts-noto-sans-mono.git && cd nerd-fonts-noto-sans-mono && makepkg -si --noconfirm %% cd ~ # extra dependency
git clone https://github.com/Deinorius/deino-zshconf && cd deino-zshconf && makepkg -si --noconfirm && cd ~
rm -rf deino-zshconf nerd-fonts-noto-sans-mono
cp /etc/skel/.zshrc /home/$USERNAME/
sudo sed -i 's/\/bin\/bash/\/bin\/zsh/' /etc/passwd
Aus irgendeinem Grund wird die /roor/.zshrc aus der config zwar kopiert, bleibt aber dennoch Standard und greift nicht. Die letzte Zeile setzt für root und user zsh zum Standard, was du mit chsh zeigst.

Frage meinerseits: Fällt jemandem ein Regex Code ein, mit dem man einen String aus einer Tabelle, wie man zum Anzeigen des PHYSICAL OFFSET bekommt? Ich schaffe es nur, jeweils den letzten String jeder Zeile zu bekommen, aber auch nur soweit, wenn die Zahl immer gleich viele Ziffern hat.
 
Deinorius schrieb:
Ich umgehe dieses mögliche Problem, indem ich pacman && git clone && cd && ./.sh auf einmal eingebe
Das Problem kam ja nur zustande, da archlinux-keyring veraltet war.
Deswegen pacman -Sy archlinux-keyring. Steht auch im Troubleshooting-Abschnitt. Oder meinst du etwas anderes?

Deinorius schrieb:
Bei den Subvolumes kann man gleich var/lib/libvirt/images nehmen.
Das hatte auch schon überlegt. Ich weiß halt nur nicht, inwiefern die qcow2-Dateien von dem Rest abhängen.
Frage: Gibt es eigentlich die Möglichkeit einer neuen VM von vornherein bspw. 4C/8T mit 8 GiB zuzuweisen (vorzugsweise als Override-Datei)?

Deinorius schrieb:
Für Vim kann man "syntax on" eingeben
Syntax highlighting sollte doch aktiviert sein?
Die Default-Konfigurationsdateien (Global Vim files) sollten /usr/share/vim/vimfiles/archlinux.vim & /usr/share/vim/vim90/defaults.vim sein. Das Fehlen der Zeilennummern stört mich bei Vim nicht so.

Deinorius schrieb:
werde ich integrieren.

Deinorius schrieb:
Beim Wechsel auf zsh empfiehlt es sich auch gleich die weiteren Vorteile zu installieren, wie autosuggestions und completions.
Die Pakete zur Zsh sind in zsh.txt enthalten. Eine zsh-Konfigurationsdatei ist auch enthalten. Später werde ich diese Datei etwas überarbeiten, aber schlecht ist sie jedenfalls nicht.
Wenn man Dateien kopiert, sollte man (glaube ich) darauf achten, dass User-Dateien auch als User kopiert werden und nicht als Root. Sonst kann der User nicht darauf zugreifen. Sonst könnte man auch User & Group der Datei ändern, dann sollte es auch gehen.

Deinorius schrieb:
Um nur die 2. Zeile des Outputs eine Befehls auszugeben, könnte man
- ./btrfs_map_physical /swap/swapfile | awk -F: 'NR==2 {print $1}'
oder
- ./btrfs_map_physical /swap/swapfile | head -n 2 | tail -n 1
benutzen.

Im Falle, dass sich die Position von "PHYSICAL OFFSET" ändert, müsste man erst die Postion von "PHYSICAL OFFSET" (in der 1. Zeile) finden, und dann den Wert in der 2. Zeile an jener Postion ausgeben.
 
Stimmt eh. Ist aber auch eine Methode, das zu umgehen, zumindest bei mir. :D

Zu den VMs:
Die .qcow2 Dateien sind ja nur der Massenspeicher. Den kannst löschen und ersetzen. Man sollte aufpassen, dass es dann auch als /dev/vda und nicht sda erkannt wird.
Ich kann aber auch nicht sagen, wie die reagieren, wenn die Datei einfach weg ist. Kann ich ja mal testen.
Was meinst du mit der neuen VM? Wenn man eine neue erstellt, weist man dieser so oder C/T und RAM zu. Das muss noch nicht mal eine neue VM sein.

Zu Vim:
Interessant. Da muss mir etwas entgangen sein. Danke für den Hinweis. Habe den Befehl abgewandelt. Ein paar der Settings waren schon drin.
Bash:
echo -e '"Number lines\nset number\n"Highlight matching brackets\nset showmatch\n"Highlight search result\nset hlsearch' >> /usr/share/vim/vim90/defaults.vim

Zu zsh:
Du kannst die Möglichkeiten im Dokument zusätzlich erwähnen, auch dass du eine eigene config drin hast.
Du hast Recht, dass man mit der ownership aufpassen muss. Ich nutze deshalb zu Schluss eh chown -R (gleich für ganz .config und .local). Mein Problem ist eher, dass /root/.zshrc das originale bleibt und anscheinend nicht aus der config kopiert wird. Zumindest wird in der .log nichts angedeutet.

Zu PHYSICAL OFFSET:
Ah, das könnte schon eher funktionieren, gerade da der Wert am Ende der Zeile ist. Muss ich später ausprobieren, dann kann ich die Option Hibernation hinzufügen.
Hast du eine Idee, wie man per Regex z.B. stringTABstringTABstring unterscheidet? Oder statt TAB auch Leerzeichen?
 
Deinorius schrieb:
Was meinst du mit der neuen VM?
Mit 4C/8T, etc. meinte ich Voreinstellungen, welche für alle neuen VMs (in Virt-Manager) gelten sollen, sodass man diese nicht immer wieder separat einzustellen braucht.

Deinorius schrieb:
... >> /usr/share/vim/vim90/defaults.vim
Die Dateien in /usr/share/ können nach einem Programm-Update komplett überschrieben werden.

Es gibt 3 übliche Orte für Konfigurationsdateien:
  • Benutzer-spezifisch: Im HOME-Verzeichnis des jeweilgen Benutzers.
  • System-weit: In /etc/
  • Fallback: In /usr/share/. Gilt, wenn keine Konfigurationsdateien existieren.

Deinorius schrieb:
https://wiki.archlinux.org/title/Zsh#Startup/Shutdown_files

Die interactive shell config sollte diese sein: /etc/zsh/zshrc
Habe ich nun gefixt.
Ich bin übrigens mit Powerlevel10k zufrieden. Ist auch kein AUR-Paket.

Deinorius schrieb:
Hast du eine Idee, wie man per Regex z.B. stringTABstringTABstring unterscheidet? Oder statt TAB auch Leerzeichen?
Wenn du nur das letzte Element bekommen möchtest kannst du auch:
./btrfs_map_physical /swap/swapfile | awk -F: 'NR==2 {print $1}' | rev | cut -f 1
benutzen (rev = reverse; cut -f 1 = 1. Feld).

Bei dem cut-Befehl wird TAB als field delimiter benutzt.
Für Leerzeichen als Trennzeichen einfach cut -d " " -f 1.

Möchtest du eigentlich meine Vorversion schon erhalten. Würde sonst wahrscheinlich morgen oder übermorgen updaten.
 
Kannst mir gerne schicken. Habe nur noch heute richtig Zeit. Ab Mi bin ich in der Organisationshölle.

Ich habe jetzt nicht gefunden, wo die config für libvirt gespeichert wird, aber die qcow Dateien sind es wohl kaum, da nur der Massenspeicher. Sollte also passen.

agon schrieb:
Die Dateien in /usr/share/ können nach einem Programm-Update komplett überschrieben werden.
Das habe ich jetzt völlig ignoriert, aber stimmt ja. Dabei liebe ich es gerade, wie gut man die Einstellungen in Linux durch den HOME Ordner wiederherstellen kann. Ich werde das wohl auch anpassen.
agon schrieb:
Die interactive shell config sollte diese sein: /etc/zsh/zshrc
Der Ordner beinhaltet nur eine Datei, die auf /etc/profile verweist und diese verweist z.T. auf Skripte in /etc/profile.d. Manchmal frage ich mich, ob Programmierer einen Schuss haben, oder ob das eine jahrzehntelange Kompatibilitätssache ist. :freak:
Die zsh config findet man für user unter /home/user/.zshrc und für root, wenn man sudo -s eingibt, unter /root/.zshrc. Wobei diese config, beide gleich, auf zwei Dateien unter /usr/share/zsh verweisen. Soweit eh alles klar, nur nicht, dass /root/.zshrc anscheinend nicht wirklich kopiert wird.

Danke für die Regex Vorschläge. Ich werde mich hoffentlich erst nächste Woche da ran wagen. ;-)
 
Deinorius schrieb:
Ich habe jetzt nicht gefunden, wo die config für libvirt gespeichert wird
In /etc/libvirt/ (?)

Deinorius schrieb:
Kannst mir gerne schicken.
Vorversion im Anhang.
Wow, ich kann ODT-Dateien hochladen! :daumen:

Changelog:
  • Initramfs wurde leicht überarbeitet.
  • Neu: "Lower swappiness value"
  • Neu: In "Kernel command line (with your kernel parameters)": "Disable staggered spin-up", "OPT: Less output during boot" für schnellere Bootzeiten.
  • Änderung: Die EFI-Keys sind nun in /root/efi-keys/.
  • Neu: Farbe aktiviert für pacman & somit auch für paru.
  • Neu: "Improving compile times – Makepkg"
  • In AppArmor wurde das "integrity" Modul hinzugefügt (Änderung seitens ArchWiki)
  • In Snapper: Es werden nun 10 Pacman-Transaktionen gesnapshottet (statt 25); "efibackup.hook" wurde in "95-efibackup.hook" umbenannt (Änderung seitens ArchWiki)
  • In Zsh: Zsh auch für den Root-Nutzer; Configuration leicht überarbeitet.
  • In Hardware Recommendations: Fixes & fwupd hinzugefügt.
  • Andere kleinere Fixes, Ergänzungen & optische Überarbeitungen.
Update:
  • Die EFI executables sind nun unter /efi/EFI/Linux, falls jemand gerne systemd-boot benutzen möchte, erkennt es dann automatisch die .efi-Dateien.
  • "Table of Contents" nur noch bis einschließlich Level 2 (für eine bessere Übersicht).
  • Subvolume "@var_lib_libvirt" -> "@var_lib_libvirtImages"
  • Neu: Subvolume "@var_lib_containers" für Podman.
 
Zuletzt bearbeitet:
Bin jetzt endlich dazugekommen, durchzuschauen. Zu viel Stress...

agon schrieb:
In /etc/libvirt/ (?)
Richtig. Und auch gefunden. Ganz normale Textdateien im Grunde. In dem Fall kann man /var/lib/libvirt/images so nehmen.

Bei "Improving compile times" könnte man auch folgendes allgemein hinzufügen. MAKEFLAGS="-j$(($(nproc)+1))". Macht vielleicht bei vielen Cores weniger Sinn? Schade vielleicht auch nicht.

Seite 41, 55 und 78 sind völlig leer. (Zumindest in libreoffice bei mir.)

Magst vielleicht unter power profiles als Alternativen neben TLP auch powertop oder auto-cpufreq angeben? Die Entscheidung könnte auch unterschiedlich ausfallen, je nachdem, ob man Desktop oder Laptop nutzt.

Ich verstehe noch immer nicht, wieso ich [B]localectl[/B] set-x11-keymap de manuell ausführen konnte. In meinem Skript will es aber nicht geben. Es gibt zwar dazu ein issue im archinstall github, aber das erscheint mehr Aufwand als sinnvoll.

Set kernel paramters (for unified kernel image) << Tippfehler

Zur "resample quality": IMO sollte ein Hinweis dabei stehen. If you're not sure, if you need this, don't change it. Voodoo sage ich nur. :p

Unter 16.5.2: Wozu die ISO nach libvirt/images kopieren?
 
Zurück
Oben