Benutzer:Tuxnix: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
(Crypted Root für Bios-Rechner integriert)
(70 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>


Notizen:
<b>2. Partitionierung+Basispakete bei einem BIOS-Rechner</b><br>
Eine Optimierung der Liste der Spiegelserver kann mittels {{ic|reflector}} erfolgen.
* 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>


<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>


====Achtung bei Systemupdates mit neuem Kernel====
<u>Formatieren:</u><br>
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.
<code style=font-size:12px>mkfs.ext4 -L ROOT /dev/'''x'''1</code><br><br>


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:
<u>Mounten:</u><br>
mkinitcpio -p linux
<code style=font-size:12px>mount /dev/'''x'''1 /mnt</code><br><br>


=Kopie aus AfE:=
<u>Installation der Basispakete</u><br>
<code style=font-size:12px>pacstrap /mnt base base-devel linux linux-firmware dhcpcd nano</code><br><br>


===Installation eines Bootloaders===
<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>


* Als Bootmanager für BIOS-Boot-Systeme stehen [[Grub]] und [[syslinux]] zur Verfügung.
<u>fstab erzeugen:</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>genfstab -L /mnt > /mnt/etc/fstab</code><br><br>


====Installation des GRUB Bootloaders====
<u>Chrooten:</u><br>
Für Benutzer von intel-ucode bitte folgende Seite zusätzlich beachten: [[Microcode]].<br>
<code style=font-size:12px>arch-chroot /mnt</code><br><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>
Installation des Pakets:
pacman -S grub
Booten per '''BIOS'''
grub-install /dev/sda
Booten per '''UEFI'''


Installation des EFI Bootmanagers (sonst kommt die Fehlermeldung: efibootmgr: not found):
pacman -S efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=<Boot-Name>
Alternativ kann man
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:
Weiter siehe Kapitel [[3._Konfigurationtion|3. Konfiguration]]<br><br>
----------
<b>B) ROOT + SWAP</b>


Es kann jetzt die Grub Konfiguration generiert werden.
<code style=font-size:12px>fdisk -l</code> - '''x''' ermitteln<br>
grub-mkconfig -o /boot/grub/grub.cfg
<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>


Sollte '''grub-mkconfig''' dabei eine Fehlermeldung wie
<u>Formatieren:</u><br>
  ...
<code style=font-size:12px>mkfs.ext4 -L ROOT /dev/'''x'''1</code><br>
  error: out of memory.
<code style=font-size:12px>mkswap -L SWAP /dev/'''x'''2</code><br><br>
  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''':
<u>Mounten:</u><br>
  # fix broken grub.cfg gen
<code style=font-size:12px>mount /dev/'''x'''1 /mnt</code><br>
  GRUB_DISABLE_SUBMENU=y
<code style=font-size:12px>swapon /dev/'''x'''2</code><br><br>


und ein erneuter Aufruf von '''grub-mkconfig''' Abhilfe schaffen.
<u>Installation der Basispakete</u><br>
<code style=font-size:12px>pacstrap /mnt base base-devel linux linux-firmware dhcpcd nano</code><br><br>


====Installation des Syslinux Bootloader====
<u>Installation von Microcode:</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>pacstrap /mnt intel-ucode</code> oder <code style=font-size:12px>pacstrap /mnt amd-ucode</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>fstab erzeugen:</u><br>
Failed to load ldlinux.c32 . Boot failed: Please change disks and press a key to continue.
<code style=font-size:12px>genfstab -L /mnt > /mnt/etc/fstab</code><br><br>


Syslinux kann jetzt installiert werden.<br>
<u>Chrooten:</u><br>
Bei einer GPT-Partitionstabelle muss das Paket gptfdisk zusätzlich installiert werden.
<code style=font-size:12px>arch-chroot /mnt</code><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 [[3._Konfiguration|3. Konfiguration]]<br><br>
syslinux-install_update -iam
----------
<b>B) Crypted Root</b>


=====Manuelle Installation von syslinux=====
<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>


Falls nicht alles reibungslos ablief, kann Syslinux manuell installiert werden.
<u>Kernelmodul laden:</u><br>
<code style=font-size:12px>modprobe dm-crypt</code><br><br>


Dazu wird mit dem Programm ''fdisk'' das Bootflag auf die Partition gesetzt, von der die Bootdaten gebootet werden sollen.<br>
<u>Root Partiton verschluesseln:</u><br>
Beispiel, um für /dev/sda1 das Bootflag zu setzen:
<code style=font-size:12px>cryptsetup luksFormat /dev/'''x'''1</code><br><br>
fdisk /dev/sda
x
a
p
r
w


Dann wird die Partition der Bootdaten, wie z. B. /dev/sda1, unter /boot gemountet und der Bootloader installiert.
<u>Verschlüsselte Partiton oeffnen und mappen:</u><br>
mount /dev/sda1 /boot
<code style=font-size:12px>cryptsetup open /dev/'''x'''1 ROOT</code><br>
mkdir /boot/syslinux
<u>Und formatieren:</u><br>
extlinux --install /boot/syslinux
<code style=font-size:12px>mkfs.ext4 /dev/mapper/ROOT</code><br><br>


Jetzt muss noch der MBR von Syslinux auf die Festplatte geschrieben werden.
<u>Mounten:</u><br>
cat /usr/lib/syslinux/bios/mbr.bin > /dev/sda
<code style=font-size:12px>mount /dev/mapper/ROOT /mnt</code><br><br>


<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>


=Kopie aus [UEFI_Installation]=
<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>


Diese Anleitung soll die Installation von Arch Linux (64 Bit) mit UEFI erklären. Es knüpft direkt an die [[Anleitung_für_Einsteiger]] an.
<u>fstab erzeugen:</u><br>
<code style=font-size:12px>genfstab -L /mnt > /mnt/etc/fstab</code><br><br>


== UEFI bootbaren USB-Stick erstellen ==
<u>Chrooten:</u><br>
<code style=font-size:12px>arch-chroot /mnt</code><br><br>


Die aktuellen Arch Linux Images unterstützen UEFI bereits. Es sind also keine weiteren Vorbereitungen mehr nötig.  
<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>


=== Secure Boot ===
<code style=font-size:12px>nano /etc/mkinitcpio.conf</code><br>
Auch '''Secure Boot''' wird vom Image unterstützt. Allerdings kommt es beim ersten Bootvorgang zu einer Fehlermeldung ''Failed to Start loader... I will now execute HashTool''.
<u>'/keyfile.bin' zu Files hinzufuegen:</u><br>
Dann wie folgt verfahren.
<code style=font-size:12px>FILES=(/keyfile.bin)</code><br>
<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>


* {{ic|OK}} auswählen
Weiter siehe Kapitel [[3._Konfiguration|3. Konfiguration]]<br><br>
* In dem nun erscheinendem Menü {{ic|Enroll Hash}} auswählen
----------
* Anschließend die Datei {{ic|\loader.efi}} auswählen und mit {{ic|Yes}} bestätigen.
<b>Entwurf Artikel: 3. Konfiguration</b>
* Nun erneut {{ic|Enroll Hash}} wählen und in dem Ordner {{ic|archiso}} die Datei {{ic|vmlinuz-efi}} auswählen, ebenfalls bestätigen.
* Anschließend das Menü mittels {{ic|Exit}} verlassen.
{{hinweis|Auch wenn man das Installationsmedium via Secure Boot starten kann, so gestaltet sich dies bei dem installierten System deutlich schwieriger. Es ist daher deutlich einfacher und unproblematischer, wenn man Secure Boot im BIOS deaktiviert.}}


Wenn man im Bootmenü ist, wählt man den Eintrag {{ic|Arch Linux archiso x86_64 UEFI CD}} aus. Danach sollte Arch Linux wie gewohnt starten und man kann mit der Installation beginnen.
Letztes siehe Kapitel 2.[[spicker | Arch Linux Installations Spickzettel]]<br>


=== 32-Bit UEFI ===
<b>3. Konfiguration:</b><br>
Das offizielle installations ISO bietet keine Unterstützung für Geräte mit 32-Bit UEFI. Es ist jedoch möglich das ISO zu modifizieren. Ein passendes Script dafür findet sich unter [[EFI-32 ISO erstellen]]. Eine weitere Möglichkeit bietet [https://wiki.archlinux.org/index.php/Archboot Archboot]. Damit kann ein entsprechendes ISO erstellt werden oder man nutzt die fertigen Archboot ISOs, diese sind jedoch nicht immer auf dem aktuellsten Stand.


== Festplatte partitionieren ==
<code style=font-size:12px>echo '''mein-rechner''' > /etc/hostname</code><br>
Die Festplatte kann den eigenen Wünschen entsprechend partitioniert werden, es muss lediglich das '''GPT''' Partitionsschema verwendet werden und es muss eine '''UEFI System Partition''' erstellt werden.<br>
<code style=font-size:12px>echo LANG=de_DE.UTF-8 > /etc/locale.conf</code><br>
'''Tip''' Hat man mehrere Festplatten z.B. eine mit Windows, so hat Windows bereits eine EFI Partition angelegt. Man kann diese als Bootpartition für Arch-Linux verwenden. Es ist aber auch möglich auf einer weiteren Festplatte eine 2. EFI-Bootpartition einzurichten. UEFI erkennt alle EFI-Bootpartitionen und deren Eintragungen. Im UEFI Bootmenü kann dann ausgewählt werden welches Betriebssystem gestartet werden soll.<br>  
<code style=font-size:12px>echo KEYMAP=de-latin1 > /etc/vconsole.conf</code><br>
Zum Partitionieren startet man {{ic|gdisk}}
<code style=font-size:12px>echo FONT=lat9w-16 >> /etc/vconsole.conf</code><br>
gdisk /dev/sdX
<code style=font-size:12px>ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime</code><br><br>


Für '''X''' ist die genaue Festplattenbezeichnung einzusetzen. Siehe [[gdisk]].
<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>


{{achtung|Die Hexcodes der einzelnen Partitionstypen sind zu beachten! Bei der UEFI System Partition lautet der Hexcode {{ic|EF00}}. Außerdem sollte die UEFI System Partition mindestens 512 Mb groß sein, da als Dateisystem FAT 32 verwendet wird und die Größe von FAT 32 Partitionen/Laufwerken laut Microsoft mindestens 512 Mb betragen muss.}}
<code style=font-size:12px>locale-gen</code><br><br>


== Dateisysteme anlegen ==
<u>Das Root Password erstellen:</u><br>
Es wird davon ausgegangen, dass 3 Partitionen erstellt wurden 1. EFI ist zugleich Bootpartition. 2. Root und 3. swap:
<code style=font-size:12px>passwd</code><br><br>


'''1. EFI (Boot)'''
<u>Den Benutzer 'duda' anlegen und ihn ggf. zu den Gruppen hinzufuegen:</u><br>
mkfs.fat -F 32 -n EFIBOOT /dev/sdaX        # EFI Partitionstyp [ef00]
<code style=font-size:12px>useradd -m -g users -s /bin/bash '''duda'''</code><br>
<code style=font-size:12px>passwd '''duda'''</code><br>
<code style=font-size:12px>usermod -aG wheel,audio,video,power '''duda'''</code><br><br>


'''2. Root'''
<u>Gruppenmitgliedern von wheel Rootrechte per 'sudo' verleihen:</u><br>
mkfs.ext4 -L p_arch /dev/sdaY
<code style=font-size:12px>EDITOR=nano visudo</code><br>
<u>Kommentarzeichen und Leerzeichen von dieser Zeile entfernen:</u><br>
<code style=font-size:12px># %wheel ALL=(ALL) ALL</code><br><br>


'''3. swap'''
<u>Weitere Dienste installieren:</u><br>
mkswap -L p_swap /dev/sdaZ
<code style=font-size:12px>pacman -S acpid avahi iwd</code><br><br>


Die Labels der Dateisysteme können nach der Option -L frei gewählt werden, sollten aber innerhalb des Systems nur einmal vorkommen.
<u>Dienste aktivieren:</u><br>
<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>


== Partitionen einhängen ==
----------
<b>Entwurf Artikel: 4. Bootloader für BIOS-Rechner</b>


mount -L p_arch /mnt        # root
Letztes Kapitel [[3._Konfiguration|3. Konfiguration]]<br><br>
mkdir -p /mnt/boot
mount -L EFIBOOT /mnt/boot  # EFI
swapon -L p_swap            # swap


== Das Betriebssystem einrichten ==
<b>4. Bootloader für BIOS-Rechner</b><br>
Dazu kann der [[Anleitung_für_Einsteiger]] von Punkt '''2.8 Das Basissystem installieren''' an bis einschließlich '''2.9.6 Root Password''' gefolgt werden.<br>
* A) Grub
Weitere benötigte Werkzeuge für UEFI installieren:<br>
* B) syslinux
pacman -S efibootmgr dosfstools gptfdisk
* C) Grub (crypted)<br><br>
---------------
<b>A) Grub</b>


== Den Bootloader installieren ==
<u>Grub installieren:</u><br>
Es können verschiedene Bootloader bzw. EFI-Eintragungen benutzt werden. Nur eins davon wird benötigt.
<code style=font-size:12px>pacman -S grub</code><br>
=== systemd bootctl (ehemals Gummiboot) ===
<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>


Systemd bootctl (ehemals Gummiboot) ist ein EFISTUB-Bootloader, der schnell und sehr einfach konfiguriert ist. Nachfolgend eine kurze Konfigurationsanleitung (ausführliche Informationen im [https://wiki.archlinux.de/title/Systemd-boot entsprechenden Artikel]).
<u>Chrootumgebung verlassen und Partitionen loesen:</u><br>
{{Hinweis|Es ist sinnvoll, die EFI-Partition nach {{ic|/boot}} zu mounten.}}
<code style=font-size:12px>exit</code><br>
Zuerst den EFI-Booteintrag installieren und einrichten:
<code style=font-size:12px>umount /mnt</code><br><br>
# bootctl install


Anschließend die Datei {{ic|/boot/loader/entries/arch-uefi.conf}} mit folgendem Inhalt erstellen:
<code style=font-size:12px>poweroff</code><br>
title    Arch Linux
<u>ISO-Stick entfernen, Neustarten und auf der Konsole Einloggen </u><br><br>
linux    /vmlinuz-linux
  initrd  /initramfs-linux.img
options  root=LABEL=p_arch rw resume=LABEL=p_swap


Das Gleiche noch für Arch Linux fallback die Datei {{ic|/boot/loader/entries/arch-uefi-fallback.conf}} mit folgendem Inhalt erstellen:
Weiter siehe Kapitel [[4._Grafische_Benutzeroberfl%C3%A4che|4. Grafische Benutzeroberfläche ]]
title    Arch Linux Fallback
linux    /vmlinuz-linux
initrd  /initramfs-linux-fallback.img
options  root=LABEL=p_arch rw resume=LABEL=p_swap


Nun die Datei {{ic|/boot/loader/loader.conf}} bearbeiten:
-----------
default  arch-uefi
<b>C) Grub (crypted r)</b><br>
timeout  1
Das timeout (in Sekunden) kann natürlich frei gewählt werden.


=== EFISTUB ===
<u>grub installieren:</u><br>
Mit EFISTUB wird ein Eintrag ins EFI erstellt, hierbei wird der Kernel und die initramfs direkt von UEFI geladen. Eine Auswahl welche EFI-Eintragung geladen werden soll, muss im UEFI Bootmenü gewählt werden.
<code style=font-size:12px>pacman -S grub</code><br><br>
efibootmgr -c -d /dev/sda -p 1 -l \vmlinuz-linux -L "Arch Linux efistub" -u "initrd=\initramfs-linux.img root=LABEL=p_arch rw"
efibootmgr -c -d /dev/sda -p 1 -l \vmlinuz-linux -L "Arch Linux fallback efistub" -u "initrd=\initramfs-linux-fallback.img root=LABEL=p_arch rw"
{{Achtung| In dem {{ic| initrd}} Parameter sollten immer backslashes ({{ic| \}}) als Separator verwendet werden (nach EFI-Standards), da es sonst dazu kommen kann, dass der Kernel das(/die) initramfs image(s) nicht findet: <br>
{{ic| EFI stub: ERROR: Failed to open file: /initramfs-linux.img}}}}


=== rEFind ===
<u>grub konfigurieren:</u><br>
Ein weiterer grafischer UEFI-Bootloader ist rEFind. Eine genaue Beschreibung ist hier:
<code style=font-size:12px>nano /etc/default/grub</code><br>
[https://wiki.archlinux.de/title/Refind rEFind]
<u>Und diese Zeile wie folgt anpassen:</u><br>
=== GRUB ===
<code style=font-size:12px>GRUB_CMDLINE_LINUX="cryptdevice=/dev/'''x'''1:ROOT"</code><br>
Falls der Bootloader GRUB benutzt werden soll:<br>
<u>Und diese Zeile auskommentieren:</u><br>
Installation von GRUB für UEFI basierende PCs
<code style=font-size:12px>GRUB_ENABLE_CRYPTODISK=y</code><br>
pacman -S grub


GRUB-UEFI bootfiles nach {{ic|/boot/efi/EFI/arch_grub}} installieren
<u>Initramfs suchen:</u><br>
<code style=font-size:12px>grub-install /dev/'''x''' --recheck</code><br>
<u>grub.cfg schreiben:</u><br>
<code style=font-size:12px>grub-mkconfig -o /boot/grub/grub.cfg</code><br><br>


64-Bit UEFI
Weiter siehe Kapitel [[4._Grafische_Benutzeroberfl%C3%A4che|4. Grafische Benutzeroberfläche ]]
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug
32-Bit UEFI
grub-install --target=i386-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug
{{achtung|Hier bitte aufpassen, ob Fehler gemeldet werden und ob der {{ic|efibootmgr}}-Befehl korrekt ausgeführt wurde.}}
mkdir -p /boot/grub/locale
cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo


Anschließend die GRUB-Konfigurationsdatei erstellen lassen:
----------
grub-mkconfig -o /boot/grub/grub.cfg
Anmerkung: Bisher in die Artikel eingearbeitet BIOS-Rechner Grub / r+rs / crypted r
 
 
{{hinweis|Falls {{ic|grub-install}} den Bootmenüeintrag nicht erstellen kann und eine Fehlermeldung ausgegeben wurde, folgenden Befehl ausführen um den UEFI-Bootmenüeintrag manuell zu erstellen:}}
efibootmgr -q -c -d /dev/sdX -p 1 -w -L "GRUB: Arch-Linux" -l '\EFI\arch_grub\grubx64.efi'
 
{{hinweis|Bei einigen Thinkpad Modellen sucht das EFI zum booten nach der Datei {{ic|/efi/boot/bootx64.efi}}. Damit GRUB funktioniert, muss die im voraus erstellte Datei {{ic|/efi/arch_grub/grubx64.efi}} dorthin umbenannt bzw. verschoben werden.}}
 
== Abschließend ==
Zum Schluss noch die Partitionen aushängen und das System neu booten
exit  # auslogen von arch-chroot
umount -R /mnt
reboot
 
== Siehe auch ==
* [[:en:Unified_Extensible_Firmware_Interface|Unified Extensible Firmware Interface]] {{sprache|en}}
* [[:en:Systemd-boot|systemd-boot]] {{sprache|en}}
 
 
=Kopie von MSD-Partitionstabelle=
{{SEITENTITEL:MSDOS-Partitionstabelle,}}
== MSDOS-Partitionstabelle ==
Diese Seite soll zeigen wie man Archlinux auf einer Festplatte mit MSDOS Partitionstabelle (MBR) installieren kann und knüpft an die Anleitung für Einsteiger bei Partitionierung der Festplatte an. <br>
 
Als Beispiel wird hier angenommen, dass eine Rootpartition und eine Swappartition benötigt wird.<br>
 
 
Liegt von Seiten der Hardware und Bios keine Einschränkung vor, ist es empfehlenswert eine GUID-Partitionstabelle anzulegen, da es u.a. moderner ist (siehe https://wiki.archlinux.de/title/Partitionierung).
 
Das erstellen einer GUID-Partitionstabelle ist einfacher mit gpt zu erreichen. Siehe https://wiki.archlinux.de/title/Gpt
 
 
===Partitionierung der Festplatte mit einer MSDOS Partitionstabelle ===
 
Hier sollen eine Swap Partition und eine Partition für Root und Home angelegt werden.
Bei einer MSDOS Partitionstabelle(MBR) braucht man für den Grub-Bootloader keine extra Partition.
 
 
=====Aufruf von fdisk=====
 
fdisk /dev/sda
 
Welcome to fdisk (util-linux 2.24.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
 
Hilfe kann wenn gewünscht aufgerufen werden:
 
Befehl (m für Hilfe): m
 
Hilfe:
 
  Generic
  d  Eine Partition löschen
  l  Die bekannten Dateisystemtypen anzeigen
  n  Eine neue Partition anlegen
  p  Die Partitionstabelle ausgeben
  t  Typ einer Partition ändern
  v  Die Partitionstabelle überprüfen
  Misc
  m  Dieses Menü anzeigen
  x  Zusätzliche Funktionen (nur für Experten)
  Speichern und beenden
  w  Die Tabelle auf die Festplatte schreiben und das Programm beenden
  q  Ende ohne Speichern der Änderungen
  Create a new label
  g  Eine neue leere GPT-Partitionstabelle anlegen
  G  Eine neue leere SGI-(IRIX)Partitionstabelle anlegen
  o  Eine neue leere DOS-Partitionstabelle anlegen
  s  Eine neue leere Sun-Partitionstabelle anlegen
 
 
=====Eine neue leere DOS-Partitionstabelle anlegen:=====
 
Befehl (m für Hilfe):o
 
Created a new DOS disklabel with disk identifier ~.
 
 
 
=====Swap Partition anlegen=====
hier 8GiB = etwa das Doppelte des Arbeitsspeichers):
 
Befehl (m für Hilfe): n
 
 
Partition type:
p  primary (0 primary, 0 extended, 4 free)
e  Erweiterte
 
 
Primärtyp wählen ([Enter] für default):
 
Select (default p): [Enter]
 
Using default response p.
 
 
Partitionsnummer auswählen (hier 2, da 1 für die Root/Homepartition übrig bleibt):
 
Partitionsnummer (1-4, default 1): 2
 
 
Startsektor auswählen:
 
Erster Sektor (2048-234441647, default 2048): [Enter]
 
 
Endsektor auswählen (G für Gigabyte):
 
Last sector, +sectors or +size{K,M,G,T,P} (41945088-234441647, default 234441647): +8G
 
Created a new partition 2 of type 'Linux' and of size 8 GiB.
 
 
Typ der Partition ändern:
 
Befehl (m für Hilfe): t
 
 
Partitionsnummer auswählen:
 
Partitionsnummer (2, default 2): [Enter]
 
 
Hex-Code auswählen ([82] für Typ Swap):
 
Hex-Code (L um eine Liste anzuzeigen): 82
 
Changed type of partition 'Linux' to 'Linux swap / Solaris'.
 
 
 
=====Root/Home Partition anlegen=====
(hier den Rest der Festplatte):
 
Befehl (m für Hilfe):n
 
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
 
 
Primär als Typ auswählen ([Enter] für default):
 
Select (default) p): [Enter]
 
Using default response p.
 
 
Partitionsnummer auswählen ([Enter] für default):
 
Partition number (1,3,4, default 1: [Enter]
 
 
Beginn der Partition auswählen ([Enter] für ganz vorne oder Anschluss an vorige Partition).
 
First sector (200048-.., default 200048): [Enter]
 
 
Endsektor auswählen ([Enter] für default, hier den ganzen Rest der Festplatte):
 
Last sector, +sectors or +size{K,M,G} (..): [Enter]
 
Partition 1 of type Linux and of size ~ GiB is set.
 
 
Aktivieren des bootfähig-Flags (für Boot):
 
Befehl (m für Hilfe): a
 
 
Eben erstellte Partition auswählen:
 
Partition number (1-2): 1
 
The bootable flag on partition 1 is enabled now.
 
Erstellte Partitionstabelle anzeigen lassen und nochmal überprüfen:
 
Befehl (m für Hilfe): p
 
Disk /dev/sda: ~ GiB, ~ bytes, ~ sectors <br>
Units: Sektoren of 1 * 512 = 512 bytes <br>
Sector size (logical/physical): 512 bytes / 512 bytes <br>
I/O size (minimum/optimal): 512 bytes / 512 bytes <br>
Disklabel type: dos <br>
Disk identifier: ~ <br>
 
Gerät    Boot    Start      Ende  Blocks  Id System <br>
/dev/sda1    *        ~        ~        ~  83 Linux <br>
/dev/sda2              ~        ~        ~  82 Linux swap / Solari <br>
 
 
Partitionstabelle auf Festplatte schreiben:
(Alle vorhandenen Daten gehen dabei verloren)
 
Befehl (m für Hilfe): w
 
The partition table has been altered. <br>
Calling ioctl() to re-read partition table. <br>
Syncing disks. <br>
 
 
===Anlegen der Dateisysteme===
=====Gewöhnliche Partition=====
"Gewöhnliche" Partitionen werden mit dem Program mkfs angelegt, wobei der Typ des Dateisystems klar benannt werden muss. Dazu dienen verschiedene links, z.B. mkfs.ext4, der ein Dateisystem vom Typ ext4 anlegt.
 
 
Anlegen des Dateisystems vom Typ ext4 auf der Root/Homepartition sda1 mit der Bezeichnung p_arch:
 
mkfs.ext4 -L p_arch /dev/sda1
 
Writing superblocks and filsystem accounting information: done
 
 
 
Anzumerken ist, dass Linux nicht in der Lage ist, von jedem Dateisystemtyp aus zu booten. In der boot-Partition ist die Auswahl also eingeschänkt.
 
=====Swap-Partition=====
Eine Swap-Partition ist der Platz einer Festplatte, der den "virtuellen Speicher" beheimatet. Falls die Prozesse mehr RAM brauchen als physikalisch vorhanden, kann Linux die Anfrage nicht bearbeiten und ein Fehler tritt auf. Eine swap Partition hilft in dieser Situation, indem physikalischer RAM durch virtuellen RAM erweitert wird. Linux benutzt diesen Platz der Festplatte (die Swap-Partition), um die Informationen, welche nicht mehr in den physikalischen RAM passen, zu speichern (in Wahrheit ist es ein wenig komplizierter, da Linux versucht, Informationen ins Swap zu schreiben, die nicht oft benötigt werden). Da eine Festplatte im Vergleich zu physikalischem RAM sehr langsam ist, ist dies nur ein Behelf.
 
Anlegen des Dateisystems vom Typ swap auf der Swap-Partition sda1 mit der Bezeichnung p_swap:
 
mkswap -L p_swap /dev/sda2
 
Anzumerken ist, dass diese Partition im Fall, dass zu Energiesparzwecken das RAM auf die Platte ausgelagert werden soll (suspend2disk), mindestens so gross wie das physisch vorhandene RAM sein muss, sonst passt letzteres nicht hinein. Wenn ich also 4 GB physisches RAM habe, muss ich hierfür auch mindestens 4 GB Plattenplatz reservieren.
 
===Einbinden der Partitionen===
Hier kann der Anleitung für Einsteiger beim Punkt Einbinden der Partitionen weiter gefolgt werden.
https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger#Einbinden_der_Partitionen
 
== Quellen ==
* https://wiki.archlinux.de/title/Anleitung_für_Einsteiger
* https://wiki.archlinux.de/title/Gpt#Partitionieren_mit_gdisk

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