Syslinux

Aus wiki.archlinux.de
Version vom 18. Februar 2021, 14:37 Uhr von Tuxnix (Diskussion | Beiträge) (x - hinzugefügt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Das Syslinux Projekt beinhaltet Bootloader für

  • MS-DOS FAT Dateisysteme (SYSLINUX),
  • Booten über Netzwerke (PXELINUX),
  • "El Torito" CD-ROMs (ISOLINUX),
  • und Linux 32bit-ext2/ext3/ext4 bzw. btrfs Dateisysteme (EXTLINUX).

SYSLINUX stellt auf Linux-Systemen eine Alternative zu GRUB und LILO dar.

Seit Version 4.0.2 ist SYSLINUX der allgemeinere Name für EXTLINUX und wird dementsprechend verwendet.

Dieser Wiki-Eintrag beschreibt die Konfiguration und Installation des Bootloaders SYSLINUX beim Starten des Systems von Linux-Dateisystemen.

Achtung: Seit Syslinux 6.03 werden einige der mit Version 1.43 der e2fsprogs (17. Mai 2016) neu eingeführten Eigenschaften wie z.B. die standardmäßig aktivierte 64bit Unterstützung der ext-Dateisysteme nicht mehr unterstützt. Siehe: [1] Syslinux bricht den Bootvorgang mit der Fehlermeldung 'Failed to load ldlinux.c32' ab. Soll Syslinux von einer mit ext formatierten Partition booten muss beim Formatieren dieser Partition die Option '-O \^64bit' im mkfs-Befehl mit angegeben werden. Eine nachträgliche Umwandlung in 32bit-ext ist mit 'resize2fs -s' möglich.


Installation

Das Programm ist als syslinux in core verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S syslinux

Bitte folgende Ausgabe beachten:

 ==> If you want to use syslinux as your bootloader
 ==> edit /boot/syslinux/syslinux.cfg and run
 ==> # /usr/sbin/syslinux-install_update -i -a -m
 ==> to install it.

Konfiguration

Die Konfigurationsdatei /boot/syslinux/syslinux.cfg ist selbsterklärend und bereits an den Arch Linux-Kernel angepasst.

Bitte die Angabe APPEND root=/dev/sda3 rw prüfen und entsprechend anpassen!

syslinux.cfg

 # boot sections follow
 
 LABEL arch
   MENU LABEL Arch Linux
   LINUX ../vmlinuz-linux
   APPEND root=/dev/sda3 rw
   INITRD ../initramfs-linux.img
 
 LABEL archfallback
   MENU LABEL Arch Linux Fallback
   LINUX ../vmlinuz-linux
   APPEND root=/dev/sda3 rw
   INITRD ../initramfs-linux-fallback.img

Eintrag per Partitionsbezeichnungen(Label)
Im Beispiel ist die Rootpartition als p_arch bezeichnet worden.

 LABEL arch
   MENU LABEL Arch Linux
   LINUX ../vmlinuz-linux
   APPEND root=LABEL=p_arch rw
   INITRD ../initramfs-linux.img
 
 LABEL archfallback
   MENU LABEL Arch Linux Fallback
   LINUX ../vmlinuz-linux
   APPEND root=LABEL=p_arch rw
   INITRD ../initramfs-linux-fallback.img

Verwendet man ein verschlüsseltes LVM, legt man die APPEND Zeile nach diesem Schema an:

APPEND cryptdevice=/dev/sda2:main root=/dev/mapper/main-root ro

Installation

Dank dem Arch Linux-User Matthew Gyurgyik gibt es das Script syslinux-install_update, welches speziell für Arch Linux erstellt wurde.

Für MBR-Partitionstabelle:

Damit werden alle zusätzlichen Dateien nach /boot/syslinux kopiert und der Bootloader in den MBR geschrieben. Bitte als root ausführen, nachdem die Konfiguration durchgeführt wurde.

 # syslinux-install_update -i -a -m

Für GPT-Partitionstabelle:

Das Bootflag für die Bootpartition muß gesetzt werden. Wird keine separate Bootpartition benutzt so muß für die Rootpartition das Bootflag gesetzt werden. Syslinux kann das Bootflag nur mit der GPT-Unterstützung setzen. Die GPT-Unterstützung geschieht durch das Paket gptfdisk das zuvor installiert sein muß.

 # pacman -S gptfdisk

MBR schreiben:

 # syslinux-install_update -iam

Alternative Möglichkeit um auch nachträglich das Bootflag zu setzen:

Attribute ändern, Partitionsnummer eingeben, in diesem Beispiel für /dev/sda1, legacy-BIOS bootable auswählen:

# gdisk /dev/sda
* x
* a
* 1
* 2
* enter
* w - Partitionstabelle schreiben
* y - bestätigen

MBR auf /dev/sda schreiben

 # syslinux-install_update -im

Deinstallation

 # pacman -Rscn syslinux

Allerdings wird die Datei /boot/syslinux/ldlinux.sys dabei nicht gelöscht. Hier hilft nur ein

 # chattr -i /boot/syslinux/ldlinux.sys
 # rm /boot/syslinux/ldlinux.sys 

Weblinks