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

Hallo, sorry wenn ich diesen Thread "huckepack" nehme. Falls nicht gewünscht kann ich ein neues Thema aufmachen.

Ich wollte fragen, wie ich mit clonezilla wieder ein bootbares archlinux erhalte.
Ich habe dazumal, etwa vor einem Jahr, arch mit dieser Anleitung aufgesetzt (Ohne LUKS)

Ich habe mit der archiso gebootet und mit clonezilla ein image von meiner ssd (nvme0n1) erstellt. (Partitionen nvme0n1p1 / nvme0n1p2)
Wenn ich aber jetzt das image wieder auf die ssd übertrage, fehlen die boot einträge und werden vom EFI nicht erkannt.

Ich hab wollte mit efibootmgr neue Einträge erstellen, aber wenn ich die btrfs subvolumes mounten möchte, erhalte ich folgenden fehler:
@archiso ~ # mount -o compress=zstd,subvol=@ /dev/nvme0n1p2 /mnt
mount: /mnt: can't read superblock on /dev/nvme0n1p2.
dmesg(1) may have more information after failed mount system call.

Weiss da jemand weiter?
Ich habe beim wiederherstellen bei clonezilla verschidene extra optionen probiert, aber komme nicht weiter

Danke
 
Danke für deine Antwort, @agon

Ich habe einfachshalber alles nochmal in einer VM versucht (nvme0n1p2 ist jetzt sda2)

1 root@archiso ~ # btrfs rescue super-recover /dev/sda2
All supers are valid, no need to recover
root@archiso ~ # mount -o compress=zstd,subvol=@ /dev/sda2 /mnt
mount: /mnt: can't read superblock on /dev/sda2.
dmesg(1) may have more information after failed mount system call.

Müsste ich die ssd vor dem clonezilla recovery mit einer anderen sektor grösse formatieren, oder kann ich das nachträglich noch korrigieren?
 
@Beelzebub23 Danke für dein Feedback. So etwas lese ich doch immer wieder gerne :)

@cpu2k6 Hatte die Tage wenig Zeit. Falls das Problem noch nicht behoben ist, solltest du eher ein neuen Thread eröffnen bzgl. clonezilla.


Bin gerade dabei, die Installation wieder fresh zu machen.
Geplant ist u.a. die Nutzung von systemd-nspawn statt arch-chroot. Damit kann man bspw. die systemd-Befehle wie timedatectl, localectl und hostnamectl benutzen.
 
Zuletzt bearbeitet:

Changelog – Updated Version​

The installation was tested in a VM up to and including section 10. Therefore, now would be a good time to install Arch Linux!
This time, it took quite a bit of time to update the guide. So I would appreciate any feedback or a small donation.
  • Installation – Overhaul
    • New: Use systemd-nspawn instead of arch-chroot
      In order to use the systemd commands for e.g. hostname, locale, time
      I tried systemd-firstboot but it has no good interactive UI.
      In near future, systemd-run mode of arch-chroot will be used.
    • Remove: Local hostname resolution (for some software)
    • Remove: For AMD Ryzen CPUs (≥ Zen 2): CPU power scaling driver
      "CPPC" & "CPPC Preferred Cores" should be already enabled in modern UEFI
    • New: iptables-nft
      Since iptables is a dependency of iproute2 of base
    • Allow ssh root login > Update: Use sed (Also in other chapters)
    • Time > Remove: # timedatectl set-ntp true
      Equivalent to systemctl enable systemd-timesyncd.service
    • KDE > Remove: Streaming Wayland windows to X applications: xwaylandvideobridge
    • AMDGPU > Remove: amdvlk lib32-amdvlk (deprecated)
    • Verify signature (using sequoia-sq) > Update: commands
    • Locales > Update: Available layouts: localectl list-keymaps
    • Misc. > Update: Use sed instead of vim in several chapters
    • Locales > Remove: LANGUAGE: Fallback locales (in order)
    • Remove: Activate the swapfile
    • Partition the disk using gdisk > Update: style
    • Secure Boot > Fix: SB creation commands (Renamed to -noenc)
    • Makepkg > New: Change auth method to doas instead of sudo
    • Software specific > Update: Merge User-specific configurations and move chapter in front of Hardware specific
  • Btrfs
    • New: Subvolume for /var/lib/machines for machinectl
    • Update: Renamed subvolume to @var_cache_pacman_pkg for more consistency
    • Remove: Subvolumes for /var/lib/containers, /var/lib/libvirt/images & /srv
      Since Podman is running rootless & the default libvirt pool location is changed.
      /srv is for Service Data which is typically empty on Desktop Linux
    • Remove: 1st setup: Delete "subvolid" mount option in fstab
  • TODOs > Update: Additions & Deprecations
  • Naming convention > Update: Variables are named like a variable in Rust
    Instead of myUsername ⇨ username or myRootPassword ⇨ root_password
  • Virtualization > Remove: virtio-win & storage pool "/var/lib/libvirt/images"
    Since the AUR package is outdated, and you can just download the ISO when installing Windows.
  • Firejail > New: Hardening Firejail
  • KDE > Remove: kdesu: Use "doas" instead of "su" (for KDE)
    KDE6 uses polkit
  • Display – Setup > New: Calibration (TODO)
  • INTRO > Update
  • and more
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: h00ver, Blaze1987, Archivar und 3 andere

Changelog​

For easier installation:
  • Mkinitcpio
    • Update: HOOKS according to mkinitcpio v40
    • Update: /etc/mkinitcpio.d/linux-zen.preset according to mkinitcpio v40
  • > Update: Create UEFI boot entries using efibootmgr
  • Waydroid > Update: Use official package instead of the AUR pkg
Interesse an einem kurzen Lutris Setup mit GE-Proton & UMU?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Deinorius und Spike S.
Hey, ich war schon länger nicht hier und akls erster ist mir das ganze Rumgemecker aufgefallen :)
@agon ich bin über deine Anleitung vor glaube ich mehr als zwei Jahren gestolpert und finde die Arbeit die du hier zur Verfügung stellst einfach nur super! Danke dafür. Ich schaue in die Anleitung gerne mal ab und zu rein, falls ich was neu installieren müsste, einfach mal als Gedächtnisstütze.
 
  • Gefällt mir
Reaktionen: Spike S., Deinorius, Archivar und 2 andere
Danke @Yaakoss.

Bei dem Guide bin ich mir noch unschlüssig, ob
  1. ein Texteditor wie vim für das bessere Verständnis besser geeignet wäre als sed, und ob
  2. systemd-nspawn (statt arch-chroot) bleiben sollte
… für eine manuelle Installation.

Btw. KDE Plasma 6.8 soll Wayland-exklusiv werden.
 
Plasma 6.8 ist viel früher, als ich es erwartet hätte. Sofern bis dahin besonders die Accessibility Probleme behoben sind, sehe ich allgemein keine Gründe für X11, viel anderes wird bis dahin auch besser geworden sein. (Wenn man aber die Diskussionen aus dem wayland Gitlab kennt ...)
 
agon schrieb:
  1. ein Texteditor wie vim für das bessere Verständnis besser geeignet wäre als sed, und ob
  2. systemd-nspawn (statt arch-chroot) bleiben sollte
1. Ja, vim wäre besser, da dein Guide ja auch Wissenvermittlung als Anspruch hat und nicht nur Befehle abarbeiten. In vim (oder nano 🥳) schaut man eher mal über den Tellerrand.
2. Was sind deine Bedenken? Pauschal bin ich immer erst mal dafür, bei einem Ökosystem, in dem Fall die systemd-Welt, zu bleiben. Ist i.d.R. besser bzgl. Abhängigkeiten und Synergien.

Das der X11 Abschied nicht erst zur 7 erfolgt überrascht jetzt ein wenig. Aber tangiert mich nicht, bin seit Wayland bei der 6 zum Standard wurde dabei und kann nur wenig klagen (gdk-pixbuf2 und spectacle nerven nur ein wenig...).
 
Der Schritt zu Wayland-only könnte der neu-entwickelte Plasma Login Manager sein.

@Spike S. Werde wohl wieder mehr auf vim/nano setzen.
Ich meine vor allem den langen Befehl aus "4.3 Boot into the container".
Evtl. sollte ich einfach stärker anmerken, dass ich für die Installation SSH voraussetze (für eine bessere User Experience).


Deine Probleme zu:

Teil meiner firefox.local
Code:
# Enable private-bin
# Note: Firefox requires a shell to launch on Arch
private-bin bash,dbus-launch,dbus-send,env,firefox,sh,which
private-bin basename,bash,cat,dirname,expr,false,firefox,firefox-wayland,getenforce,ln,mkdir,pidof,restorecon,rm,rmdir,sed,sh,tclsh,true,uname,bwrap

...
# https://github.com/netblue30/firejail/issues/6906
whitelist /usr/share/glycin-loaders
noblacklist /usr/bin/bwrap
noblacklist /proc/sys/kernel/overflowuid
noblacklist /proc/sys/kernel/overflowgid

ignore seccomp !chroot
seccomp !chroot,!mount,!pivot_root,!umount2

ignore apparmor
ignore apparmor-replace
 
  • Gefällt mir
Reaktionen: Archivar, Spike S. und Beelzebub23
agon schrieb:
langen Befehl aus "4.3 Boot into the container".
Den braucht man doch nur ein mal. Und bei dem Gesamtaufwand fällt das jetzt nicht so ins Gewicht finde ich. Nur Fehlervermeidung durch weniger Komplexität wäre ein relevanter Punkt, falls bei einem Fehler die bisherige Arbeit hinfällig wird beispielsweise.

agon schrieb:
Siehe 10.3.10 Workaround: Spectacle
Ha! Den kannte ich noch nicht. Ich lösche immer die .desktop Datei. Bleibt die Änderung bestehen oder wird die immer wieder überschrieben, so wie die Datei neu erstellt wird wenn man sie löscht?

agon schrieb:
gdk-pixbuf2: Falls du das in Verbindung zu Firefox meinst
Firefox war bei mir kein großes Problem, die drei Fensterbuttons oben rechts hatten gefehlt, nicht schlimm. Allerdings war Thunderbird fast unbedienbar langsam geworden dadurch. Und man konnte keine Dateien öffnen.
Ich hab das Paket downgegraded auf 2.42 und skippe das immer bei Updates. Ist für mich einfacher als an mehreren Configs herumzuschrauben. Ich gehe zumindest davon aus, das in neueren Versionen als 2.44.4, zusammen mit glycin, das behoben sein wird. Also erst mal versuchen auszusitzen :D
 
Zwei Punkte frage ich mich aktuell noch:
  • Hatte schon mal jemand hier Versuche unternommen, den Luks Container beim Boot mit einem FIDO2 Stick zu entsperren? Sprich mit einem Nitrokey oder Yubikey o.ä. So ein Luks Header bietet ja mehrere Slots zur Authentifizierung.
  • Wie sieht denn ein Austausch der Festplatte aus? Habe sonst immer einfach geklont und dann die UUIDs in der fstab aktualisiert. Geht das hier auch? Oder ändert sich gar nix am Dateisystem, weil man ja den ganzen Luks Container klont?
 
Spike S. schrieb:
Bleibt die Änderung bestehen
Ja

Spike S. schrieb:
Luks Container beim Boot mit einem FIDO2 Stick zu entsperren?
Ich hatte das mal mit Software TPM2 in einer VM getestet. Mit FIDO2 sollte das nicht groß anders sein.
https://wiki.archlinux.org/title/Systemd-cryptenroll#FIDO2_tokens

Spike S. schrieb:
Wie sieht denn ein Austausch der Festplatte aus?
Habe ich noch nicht gemacht. Ein paar Infos:
https://discussion.fedoraproject.org/t/howto-clone-a-luks-encrypted-install-to-a-bigger-disk/125753
https://wiki.archlinux.org/title/Disk_cloning
 
agon schrieb:
Ich hatte das mal mit Software TPM2 in einer VM getestet. Mit FIDO2 sollte das nicht groß anders sein.
Und das Ergebnis war? Hat es so einfach geklappt wie es scheint? Hatte auch schon kurz die Suche bemüht, da kam aber fast nur was zu Debian mit initramfs, was ohne Sonderlocke beim Boot die USB Geräte nicht unterstützt öoder so ähnlich).

agon schrieb:
Scheint so einfach wie ich mir das erhofft hatte. Werde berichten.
 
  • Gefällt mir
Reaktionen: agon

run0 statt doas/sudo​

Mit dem polkit & systemd Update, ist es nun möglich, hintereinander run0 ohne wiederholende Passwortabfrage auszuführen.
sudo würde weiterhin als Abh. ex. von base-devel & devtools.

Meinungen?
Man könnte bspw. ein Alias für "run0 --background=" erstellen.


Fix für RDNA4 x Ollama User​

[Regression] RDNA4 hangs/resets when running 3d workloads while having Ollama run in background on linux 6.18
Also einfach Ollama deaktivieren:
run0 systemctl disable --now ollama.service
 
Zuletzt bearbeitet:
Im Kontext dieses Setups hier, meine Erfahrung mit dem Tausch der Haupt-SSD.

Also, theoretisch ist es tatsächlich so einfach wie gedacht: neue SSD rein, die alte in einen anderen Slot (oder USB Adapter). verwendete Sektorengröße der neuen SSD prüfen nvme id-ns -H /dev/nvme0n1 | grep "Relative Performance" (und ggfs. anpassen), Clonezilla disk-to-disk anwerfen, fertig. Dabei in Clonezilla die Option zum automatischen expandieren der Zielpartitionen aktivieren (skaliert, ESP wächst auch entsprechend).
Allerdings wird es interessant, wenn sich die Sektorengröße ändert, wie bei mir. Bin von Samsung PM9A1 auf WD 850X gewechselt. Die Samsungs unterstützen bekanntermaßen nur 512 Byte vordergründig (intern wohl 4096 Byte), was dennoch dazu führt, das die FAT32 ESP entsprechend ausgerichtet ist. Die LUKS Partition wohl auch, scheint aber nicht zu stören. Beim Bootvorgang geht Arch wegen der "schiefen Sektoren" der ESP in den Rescue Mode. Und wenn man dann noch das Administratorpasswort nicht mehr weiß...
Vorgehen:
  • Arch (oder "bequemer" CashyOS, kann man nebenher Radio o.ä. hören) als Live System starten.
  • ESP löschen, neu erstellen, formatieren, Flags setzen (optional: UUID vorher wegschreiben und bei der neu erstellten Partition setzen)
  • LUKS Partition aufschließen (cryptsetup open ...)
  • Sektorengröße der LUKS Partition ändern: cryptsetup reencrypt --sector-size=4096 -> dauerte bei mir bei 1,81 TB etwa 40 Minuten
  • Wurzel mounten und arch-chroot (falls das Administratorpasswort verloren ging, kann jetzt per passwd ein neues vergeben werden)
  • mount -a
  • EFI Partition wie bei der initialen Installation (s. Anleitung) mounten
  • efibootmgr wie bei der Ersteinrichtung aufrufen
Sollte reichen, im Konjunktiv. Ich hatte das Problem, dass efibootmgr wohl nicht (mehr?) richtig funktioniert und den Bootloader nicht installiert. Per bootctl status war der entsprechnde Eintrag leer, bei der loader.conf gab es ein "File not found". Das UEFI hatte an der Stelle nämlich keine Booteinträge angeboten. Ein bisschen hin und her probiert, bootctl install hat wohl letztlich Abhilfe geschaffen.
Optional: Hat man die UUID der ESP nicht wiederhergestellt, wird man jetzt wieder vom Rescue Mode begrüßt, weil der Eintrag in der fstab nicht mehr stimmt. Per blkid die neue UUID der ESP ermitteln und in der /etc/fstab abändern.
Abschließend noch dem BTRFS die neue Plattengröße mitgeben (btrfs filesystem resize max /) und weitere Checks und Pflege in BTRFS durchführen.
 
  • Gefällt mir
Reaktionen: agon und Beelzebub23
@Spike S. Schön, dass es so einfach ging ;)
Du könntest noch eine Überschrift hinzufügen, damit man das zukünftig schneller finden kann.

Spike S. schrieb:
Ich hatte das Problem, dass efibootmgr wohl nicht (mehr?) richtig funktioniert und den Bootloader nicht installiert.
Evtl. hast du vor efibootmgr, # mkinitcpio -P vergessen, welche die signierte UKI auf der ESP erstellt.


Da ich wohl zukünftig auf run0 setzen werde, bräuchte ich noch ein Alias. Hättest du Vorschläge?
Ich hätte "few" vorgeschlagen, weil man das schnell eintippen kann, und "few" kein Präfix einer anderen Anwendung ist.
 
Zurück
Oben