Syslinux: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Robert (Diskussion | Beiträge)
pacman -Sy angepasst, siehe https://bbs.archlinux.de/viewtopic.php?id=17347
Tuxnix (Diskussion | Beiträge)
x - hinzugefügt
 
(14 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{righttoc}}
{{righttoc}}
Das Syslinux Projekt beinhaltet Bootloader für das Dateisystem FAT (SYSLINUX), die Dateisysteme EXT2 und EXT3 (EXTLINUX), CD-ROMs (ISOLINUX) und das Booten aus dem Netzwerk (PXELINUX). Dies steht im Gegensatz zu anderen Bootloadern, die alle Funktionen in einem Programm vereinen.
Das Syslinux Projekt beinhaltet Bootloader für
EXTLINUX stellt auf regulären Linuxsystemen eine einfache Alternative zu [[GRUB]] und [[GRUB2]] dar.
* MS-DOS FAT Dateisysteme (SYSLINUX),
* Booten über Netzwerke (PXELINUX),
* "El Torito" CD-ROMs (ISOLINUX),
* und Linux 32bit-ext2/ext3/ext4 bzw. btrfs Dateisysteme (EXTLINUX).


==Installation==
SYSLINUX stellt auf Linux-Systemen eine Alternative zu GRUB und LILO dar.
Das Syslinux Paket wird mittels
pacman -S syslinux
installiert.


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


Um EXTLINUX zu nutzen, muss ein MBR (Master Boot Record) auf die Festplatte geschrieben werden, von der gestartet wird.
Dieser Wiki-Eintrag beschreibt die Konfiguration und Installation des Bootloaders SYSLINUX beim Starten des Systems von Linux-Dateisystemen.
cat /usr/lib/syslinux/mbr.bin > /dev/sdX


EXTLINUX wird mittels
{{Achtung|1=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: [http://www.syslinux.org/wiki/index.php/Filesystem] 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.}}
mkdir /boot/extlinux
extlinux --install /boot/extlinux
installiert. Alle Pfadangaben in der Konfigurationsdatei beziehen sich auf das hier angegebene Verzeichnis ''/boot/extlinux''.


'''SYSLINUX:'''
{{installation|repo=core|paket=syslinux}}


Um SYSLINUX zu nutzen, muss ein MBR (Master Boot Record) auf die Festplatte geschrieben werden, von der gestartet wird.
Bitte folgende Ausgabe beachten:
cat /usr/lib/syslinux/mbr.bin > /dev/sdX
  ==> 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.


SYSLINUX wird mittels
===Konfiguration===
mkdir /boot/syslinux
Die Konfigurationsdatei {{ic|/boot/syslinux/syslinux.cfg}} ist selbsterklärend und bereits an den Arch Linux-Kernel angepasst.
syslinuxl /boot/syslinux
installiert. Alle Pfadangaben in der Konfigurationsdatei beziehen sich auf das hier angegebene Verzeichnis ''/boot/syslinux''.


==Konfiguration==
Bitte die Angabe {{ic|APPEND root{{=}}/dev/sda3 rw}} prüfen und entsprechend anpassen!
Die Konfigurationsdatei von EXTLINUX heißt extlinux.conf und muss sich im Verzeichnis befinden, dass bei der Installation angebeben wurde.


Um ein Menü zu erhalten, muss noch die Datei ''menu.c32'' oder ''vesamenu.c32'' in das Installationsverzeichnis kopiert werden. ''menu.c32'' stellt ein Textbasiertes Menu bereit, wohingegen ''vesamenu.c32'' ein grafisches bereitstellt.
====syslinux.cfg====


'''Beispieldatei:'''
  # 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


default menu.c32
Eintrag per Partitionsbezeichnungen(Label)<br>
prompt 0
Im Beispiel ist die Rootpartition als p_arch bezeichnet worden.
menu title Arch Linux
  LABEL arch
timeout 600
    MENU LABEL Arch Linux
    LINUX ../vmlinuz-linux
label arch
    APPEND root=LABEL=p_arch rw
  menu label Arch Linux
    INITRD ../initramfs-linux.img
  kernel ../vmlinuz26
 
  append initrd=kernel26.img ro root=/dev/sda2
  LABEL archfallback
    MENU LABEL Arch Linux Fallback
label fallback
    LINUX ../vmlinuz-linux
  menu label Arch Linux (Fallback)
    APPEND root=LABEL=p_arch rw
  kernel ../vmlinuz26
    INITRD ../initramfs-linux-fallback.img
  append initrd=kernel26.img ro root=/dev/sda2


==Siehe auch==
Verwendet man ein [https://wiki.archlinux.de/title/Festplatte_verschl%C3%BCsseln#Verschl.C3.BCsselte_LVM_Partition.28Variante_1.29 verschlüsseltes LVM], legt man
* [[GRUB]]
die {{ic|APPEND}} Zeile nach diesem Schema an:
* [[GRUB2]]
APPEND cryptdevice=/dev/sda2:main root=/dev/mapper/main-root ro
 
===Installation===
 
Dank dem Arch Linux-User Matthew Gyurgyik gibt es das Script {{ic|syslinux-install_update}}, welches speziell für Arch Linux erstellt wurde.
 
'''Für MBR-Partitionstabelle:'''
 
Damit werden alle zusätzlichen Dateien nach {{ic|/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:<br>
 
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 {{ic|/boot/syslinux/ldlinux.sys}} dabei nicht gelöscht. Hier hilft nur ein
 
  # chattr -i /boot/syslinux/ldlinux.sys
  # rm /boot/syslinux/ldlinux.sys


==Weblinks==
==Weblinks==
Zeile 58: Zeile 108:


[[Kategorie:Bootloader]]
[[Kategorie:Bootloader]]
[[en:Syslinux]]

Aktuelle Version vom 18. Februar 2021, 14:37 Uhr

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