Benutzer:Tuxnix

Aus wiki.archlinux.de

Nur für eigene Zwecke

Kopie aus AfE nach dem ersten Boot

Notizen: Eine Optimierung der Liste der Spiegelserver kann mittels reflector erfolgen.


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:

mkinitcpio -p linux

Kopie aus AfE:

Installation eines Bootloaders

Installation des GRUB Bootloaders

Für Benutzer von intel-ucode bitte folgende Seite zusätzlich beachten: Microcode.
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.

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

Es kann jetzt die Grub Konfiguration generiert werden.

grub-mkconfig -o /boot/grub/grub.cfg

Sollte grub-mkconfig dabei eine Fehlermeldung wie

 ...
 error: out of memory.
 error: syntax error.
 error: Incorrect command.
 error: syntax error.
 Syntax error at line 164
 ...

liefern (siehe auch: "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:

 # fix broken grub.cfg gen
 GRUB_DISABLE_SUBMENU=y

und ein erneuter Aufruf von grub-mkconfig Abhilfe schaffen.

Installation des Syslinux Bootloader

Wenn bereits ein Linux-Bootloader installiert ist, kann dieser Punkt übersprungen werden. Der bereits vorhandene Bootloader muss natürlich entsprechend konfiguriert werden.

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: Failed to load ldlinux.c32 . Boot failed: Please change disks and press a key to continue.

Syslinux kann jetzt installiert werden.
Bei einer GPT-Partitionstabelle muss das Paket gptfdisk zusätzlich installiert werden.

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

syslinux-install_update -iam
Manuelle Installation von syslinux

Falls nicht alles reibungslos ablief, kann Syslinux manuell installiert werden.

Dazu wird mit dem Programm fdisk das Bootflag auf die Partition gesetzt, von der die Bootdaten gebootet werden sollen.
Beispiel, um für /dev/sda1 das Bootflag zu setzen:

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.

mount /dev/sda1 /boot
mkdir /boot/syslinux
extlinux --install /boot/syslinux

Jetzt muss noch der MBR von Syslinux auf die Festplatte geschrieben werden.

cat /usr/lib/syslinux/bios/mbr.bin > /dev/sda


Kopie aus [UEFI_Installation]

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.

UEFI bootbaren USB-Stick erstellen

Die aktuellen Arch Linux Images unterstützen UEFI bereits. Es sind also keine weiteren Vorbereitungen mehr nötig.

Secure Boot

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. Dann wie folgt verfahren.

  • OK auswählen
  • In dem nun erscheinendem Menü Enroll Hash auswählen
  • Anschließend die Datei \loader.efi auswählen und mit Yes bestätigen.
  • Nun erneut Enroll Hash wählen und in dem Ordner archiso die Datei vmlinuz-efi auswählen, ebenfalls bestätigen.
  • Anschließend das Menü mittels 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 Arch Linux archiso x86_64 UEFI CD aus. Danach sollte Arch Linux wie gewohnt starten und man kann mit der Installation beginnen.

32-Bit UEFI

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

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.
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.
Zum Partitionieren startet man gdisk

gdisk /dev/sdX

Für X ist die genaue Festplattenbezeichnung einzusetzen. Siehe gdisk.

Achtung: Die Hexcodes der einzelnen Partitionstypen sind zu beachten! Bei der UEFI System Partition lautet der Hexcode 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.


Dateisysteme anlegen

Es wird davon ausgegangen, dass 3 Partitionen erstellt wurden 1. EFI ist zugleich Bootpartition. 2. Root und 3. swap:

1. EFI (Boot)

mkfs.fat -F 32 -n EFIBOOT /dev/sdaX         # EFI Partitionstyp [ef00]

2. Root

mkfs.ext4 -L p_arch /dev/sdaY

3. swap

mkswap -L p_swap /dev/sdaZ

Die Labels der Dateisysteme können nach der Option -L frei gewählt werden, sollten aber innerhalb des Systems nur einmal vorkommen.

Partitionen einhängen

mount -L p_arch /mnt         # root
mkdir -p /mnt/boot
mount -L EFIBOOT /mnt/boot   # EFI
swapon -L p_swap             # swap

Das Betriebssystem einrichten

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.
Weitere benötigte Werkzeuge für UEFI installieren:

pacman -S efibootmgr dosfstools gptfdisk

Den Bootloader installieren

Es können verschiedene Bootloader bzw. EFI-Eintragungen benutzt werden. Nur eins davon wird benötigt.

systemd bootctl (ehemals Gummiboot)

Systemd bootctl (ehemals Gummiboot) ist ein EFISTUB-Bootloader, der schnell und sehr einfach konfiguriert ist. Nachfolgend eine kurze Konfigurationsanleitung (ausführliche Informationen im entsprechenden Artikel).

Hinweis: Es ist sinnvoll, die EFI-Partition nach /boot zu mounten.

Zuerst den EFI-Booteintrag installieren und einrichten:

# bootctl install

Anschließend die Datei /boot/loader/entries/arch-uefi.conf mit folgendem Inhalt erstellen:

title    Arch Linux
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 /boot/loader/entries/arch-uefi-fallback.conf mit folgendem Inhalt erstellen:

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 /boot/loader/loader.conf bearbeiten:

default   arch-uefi
timeout   1

Das timeout (in Sekunden) kann natürlich frei gewählt werden.

EFISTUB

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.

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 initrd Parameter sollten immer backslashes ( \) als Separator verwendet werden (nach EFI-Standards), da es sonst dazu kommen kann, dass der Kernel das(/die) initramfs image(s) nicht findet:
EFI stub: ERROR: Failed to open file: /initramfs-linux.img


rEFind

Ein weiterer grafischer UEFI-Bootloader ist rEFind. Eine genaue Beschreibung ist hier: rEFind

GRUB

Falls der Bootloader GRUB benutzt werden soll:
Installation von GRUB für UEFI basierende PCs

pacman -S grub

GRUB-UEFI bootfiles nach /boot/efi/EFI/arch_grub installieren

64-Bit UEFI

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


Hinweis: Falls 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 /efi/boot/bootx64.efi. Damit GRUB funktioniert, muss die im voraus erstellte Datei /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


Kopie von MSD-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.

Als Beispiel wird hier angenommen, dass eine Rootpartition und eine Swappartition benötigt wird.


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
Units: Sektoren of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: ~

Gerät Boot Start Ende Blocks Id System
/dev/sda1 * ~ ~ ~ 83 Linux
/dev/sda2 ~ ~ ~ 82 Linux swap / Solari


Partitionstabelle auf Festplatte schreiben: (Alle vorhandenen Daten gehen dabei verloren)

Befehl (m für Hilfe): w

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.


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