Syslinux

Aus wiki.archlinux.de
Version vom 28. September 2012, 07:43 Uhr von Greg (Diskussion | Beiträge) (gpt und Bootflag Beschreibung hinzugefügt)

Wechseln zu: Navigation, Suche

Das Syslinux Projekt beinhaltet Bootloader für

  • MS-DOS FAT Dateisysteme (SYSLINUX),
  • Booten über Netzwerke (PXELINUX),
  • "El Torito" CD-ROMs (ISOLINUX),
  • und Linux 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.

Paketinstallation

Das Syslinux Paket wird mittels pacman installiert:

 # 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 ro prüfen und entsprechend anpassen!

syslinux.cfg

 # boot sections follow
 
 LABEL arch
   MENU LABEL Arch Linux
   LINUX ../vmlinuz-linux
   APPEND root=/dev/sda3 ro
   INITRD ../initramfs-linux.img
 
 LABEL archfallback
   MENU LABEL Arch Linux Fallback
   LINUX ../vmlinuz-linux
   APPEND root=/dev/sda3 ro
   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. 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. Anders als bei der MSDOS-Partitionstabelle kann Syslinux das Bootflag nicht setzen. im folgenden Beispiel wird /dev/sda2 als "bootable" festgelegt

Mit gdisk per Expert Command:

gdisk /dev/sda
x 
a

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

2
2
enter

Partitionstabelle schreiben und gdisk verlassen.

w

MBR schreiben:

syslinux-install_update -im

Mit sgdisk: Statt mit gdisk kann man auch das Programm sgdisk benutzen:

sgdisk /dev/sda --attributes=1:set:2 #Für Partition /dev/sda1

Falls /dev/sda4 die Bootpartition wäre dann wird das Bootflag wie folgt gesetzt:

sgdisk /dev/sda --attributes=4:set:2

Um die Eingabe zu überpüfen und ob wirklich die Partition richtig erkannt wurde erfährst du hiermit.

 sgdisk /dev/sda --attributes=1:show
1:2:1 (legacy BIOS bootable)

MBR schreiben:

syslinux-install_update -im


Weblinks