UEFI Installation

Aus wiki.archlinux.de
Version vom 14. Februar 2013, 11:09 Uhr von Dirk (Diskussion | Beiträge) (Den GRUB2-Bootloader installieren)

Wechseln zu: Navigation, Suche


Diese Anleitung soll die Installation von Arch Linux (64 Bit) mittels USB Stick auf einem PC mit UEFI erklären. Falls es an einigen Stellen zu ungenau ist, kann der Anleitung_für_Einsteiger gefolgt werden und die entsprechenden Wiki-Seite konsultiert werden. Es geht hier nur darum, die Besonderheiten und Schwierigkeiten im Umgang mit UEFI und GPT zu erläutern.

UEFI bootbaren USB-Stick erstellen

1. Den USB-Stick als FAT 32 formatieren und nach /tmp/archusb mounten

mkdir -p /tmp/archusb
mount -o rw,users -t vfat /dev/sdX /tmp/archusb

2. Das Installationsimage auf dem USB-Stick entpacken, dazu sollte es im Verzeichnis /tmp/archusb liegen.

cd /tmp/archusb
bsdtar xf <kompletten Pfad zum Image angeben>  # Beispiel: /tmp/archusb/archlinux-2013.01.04-dual.iso
rm -f /tmp/archusb/[BOOT]                      # falls das Verzeichnis existiert
sync

3. Die Bezeichnung (Label) des Installationsimages herausfinden: Dazu folgende Datei öffnen

/tmp/archusb/loader/entries/archiso-x86_64.conf

und nach

archisolabel=

suchen.

Beispiel: Falls dort

archisolabel=ARCH_201210

steht, ist das Label

ARCH_201210

4. Das UEFI Bootfile erstellen

  • Das Paket refind-efi installieren:
sudo pacman -S refind-efi
  • Die Datei
/usr/lib/refind/refindx64.efi 

in das Homeverzeichnis kopieren und in bootx64.efi umbenennen.

cp /usr/lib/refind/refindx64.efi /home
cd /home
mv refindx64.efi bootx64.efi
  • Die Datei bootx64.efi auf den USB-Stick kopieren
cp /dev/sdX/EFI/boot/

Das Ganze sieht dann folgendermaßen aus:

/dev/sdX/EFI/boot/bootx64.efi
  • Im selben Verzeichnis eine neue Datei namens refind.conf erstellen
sudo nano /dev/sdX/EFI/boot/refind.conf

Folgenden Inhalt in die refind.conf schreiben:

refind.conf
timeout 5
textonly

showtools about,reboot,shutdown,exit
# scan_driver_dirs EFI/tools/drivers_x64
scanfor manual,internal,external,optical

scan_delay 1
dont_scan_dirs EFI/boot

max_tags 0
default_selection "Arch Linux Archiso x86_64 UEFI USB"

menuentry "Arch Linux Archiso x86_64 UEFI USB" {
  loader /arch/boot/x86_64/vmlinuz
  initrd /arch/boot/x86_64/archiso.img
  ostype Linux
  graphics off
  options "archisobasedir=arch archisolabel=ARCH_201210 add_efi_memmap"
}

menuentry "UEFI x86_64 Shell v2" {
  loader /EFI/shellx64_v2.efi
  graphics off
}

menuentry "UEFI x86_64 Shell v1" {
  loader /EFI/shellx64_v1.efi
  graphics off
}

Achtung: Hier ist zu beachten, dass das Label je nach Version des Installationsimages angepasst werden muss!


5. USB-Stick unmounten und dessen Bezeichnung (Label) ändern

umount /dev/sdX
dosfslabel /dev/sdX <archisolabel>   # hier: dosfslabel /dev/sdX ARCH_201210
sync

Vom USB-Stick booten

Tastaturlayout auf Deutsch umstellen und wichtige Kernelmodule laden:

loadkeys de
loadkeys de-latin1 # für Umlaute
modprobe efivars   # für grub-efi
modprobe dm-mod    # für lvm

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.

Zum Partitionieren startet man gdisk

gdisk /dev/sdX

Der genaue Umgang mit gdisk und GPT kann unter gpt#Partitionieren_mit_gdisk nachgelesen werden.

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 (Boot, EFI und LVM), auf eine SWAP Partition wurde verzichtet:

1. Boot + EFI

mkfs.ext4 -L boot /dev/sdaX      # boot Partition
mkfs.vfat -F32 /dev/sdaX         # EFI Partition [ef00]

2. LVM

Erst einmal wird die LVM Partition unterschiedlich (root, home) partitioniert (siehe LVM).

pvcreate /dev/sdaX
vgcreate lvm /sda/sdaX
lvcreate --name root -L10G lvm       # Partition mit 10 GB
lvcreate --name home -l100%FREE lvm  # Pratition mit dem rest der Platte

Hinweis: Mit lvscan oder lvdisplay können die gerade erstellen Partitionen angezeigt werden.

Danach werden die einzelnen Dateisystem der LVM Partitionen angelegt:

mkfs.ext4 -L root /dev/mapper/lvm-root
mkfs.ext4 -L home /dev/lvm/home

Partitionen einhängen

mount /dev/lvm/root /mnt           # root
mkdir /mnt/boot /mnt/home     
mount /dev/lvm/home /mnt/home      # home
mount /dev/sdaX /mnt/boot          # boot
mkdir -p /boot/efi
mount -t vfat /dev/sdX /boot/efi   # EFI

Das Betriebssystem einrichten

Dazu kann der "Anleitung für Anfänger" von Punkt 2.8 Das Basissystem installieren an bis einschließlich 2.9.6 Root Password gefolgt werden Anleitung_für_Einsteiger.

Den GRUB2-Bootloader installieren

Installation von GRUB2 für UEFI basierende PCs

sudo pacman -S grub-efi-x86_64

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

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --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 GRUB2-Konfigurationsdatei erstellen lassen:

sudo 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 Arch-Linux -l '\EFI\arch_grub\grubx64.efi'


Anschließend die Partitionen aushängen und das System neu booten

exit   # ausloogen von arch-chroot 
umount /mnt/home /mnt/boot/efi /mnt/boot /mnt
reboot

Nachdem das System erfolgreich gebootet hat, einloggen und die Fstab bearbeiten:

nano /etc/fstab 

Bei dem Eintrag /boot/efi bei <option> den Eintrag

codepage=437 

löschen.