Benutzer:Tuxnix: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
(Crypted Root für Bios-Rechner integriert)
(74 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Nur für eigene Zwecke
{{inuse|[[Benutzer:Tuxnix|Tuxnix]] ([[Benutzer Diskussion:Tuxnix|Diskussion]])}}{{SEITENTITEL:sway}}{{righttoc}}


=Kopie aus AfE nach dem ersten Boot=
(Versuch einer neuen Gliederung der Artikelserie)<br><br>
<b>Entwurf Artikel: 2. Partitionierung+Basispakete BIOS-Rechner</b><br>


[[spicker | Arch Linux Installations Spickzettel]]<br>
Letztes Kapitel [[1._Vorbereitung|1. Vorbereitung]]<br><br>


==Die Schönheit des Rolling Release==
<b>2. Partitionierung+Basispakete bei einem BIOS-Rechner</b><br>
Arch Linux ist eine '''Rolling Release''' Distribution, was bedeutet, dass es im Vergleich zu anderen Linux-Distributionen keine Versionsnummern oder -namen gibt. Diese Form der Verwaltung verzichtet darauf, das ganze System neu installieren zu müssen, um es aktuell und damit auch sicher zu halten – man hat es nun selbst in der Hand, jederzeit upzudaten. Die Benutzung eines Rolling-Release setzt auch ein gewisses Maß an Eigenverantwortung voraus. So ist man z.B. gut beraten, sich vor einer Systemaktualisierung über aktuelle Änderungen oder Schwierigkeiten, die dabei auftreten könnten, zu informieren. Aktuelle Informationen findet man [https://www.archlinux.de/?page=Start hier]{{Sprache|de}}, [https://bbs.archlinux.de/viewforum.php?id=257 hier]{{Sprache|de}},[https://www.archlinux.org/ hier]{{Sprache|en}} und [https://www.archlinux.org/news/ hier]{{Sprache|en}}. Außerdem ist es empfehlenswert, die [https://mailman.archlinux.org/mailman/listinfo/arch-announce Arch-Announce]{{Sprache|en}} Mailingliste zu abonnieren, um stets auf dem neuesten Wissenstand etwaige Änderungen betreffend zu sein.
* A) ROOT
* B) ROOT + SWAP
* c) Crypted ROOT
(Für das Partitionieren auf einem BIOS-Rechner wird bis zu einer Volumengröße von 2TBit fdisk eingesetzt.)<br><br>
------
<b> A) ROOT</b><br>
(Die Einrichtung einer [[Swap#Swapdatei | Swap-Datei]]) ist nachtraeglich moeglich)<br><br>


===Netzwerk erneut herstellen===
<code style=font-size:12px>fdisk -l</code> - '''x''' ermitteln<br>
Das Netzwerk kann jetzt, wie oben im Kapitel ''Netzwerkverbindung herstellen'', mit dem richtigen Gerätenamen eingerichtet oder wieder mit {{ic|dhcpcd enp4s0}} gestartet werden.
<code style=font-size:12px>fdisk /dev/'''x'''</code> - fdisk starten<br>
<code style=font-size:12px>{{taste|o}}</code> - neue Partitionstabelle im cache<br>
<code style=font-size:12px>{{taste|n}}</code> - neue Partition erstellen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Primaerpatition bestaetigen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Partitionsnummer bestaetigen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Ersten Sektor bestaetigen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Letzten Sektor bestaetigen<br>
<code style=font-size:12px>{{taste|a}}</code> - Bootsektor aktivieren<br>
<code style=font-size:12px>{{taste|p}}</code> - zur eigenen Kontrolle vor dem Speichern<br>
<code style=font-size:12px>{{taste|w}}</code> - schreiben der Partitionstabelle<br><br>


Anmerkung: Sollte die Netzwerk-Verbindung via "netctl -u wireless-wpa" gestartet worden sein, funktioniert dies nach der Installation nicht mehr, da "wpa" nicht mit installiert wird. Dies kann man wie folgt abändern:
<u>Formatieren:</u><br>
Erneutes Starten mit der boot-CD, mounten der root-Partition mit "mount /dev/sda1 /mnt". Dann erneutes verbinden mit dem Netzwerk und installieren des Paketes wpa_supplicant ins root-Verzeichnis: "pacstrap /mnt wpa_supplicant". Nach einem Neustart kann sich nun auch die Festplatteninstallation via wpa mit dem Netzwerk verbinden!
<code style=font-size:12px>mkfs.ext4 -L ROOT /dev/'''x'''1</code><br><br>


===Regelmäßiges Aktualisieren===
<u>Mounten:</u><br>
Arch Linux gehört zu den Distributionen, welche sehr schnell aktuelle Softwarepakete zur Verfügung stellen. Darum sollte man ein installiertes Arch Linux mittels pacman aktualisieren und sich angewöhnen, dies regelmäßig zu tun. Es ist sehr hilfreich, vorher auf [https://www.archlinux.de/?page=Start Arch Linux - Aktuelle Neuigkeiten] nachzusehen, ob sich etwas Wichtiges am Gesamtsystem oder an einzelnen Komponenten geändert hat. Es werden erforderliche Lösungsvorschläge und Anleitungen beschrieben.
<code style=font-size:12px>mount /dev/'''x'''1 /mnt</code><br><br>


====Der Paketmanager pacman====
<u>Installation der Basispakete</u><br>
[[Pacman]] ist der '''pac'''kage '''man'''ager von Arch Linux. Er verwaltet das gesamte Paketsystem, also die Installation, das Löschen, das Downgraden von Paketen u.v.m.; er ist auch zuständig für die Verwaltung selbst kompilierter Programme, das automatische Lösen von Paket-Abhängigkeiten sowie das entfernte und lokale Suchen nach Paketen.
<code style=font-size:12px>pacstrap /mnt base base-devel linux linux-firmware dhcpcd nano</code><br><br>


=====Konfiguration von pacman=====
<u>Installation von Microcode:</u><br>
* /etc/pacman.conf
<code style=font-size:12px>pacstrap /mnt intel-ucode</code> oder <code style=font-size:12px>pacstrap /mnt amd-ucode</code><br><br>
pacman wird über die Datei {{ic|/etc/pacman.conf}} konfiguriert. Siehe weitere Infos unter [[pacman]].
* /etc/pacman.d/mirrorlist
pacman benötigt die Datei {{ic|/etc/pacman.d/mirrorlist}}, welche die Serveradressen für den Download von Paketen enthält. Siehe weitere Infos unter [[pacman]].
Eine Optimierung der Liste der Spiegelserver kann mittels {{ic|reflector}} erfolgen.


<u>fstab erzeugen:</u><br>
<code style=font-size:12px>genfstab -L /mnt > /mnt/etc/fstab</code><br><br>


<u>Chrooten:</u><br>
<code style=font-size:12px>arch-chroot /mnt</code><br><br>


====Achtung bei Systemupdates mit neuem Kernel====
Falls der Kernel ein größeres Update erfährt, werden Module, wie zum Beispiel ''' nvidia''' und '''madwifi''' (wird später installiert, falls nötig), unbenutzbar, da die neuen, aktualisierten Paketversionen solcher Module gegen den neueren Kernel gebaut wurden, aber das System derzeit einen älteren verwendet. Ein Neustart wird nötig sein.


Ebenso könnte nach einer langen Pause ohne Aktualisierung bzw. bei der Aktualisierung eines frischen Systems der Fall eintreten, dass gleichzeitig mit dem neuen Kernel andere Programmpakete oder neue Versionen von bereits vorhandenen mitinstalliert werden, die wichtige Neuerungen beinhalten, auf die der neue Kernel angewiesen ist. Dann ist es wahrscheinlich, dass der Kernel zwar aktualisiert wird, aber ''mkinitcpio'' Fehler beim Durchlaufen der Hooks meldet (wie etwa fehlende Udev-Regeln beim Hook "filesystems"). Das würde dazu führen, dass das System dann nicht mehr startet und etwa von einem anderen Linux-System oder der Live-CD repariert werden muss! Um dergleichen zu vermeiden, genügt es nach so einem Update i.d.R., das Initramfs noch einmal neu zu generieren, und zwar folgendermaßen:
Weiter siehe Kapitel [[3._Konfigurationtion|3. Konfiguration]]<br><br>
mkinitcpio -p linux
----------
<b>B) ROOT + SWAP</b>


===Einen Benutzer hinzufügen und Gruppen wählen===
<code style=font-size:12px>fdisk -l</code> - '''x''' ermitteln<br>
Tägliche Arbeiten sollten nicht mit dem Root-Account gemacht werden, da dieser für administrative Aufgaben vorgesehen ist und ein Arbeiten damit gefährlich sein kann. Deshalb wird nun ein normaler Benutzer hinzugefügt. Beachte, dass Benutzernamen nur Kleinbuchstaben und Sonderzeichen enthalten dürfen:
<code style=font-size:12px>fdisk /dev/'''x'''</code> - fdisk starten<br>
<code style=font-size:12px>{{taste|o}}</code> - neue Partitionstabelle im cache<br>
<code style=font-size:12px>{{taste|n}}</code> - neue Partition erstellen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Primaerpatition bestaetigen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Partitionsnummer bestaetigen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Ersten Sektor bestaetigen<br>
<code style=font-size:12px>-4G</code> - Letzten Sektor -4GiB<br>
<code style=font-size:12px>{{taste|a}}</code> - Bootsektor aktivieren<br>
<code style=font-size:12px>{{taste|n}}</code> - neue Partition erstellen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Primaerpatition bestaetigen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Partitionsnummer bestaetigen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Ersten Sektor bestaetigen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Letzten Sektor bestaetigen<br>
<code style=font-size:12px>{{taste|t}}</code> – Partitionstyp waehlen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Partitionsnummer 2 bestaetigen<br>
<code style=font-size:12px>82</code> – Partitionstyp auf 'Linux swap' setzen<br>
<code style=font-size:12px>{{taste|p}}</code> - zur eigenen Kontrolle vor dem Speichern<br>
<code style=font-size:12px>{{taste|w}}</code> - schreiben der Partitionstabelle<br><br>


In diesem Beispiel heißt der Benutzer duda
<u>Formatieren:</u><br>
<code style=font-size:12px>mkfs.ext4 -L ROOT /dev/'''x'''1</code><br>
<code style=font-size:12px>mkswap -L SWAP /dev/'''x'''2</code><br><br>


useradd -m -g users -s /bin/bash duda
<u>Mounten:</u><br>
<code style=font-size:12px>mount /dev/'''x'''1 /mnt</code><br>
<code style=font-size:12px>swapon /dev/'''x'''2</code><br><br>


passwd duda
<u>Installation der Basispakete</u><br>
Geben Sie ein neues UNIX-Passwort ein:geheim
<code style=font-size:12px>pacstrap /mnt base base-devel linux linux-firmware dhcpcd nano</code><br><br>
Geben Sie das neue UNIX-Passwort erneut ein:geheim
passwd: Passwort erfolgreich geändert


<u>Installation von Microcode:</u><br>
<code style=font-size:12px>pacstrap /mnt intel-ucode</code> oder <code style=font-size:12px>pacstrap /mnt amd-ucode</code><br><br>


Falls der Benutzer wieder entfernt werden soll, so kann das mit
<u>fstab erzeugen:</u><br>
userdel -r duda
<code style=font-size:12px>genfstab -L /mnt > /mnt/etc/fstab</code><br><br>
gemacht werden.


Ein weiteres wichtiges Werkzeug könnte noch installiert werden, um ein Kommando mit Root-Rechten ausführen zu können.
<u>Chrooten:</u><br>
pacman -S sudo
<code style=font-size:12px>arch-chroot /mnt</code><br><br>
Damit der Benutzer Root-Rechte bekommt, muss eine Konfiguration verändert werden. Eingabe von:
EDITOR=nano visudo
oder
nano /etc/sudoers
Suchen der folgenden Zeile (steht unterhalb von "## Uncomment to allow members of group wheel to execute any command"):
  # %wheel ALL=(ALL) ALL
und entfernen des Kommentatorzeichens und des Leerzeichens.
%wheel ALL=(ALL) ALL
Den Benutzer zu der Gruppe wheel hinzufügen
gpasswd -a duda wheel


Um dem Nutzer noch Rechte für Audio etc. zu geben, kann er noch in die Gruppen {{ic|audio}}, {{ic|video}}, {{ic|games}}, {{ic|power}} hinzugefügt werden.
Weiter siehe Kapitel [[3._Konfiguration|3. Konfiguration]]<br><br>
----------
<b>B) Crypted Root</b>


===Weitere nützliche Dienste===
<code style=font-size:12px>fdisk -l</code> - '''x''' ermitteln<br>
<code style=font-size:12px>fdisk /dev/'''x'''</code> - fdisk starten<br>
<code style=font-size:12px>{{taste|o}}</code> - neue Partitionstabelle im cache<br>
<code style=font-size:12px>{{taste|n}}</code> - neue Partition erstellen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Primaerpatition bestaetigen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Partitionsnummer bestaetigen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Ersten Sektor bestaetigen<br>
<code style=font-size:12px>{{taste|Enter}}</code> - Letzten Sektor bestaetigen<br>
<code style=font-size:12px>{{taste|a}}</code> - Bootsektor aktivieren<br>
<code style=font-size:12px>{{taste|p}}</code> - zur eigenen Kontrolle vor dem Speichern<br>
<code style=font-size:12px>{{taste|w}}</code> - schreiben der Partitionstabelle<br><br>


Sollte das System auf einer SSD betrieben werden, welche TRIM unterstützt, sollte der {{ic|fstrim.timer}} aktiviert werden:
<u>Kernelmodul laden:</u><br>
<code style=font-size:12px>modprobe dm-crypt</code><br><br>


# systemctl enable --now fstrim.timer
<u>Root Partiton verschluesseln:</u><br>
<code style=font-size:12px>cryptsetup luksFormat /dev/'''x'''1</code><br><br>


Jetzt, das heißt bevor wir uns der grafischen Oberfläche und/oder Multimedia zuwenden, ist ein guter Zeitpunkt, ein paar zusätzliche Dienste zu installieren und zu aktivieren.
<u>Verschlüsselte Partiton oeffnen und mappen:</u><br>
<code style=font-size:12px>cryptsetup open /dev/'''x'''1 ROOT</code><br>
<u>Und formatieren:</u><br>
<code style=font-size:12px>mkfs.ext4 /dev/mapper/ROOT</code><br><br>


# pacman -S acpid dbus avahi cups
<u>Mounten:</u><br>
<code style=font-size:12px>mount /dev/mapper/ROOT /mnt</code><br><br>


Diese Dienste müssen natürlich auch jeweils explizit gestartet werden. Um dies automatisch beim Booten zu tun, muss systemd dazu angewiesen werden. Dies geschieht durch:
<u>Installation der Basispakete:</u><br>
<code style=font-size:12px>pacstrap /mnt base base-devel linux linux-firmware dhcpcd nano cryptsetup</code><br><br>


# systemctl enable <Dienstname>  
<u>Installation von Microcode:</u><br>
<code style=font-size:12px>pacstrap /mnt intel-ucode</code> oder <code style=font-size:12px>pacstrap /mnt amd-ucode</code><br><br>


Für diese Beispiele:  
<u>fstab erzeugen:</u><br>
<code style=font-size:12px>genfstab -L /mnt > /mnt/etc/fstab</code><br><br>
# systemctl enable acpid
# systemctl enable avahi-daemon
# systemctl enable cups.service


Auch ist es sinnvoll, einen Netwerkservice für den Internetzugang automatisch zu laden:
<u>Chrooten:</u><br>
<code style=font-size:12px>arch-chroot /mnt</code><br><br>


Dies können Services wie NetworkManager erledigen. Mehr dazu unter https://wiki.archlinux.de/title/Daemons und unter https://wiki.archlinux.de/title/Daemons/Liste.
<u>Erzeugen einer Schlüsseldatei zur Vermeidung einer zweiten Eingabe des Verschlüsselungspassworts:</u><br>
<code style=font-size:12px>dd bs=512 count=4 if=/dev/urandom of=/keyfile.bin</code><br>
<code style=font-size:12px>cryptsetup luksAddKey /dev/disk/by-label/ROOT /keyfile.bin</code><br>
<code style=font-size:12px>chmod 000 /keyfile.bin</code><br><br>


===Cronjobs ausführen lassen===
<code style=font-size:12px>nano /etc/mkinitcpio.conf</code><br>
Einige Pakete legen sogenannte Cronjobs an. Das sind Befehle, die zu bestimmten Zeiten automatisch ausgeführt werden. Im Normalfall braucht man sich um die Cronjobs nicht zu kümmern. Mehr zu diesem Thema unter [[cron]]
<u>'/keyfile.bin' zu Files hinzufuegen:</u><br>
# pacman -S cronie
<code style=font-size:12px>FILES=(/keyfile.bin)</code><br>
# systemctl enable --now cronie
<u>Die Zeile 'HOOKS' in dieser Reihenfolge anpassen:</u><br>
<code style=font-size:12px>HOOKS="base udev autodetect keyboard keymap modconf block encrypt filesystems fsck"</code><br>
<u>Und neues initramfs erzeugen</u><br>
<code style=font-size:12px>mkinitcpio -p linux</code><br><br>


Als Alternative zu o.g. klassischen Conrojobs können oft auch ''[https://www.freedesktop.org/software/systemd/man/systemd.timer.html systemd.timer]''s genutzt werden, ohne zusätzliche Software installieren zu müssen.
Weiter siehe Kapitel [[3._Konfiguration|3. Konfiguration]]<br><br>
----------
<b>Entwurf Artikel: 3. Konfiguration</b>


===Automatische Zeiteinstellung===
Letztes siehe Kapitel 2.[[spicker | Arch Linux Installations Spickzettel]]<br>
Wer die Zeit automatisch korrigieren lassen will, kann das mit ''systemd-timesyncd'' machen.  
systemctl enable --now systemd-timesyncd.service


Die Zeit wird nach wenigen Sekunden korrekt sein.<br>
<b>3. Konfiguration:</b><br>
Um zu sehen, ob die Uhrzeit nun auch wirklich korrekt ist, kann man folgenden Befehl nutzen:
date
Anschließend kann man die Hardwareuhr oder auch RTC oder CMOS-Uhr auf der Hauptplatine korrigieren.
hwclock -w


Man muss unterscheiden zwischen einer sogenannten Systemzeit und einer Hardwareuhr auf der Hauptplatine des Rechners. Die Hardwareuhr ist die CMOS-Uhr, auch Echtzeituhr oder RTC (real time clock) genannt. Die Systemzeit ist die Zeit, die der Linuxkernel gerade hat (nur so grob). Beim Einschalten übernimmt Linux (Systemzeit) die Hardwareuhrzeit. Beim Herunterfahren wird die Systemzeit '''nicht''' an die Hardwareuhr wieder übergeben. Zur Beachtung: Werden mehrere Betriebssysteme benutzt, sollte nur ein Betriebssystem die Hardwareuhr korrigieren.
<code style=font-size:12px>echo '''mein-rechner''' > /etc/hostname</code><br>
<code style=font-size:12px>echo LANG=de_DE.UTF-8 > /etc/locale.conf</code><br>
<code style=font-size:12px>echo KEYMAP=de-latin1 > /etc/vconsole.conf</code><br>
<code style=font-size:12px>echo FONT=lat9w-16 >> /etc/vconsole.conf</code><br>
<code style=font-size:12px>ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime</code><br><br>


=Kopie aus AfE:=
<code style=font-size:12px>nano /etc/locale.gen</code><br>
<u>Und das # am Anfang folgender Zeilen entfernen:</u><br>
<code style=font-size:12px>#de_DE.UTF-8 UTF-8</code><br>
<code style=font-size:12px>#de_DE ISO-8859-1</code><br>
<code style=font-size:12px>#de_DE@euro ISO-8859-15</code><br>
<code style=font-size:12px>#en_US.UTF-8 UTF-8</code><br>


===Installation eines Bootloaders===
<code style=font-size:12px>locale-gen</code><br><br>


* Als Bootmanager für BIOS-Boot-Systeme stehen [[Grub]] und [[syslinux]] zur Verfügung.
<u>Das Root Password erstellen:</u><br>
* Für UEFI-BOOT-Syteme kann als Bootloader [[systemd-boot]] oder [[EFISTUB]] oder [[Grub]] oder [[rEFInd]] eingesetzt werden.<br>
<code style=font-size:12px>passwd</code><br><br>


====Installation des GRUB Bootloaders====
<u>Den Benutzer 'duda' anlegen und ihn ggf. zu den Gruppen hinzufuegen:</u><br>
Für Benutzer von intel-ucode bitte folgende Seite zusätzlich beachten: [[Microcode]].<br>
<code style=font-size:12px>useradd -m -g users -s /bin/bash '''duda'''</code><br>
Falls bei einen BIOS-Boot-System von einem Datenträger mit GPT-Partitionstabelle gebootet werden soll, benötigt Grub eine zusätzliche Partition von der Größe von 1MiB und dem Partitionstyp ef02. Siehe [[GRUB#Fehlermeldung_von_GRUB | Grub]].<br><br>
<code style=font-size:12px>passwd '''duda'''</code><br>
Installation des Pakets:
<code style=font-size:12px>usermod -aG wheel,audio,video,power '''duda'''</code><br><br>
pacman -S grub
Booten per '''BIOS'''
grub-install /dev/sda
Booten per '''UEFI'''


Installation des EFI Bootmanagers (sonst kommt die Fehlermeldung: efibootmgr: not found):
<u>Gruppenmitgliedern von wheel Rootrechte per 'sudo' verleihen:</u><br>
pacman -S efibootmgr
<code style=font-size:12px>EDITOR=nano visudo</code><br>
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=<Boot-Name>
<u>Kommentarzeichen und Leerzeichen von dieser Zeile entfernen:</u><br>
Alternativ kann man
<code style=font-size:12px># %wheel ALL=(ALL) ALL</code><br><br>
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=<Boot-Name> --recheck --debug
verwenden, um zusätzliche Informationen zu bekommen, falls es zu einem Fehler kommt. <br>
Wenn man einen etwas längeren Namen mit Leerzeichen für Grub geben möchte, muss man einfach 2 Anführungszeichen anbringen:
--bootloader-id="Ein sehr langer Name für den Grub Bootloader, der auch so im UEFI angezeigt wird :D"


Weitere '''Konfiguration''' nach BIOS oder UEFI grub-install:
<u>Weitere Dienste installieren:</u><br>
<code style=font-size:12px>pacman -S acpid avahi iwd</code><br><br>


Es kann jetzt die Grub Konfiguration generiert werden.
<u>Dienste aktivieren:</u><br>
grub-mkconfig -o /boot/grub/grub.cfg
<code style=font-size:12px>systemctl enable acpid</code> - Energieverwaltung<br>
<code style=font-size:12px>systemctl enable avahi-daemon</code> - Netzwerk Zuweisung<br>
<code style=font-size:12px>systemctl enable NetworkManager</code> - Netzwerkmanager<br>
<code style=font-size:12px>systemctl enable iwd</code> - WLAN Daemon</u><br>
<code style=font-size:12px>systemctl enable systemd-timesyncd</code> - Zeit Synchronisation<br><br>


Sollte '''grub-mkconfig''' dabei eine Fehlermeldung wie
----------
  ...
<b>Entwurf Artikel: 4. Bootloader für BIOS-Rechner</b>
  error: out of memory.
  error: syntax error.
  error: Incorrect command.
  error: syntax error.
  Syntax error at line 164
  ...


liefern (siehe auch: [https://bugs.archlinux.org/task/38041 "FS#38041 - grub 1:2.00.1282.g5ae5c54-1 will not generate grub.cfg file syntax errors"], sollte das Anhängen folgender Zeile an '''/etc/default/grub''':
Letztes Kapitel [[3._Konfiguration|3. Konfiguration]]<br><br>
  # fix broken grub.cfg gen
  GRUB_DISABLE_SUBMENU=y


und ein erneuter Aufruf von '''grub-mkconfig''' Abhilfe schaffen.
<b>4. Bootloader für BIOS-Rechner</b><br>
* A) Grub
* B) syslinux
* C) Grub (crypted)<br><br>
---------------
<b>A) Grub</b>


====Installation des Syslinux Bootloader====
<u>Grub installieren:</u><br>
Wenn bereits ein Linux-Bootloader installiert ist, kann dieser Punkt übersprungen werden. Der bereits vorhandene Bootloader muss natürlich entsprechend konfiguriert werden.
<code style=font-size:12px>pacman -S grub</code><br>
<code style=font-size:12px>grub-install /dev/'''x'''</code><br>
<code style=font-size:12px>grub-mkconfig -o /boot/grub/grub.cfg</code><br><br>


Zur Beachtung, der Syslinux Bootloader funktioniert nicht bei allen 64bit Dateisystemen wie z.B. ext4. Es muß dann ein anderer Bootloader gewählt werden wie z.B. Grub. Dieser Fehler macht sich erst nach dem Reboot mit folgender Meldung bemerkbar:
<u>Chrootumgebung verlassen und Partitionen loesen:</u><br>
Failed to load ldlinux.c32 . Boot failed: Please change disks and press a key to continue.
<code style=font-size:12px>exit</code><br>
<code style=font-size:12px>umount /mnt</code><br><br>


Syslinux kann jetzt installiert werden.<br>
<code style=font-size:12px>poweroff</code><br>
Bei einer GPT-Partitionstabelle muss das Paket gptfdisk zusätzlich installiert werden.
<u>ISO-Stick entfernen, Neustarten und auf der Konsole Einloggen </u><br><br>
  pacman -S gptfdisk
pacman -S syslinux
Mit einem Editor (nano) die Konfigurationsdatei anpassen:
nano /boot/syslinux/syslinux.cfg
Die Zeilen APPEND root=/dev/sda3 ro ändern in
APPEND root=/dev/sda1 rw
oder wenn man die LABEL-Partitionsbezeichnung bevorzugt:
APPEND root=LABEL=p_arch rw


Anschließend syslinux auf den Bootsektor installieren
Weiter siehe Kapitel [[4._Grafische_Benutzeroberfl%C3%A4che|4. Grafische Benutzeroberfläche ]]
syslinux-install_update -iam


=====Manuelle Installation von syslinux=====
-----------
<b>C) Grub (crypted r)</b><br>


Falls nicht alles reibungslos ablief, kann Syslinux manuell installiert werden.
<u>grub installieren:</u><br>
<code style=font-size:12px>pacman -S grub</code><br><br>


Dazu wird mit dem Programm ''fdisk'' das Bootflag auf die Partition gesetzt, von der die Bootdaten gebootet werden sollen.<br>
<u>grub konfigurieren:</u><br>
Beispiel, um für /dev/sda1 das Bootflag zu setzen:
<code style=font-size:12px>nano /etc/default/grub</code><br>
fdisk /dev/sda
<u>Und diese Zeile wie folgt anpassen:</u><br>
x
<code style=font-size:12px>GRUB_CMDLINE_LINUX="cryptdevice=/dev/'''x'''1:ROOT"</code><br>
a
<u>Und diese Zeile auskommentieren:</u><br>
p
<code style=font-size:12px>GRUB_ENABLE_CRYPTODISK=y</code><br>
r
w


Dann wird die Partition der Bootdaten, wie z. B. /dev/sda1, unter /boot gemountet und der Bootloader installiert.
<u>Initramfs suchen:</u><br>
mount /dev/sda1 /boot
<code style=font-size:12px>grub-install /dev/'''x''' --recheck</code><br>
mkdir /boot/syslinux
<u>grub.cfg schreiben:</u><br>
extlinux --install /boot/syslinux
<code style=font-size:12px>grub-mkconfig -o /boot/grub/grub.cfg</code><br><br>


Jetzt muss noch der MBR von Syslinux auf die Festplatte geschrieben werden.
Weiter siehe Kapitel [[4._Grafische_Benutzeroberfl%C3%A4che|4. Grafische Benutzeroberfläche ]]
cat /usr/lib/syslinux/bios/mbr.bin > /dev/sda
 
----------
Anmerkung: Bisher in die Artikel eingearbeitet BIOS-Rechner Grub / r+rs / crypted r

Version vom 18. April 2024, 22:27 Uhr

„Tuxnix“ wurde von Tuxnix (Diskussion) als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere Tuxnix (Diskussion) bitte, bevor du den Artikel bearbeitest.


(Versuch einer neuen Gliederung der Artikelserie)

Entwurf Artikel: 2. Partitionierung+Basispakete BIOS-Rechner

Arch Linux Installations Spickzettel
Letztes Kapitel 1. Vorbereitung

2. Partitionierung+Basispakete bei einem BIOS-Rechner

  • A) ROOT
  • B) ROOT + SWAP
  • c) Crypted ROOT

(Für das Partitionieren auf einem BIOS-Rechner wird bis zu einer Volumengröße von 2TBit fdisk eingesetzt.)


A) ROOT
(Die Einrichtung einer Swap-Datei) ist nachtraeglich moeglich)

fdisk -l - x ermitteln
fdisk /dev/x - fdisk starten
o - neue Partitionstabelle im cache
n - neue Partition erstellen
↵ Enter - Primaerpatition bestaetigen
↵ Enter - Partitionsnummer bestaetigen
↵ Enter - Ersten Sektor bestaetigen
↵ Enter - Letzten Sektor bestaetigen
a - Bootsektor aktivieren
p - zur eigenen Kontrolle vor dem Speichern
w - schreiben der Partitionstabelle

Formatieren:
mkfs.ext4 -L ROOT /dev/x1

Mounten:
mount /dev/x1 /mnt

Installation der Basispakete
pacstrap /mnt base base-devel linux linux-firmware dhcpcd nano

Installation von Microcode:
pacstrap /mnt intel-ucode oder pacstrap /mnt amd-ucode

fstab erzeugen:
genfstab -L /mnt > /mnt/etc/fstab

Chrooten:
arch-chroot /mnt


Weiter siehe Kapitel 3. Konfiguration


B) ROOT + SWAP

fdisk -l - x ermitteln
fdisk /dev/x - fdisk starten
o - neue Partitionstabelle im cache
n - neue Partition erstellen
↵ Enter - Primaerpatition bestaetigen
↵ Enter - Partitionsnummer bestaetigen
↵ Enter - Ersten Sektor bestaetigen
-4G - Letzten Sektor -4GiB
a - Bootsektor aktivieren
n - neue Partition erstellen
↵ Enter - Primaerpatition bestaetigen
↵ Enter - Partitionsnummer bestaetigen
↵ Enter - Ersten Sektor bestaetigen
↵ Enter - Letzten Sektor bestaetigen
t – Partitionstyp waehlen
↵ Enter - Partitionsnummer 2 bestaetigen
82 – Partitionstyp auf 'Linux swap' setzen
p - zur eigenen Kontrolle vor dem Speichern
w - schreiben der Partitionstabelle

Formatieren:
mkfs.ext4 -L ROOT /dev/x1
mkswap -L SWAP /dev/x2

Mounten:
mount /dev/x1 /mnt
swapon /dev/x2

Installation der Basispakete
pacstrap /mnt base base-devel linux linux-firmware dhcpcd nano

Installation von Microcode:
pacstrap /mnt intel-ucode oder pacstrap /mnt amd-ucode

fstab erzeugen:
genfstab -L /mnt > /mnt/etc/fstab

Chrooten:
arch-chroot /mnt

Weiter siehe Kapitel 3. Konfiguration


B) Crypted Root

fdisk -l - x ermitteln
fdisk /dev/x - fdisk starten
o - neue Partitionstabelle im cache
n - neue Partition erstellen
↵ Enter - Primaerpatition bestaetigen
↵ Enter - Partitionsnummer bestaetigen
↵ Enter - Ersten Sektor bestaetigen
↵ Enter - Letzten Sektor bestaetigen
a - Bootsektor aktivieren
p - zur eigenen Kontrolle vor dem Speichern
w - schreiben der Partitionstabelle

Kernelmodul laden:
modprobe dm-crypt

Root Partiton verschluesseln:
cryptsetup luksFormat /dev/x1

Verschlüsselte Partiton oeffnen und mappen:
cryptsetup open /dev/x1 ROOT
Und formatieren:
mkfs.ext4 /dev/mapper/ROOT

Mounten:
mount /dev/mapper/ROOT /mnt

Installation der Basispakete:
pacstrap /mnt base base-devel linux linux-firmware dhcpcd nano cryptsetup

Installation von Microcode:
pacstrap /mnt intel-ucode oder pacstrap /mnt amd-ucode

fstab erzeugen:
genfstab -L /mnt > /mnt/etc/fstab

Chrooten:
arch-chroot /mnt

Erzeugen einer Schlüsseldatei zur Vermeidung einer zweiten Eingabe des Verschlüsselungspassworts:
dd bs=512 count=4 if=/dev/urandom of=/keyfile.bin
cryptsetup luksAddKey /dev/disk/by-label/ROOT /keyfile.bin
chmod 000 /keyfile.bin

nano /etc/mkinitcpio.conf
'/keyfile.bin' zu Files hinzufuegen:
FILES=(/keyfile.bin)
Die Zeile 'HOOKS' in dieser Reihenfolge anpassen:
HOOKS="base udev autodetect keyboard keymap modconf block encrypt filesystems fsck"
Und neues initramfs erzeugen
mkinitcpio -p linux

Weiter siehe Kapitel 3. Konfiguration


Entwurf Artikel: 3. Konfiguration

Letztes siehe Kapitel 2. Arch Linux Installations Spickzettel

3. Konfiguration:

echo mein-rechner > /etc/hostname
echo LANG=de_DE.UTF-8 > /etc/locale.conf
echo KEYMAP=de-latin1 > /etc/vconsole.conf
echo FONT=lat9w-16 >> /etc/vconsole.conf
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime

nano /etc/locale.gen
Und das # am Anfang folgender Zeilen entfernen:
#de_DE.UTF-8 UTF-8
#de_DE ISO-8859-1
#de_DE@euro ISO-8859-15
#en_US.UTF-8 UTF-8

locale-gen

Das Root Password erstellen:
passwd

Den Benutzer 'duda' anlegen und ihn ggf. zu den Gruppen hinzufuegen:
useradd -m -g users -s /bin/bash duda
passwd duda
usermod -aG wheel,audio,video,power duda

Gruppenmitgliedern von wheel Rootrechte per 'sudo' verleihen:
EDITOR=nano visudo
Kommentarzeichen und Leerzeichen von dieser Zeile entfernen:
# %wheel ALL=(ALL) ALL

Weitere Dienste installieren:
pacman -S acpid avahi iwd

Dienste aktivieren:
systemctl enable acpid - Energieverwaltung
systemctl enable avahi-daemon - Netzwerk Zuweisung
systemctl enable NetworkManager - Netzwerkmanager
systemctl enable iwd - WLAN Daemon
systemctl enable systemd-timesyncd - Zeit Synchronisation


Entwurf Artikel: 4. Bootloader für BIOS-Rechner

Letztes Kapitel 3. Konfiguration

4. Bootloader für BIOS-Rechner

  • A) Grub
  • B) syslinux
  • C) Grub (crypted)


A) Grub

Grub installieren:
pacman -S grub
grub-install /dev/x
grub-mkconfig -o /boot/grub/grub.cfg

Chrootumgebung verlassen und Partitionen loesen:
exit
umount /mnt

poweroff
ISO-Stick entfernen, Neustarten und auf der Konsole Einloggen

Weiter siehe Kapitel 4. Grafische Benutzeroberfläche


C) Grub (crypted r)

grub installieren:
pacman -S grub

grub konfigurieren:
nano /etc/default/grub
Und diese Zeile wie folgt anpassen:
GRUB_CMDLINE_LINUX="cryptdevice=/dev/x1:ROOT"
Und diese Zeile auskommentieren:
GRUB_ENABLE_CRYPTODISK=y

Initramfs suchen:
grub-install /dev/x --recheck
grub.cfg schreiben:
grub-mkconfig -o /boot/grub/grub.cfg

Weiter siehe Kapitel 4. Grafische Benutzeroberfläche


Anmerkung: Bisher in die Artikel eingearbeitet BIOS-Rechner Grub / r+rs / crypted r