Syslinux

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Syslinux and the translation is 100% complete.

A Syslinux egy szoftvercsomag, amely egy bootloader-családot tartalmaz. A szoftvercsomag magában foglalja a SYSLINUX-ot (FAT fájlrendszer bootloader), az EXTLINUX-ot ( ext2/3/4 , btrfs és xfs fájlrendszer bootloader), a PXELINUX-ot (hálózati PXE bootloader) és az ISOLINUX-ot (ISO-9660, CD/DVD bootolásra).

Az EFI támogatása a 6.00-s és újabb verziókban került hozzáadásra. [1]

Telepítés

A Syslinux szoftvercsomag telepítése biztosítja a szoftvert az operációs rendszeren, de nem telepíti vagy aktiválja a szoftvercsomagban található különféle bootloadereket.

USE jelölőzászlók

USE flags for sys-boot/syslinux SYSLINUX, PXELINUX, ISOLINUX, EXTLINUX and MEMDISK bootloaders

+bios Enable BIOS support
+uefi Enable UEFI support
secureboot Automatically sign efi executables using user specified key

Emerge

root # emerge --ask sys-boot/syslinux

Beállítás BIOS rendszereken

Note
Ezek az utasítások BIOS rendszerekhez készültek. (U)EFI esetén olvassa el a Syslinux "Beállítás EFI rendszereken" szakaszát.

A szakasz hátralévő részében feltételezzük, hogy a boot partíció a következő helyen található: /dev/sda1 (ami gyakori elhelyezés szokott lenni). Ha ez nem így van, akkor győződjön meg róla, hogy a szükséges módosításokat elvégzi.

Az EXTLINUX használatához feltétlenül telepítse a megfelelő boot szektort , majd telepítse a bootloadert a partícióra. Ha ezek a lépések kimaradnak, akkor az EXTLINUX nem fog működni. Az ilyen típusú rendszerbetöltő szektor beállítás nem szükséges a SYSLINUX, PXELINUX és ISOLINUX telepítésekhez.

Boot szektor

MBR (msdos)

Note
Ezek az utasítások MBR (msdos) partícióelrendezéshez készültek. GPT esetén ugorjon a Syslinux GPT beállítása szakaszhoz.

Először telepítse a Syslinux által biztosított rendszerbetöltő szektort. Különös figyelmet fordítson erre a parancsra. Ha a count=1 nincs megadva, akkor az egész adathordozót felülírja, nem csak az első 440 bájtot.

root # dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/mbr.bin of=/dev/sda

Jelölje meg a boot partíciót aktívként. A "Boot" oszlopban egy * jelenik meg:

root # fdisk /dev/sda
Command (m for help): a
Partition number (1-3): 1
Command (m for help): p
 ...
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      133119       65536   83  Linux
/dev/sda2          133120     4327423     2097152   82  Linux swap / Solaris
/dev/sda3         4327424  1953525167   974598872   83  Linux
  
Command (m for help): w

GPT

Note
Ezek az utasítások GPT partícióelrendezésekhez készültek. MBR (msdos) esetén olvassa el a Syslinux MBR (msdos) beállítása szakaszt.

Először telepítse a Syslinux által biztosított boot szektort. Különös figyelmet fordítson erre a parancsra. Ha a count=1 nincs megadva, akkor az egész adathordozót felülírja, nem csak az első 440 bájtot.

root # dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=/dev/sda

Ezután futtassa a sys-apps/gptfdisk szoftvercsomag gdisk segédprogramját, és engedélyezze a legacy BIOS bootable attribútumot azon a partíción, ahol a /boot/extlinux található.

root # gdisk /dev/sda
Command (? for help): x
 
Expert command (? for help): a
Partition number (1-3): 1
Known attributes are:
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount
 
Attribute value is 0000000000000000. Set fields are:
  No fields set
 
Toggle which attribute field (0-63, 64 or <Enter> to exit): 2
Have enabled the 'legacy BIOS bootable' attribute.
Attribute value is 0000000000000004. Set fields are:
2 (legacy BIOS bootable)
 
Toggle which attribute field (0-63, 64 or <Enter> to exit): 
 
Expert command (? for help): w

Boot loader telepítése

EXTLINUX

Használja az extlinux parancsot a szükséges fájlok telepítéséhez a /boot/extlinux könyvtárba.

root # mkdir /boot/extlinux
root # extlinux --install /boot/extlinux
root # ln -snf . /boot/boot
Note
A "boot -> ." szimbolikus hivatkozás önmagában nem szükséges, de a következetesség érdekében létrehozzák, hogy az példabeállítások azonosak legyenek azok számára, akiknek a /boot ugyanazon a partíción van, és azok számára, akik külön partícióval rendelkeznek.

A syslinux szoftvercsomag különféle modulokat tartalmaz további funkciók engedélyezéséhez. Az ötös verziótól kezdve egyes modulok más moduloktól függnek, ezért érdemes a legfontosabb modulokat másolni, függetlenül a felhasználási esettől. Az összes függőség ellenőrzéséhez tekintse meg a Syslinux Dinamikus hivatkozások ellenőrzése szakaszát.

root # cd /usr/share/syslinux
root # cp menu.c32 memdisk libcom32.c32 libutil.c32 /boot/extlinux

ISOLINUX

Az ISOLINUX telepítéséhez kezdje egy alapkönyvtárral, amelyben minden, a CD-n vagy DVD-n szereplő fájlnak helyet kell kapnia. Az alapkönyvtáron belül hozzon létre egy isolinux nevű alkönyvtárat, és másolja a syslinux szoftvercsomagból származó isolinux.bin fájlt a isolinux könyvtárba.

root # mkdir isolinux
root # cp /usr/share/syslinux/isolinux.bin isolinux/

Hozza létre az isolinux.cfg fájlt az alábbi utasítások szerint.

Ezután hozzon létre még két könyvtárat az alapkönyvtárban: kernel és images .

root # mkdir kernel images

Másolja a memdisk bináris fájlt a kernel könyvtárba.

root # cp /usr/share/syslinux/memdisk kernel/
Note
A mkisofs parancs használatához az app-cdr/cdrtools szoftvercsomagot kell telepíteni. Ez az alábbi parancs futtatásával tehető meg:
root # emerge --ask app-cdr/cdrtools

Amikor a beállítás elkészült, a végleges ISO képfájl létrehozásához a következő mkisofs parancs használható (ne felejtse el a ${BASEDIR} változót a korábbi parancsokban használt alapkönyvtárra cserélni).

root # mkisofs -o output.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ${BASEDIR}

A boot.cat fájl automatikusan létrejön.

PXELINUX

A PXELINUX segítségével lehetőség van hálózati indításra olyan képfájlokkal, amelyeket egy TFTP szerveren keresztül osztanak meg. Ez a leírás feltételezi, hogy egy TFTP szerver már telepítve van, és annak TFTP gyökérkönyvtára a /var/lib/tftpboot helyen található. Ebben a beállításban másolja a PXELINUX rendszerbetöltőt a TFTP indítási könyvtárba, és hozzon létre egy beállításkönyvtárat.

root # cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux.0
root # mkdir /var/lib/tftpboot/pxelinux.cfg
Note
Az újabb lpxelinux.0 másolásakor a pxelinux.0 helyett lehetőség van a kernel és a ramdisk HTTP protokollon keresztüli betöltésére, valamint a DNS-nevek használatára a beállításfájlban.

A beállításkönyvtár különböző beállítások tárolására használható a hálózati indítást végző kliensek számára. Amikor egy kliens próbál indulni, a MAC-cím vagy az IP-cím alapján kerül meghatározásra a megfelelő beállításfájl. Először a MAC-címet keresi, majd a kliens IP-címének hexadecimális ábrázolását próbálja meg. Ezután a hexadecimális ábrázolás végéről egy karaktert eltávolít, amíg nincs több karakter, vagy amíg nem talál egy beállításfájlt. Ha egyik próbálkozás sem sikerül, akkor az default beállításfájl kerül alkalmazásra.

Az IP-cím hexadecimális ábrázolását a gethostip parancs segítségével lehet megtalálni.

user $ gethostip -x 192.168.0.50
C0A80032

Egy példa-beállításfájl illesztési sorrendje a következő módon történik:

CODE
01-88-99-aa-bb-cc-dd
C0A80032
C0A8003
C0A800
C0A80
C0A8
C0A
C0
C
default
Note
A könnyű karbantartás érdekében hozzon létre beállításfájlokat hostname szerint, és hozzon létre szimbolikus hivatkozásokat az IP-ábrázolásra. Az alapértelmezések visszaállításához egyszerűen törölje vagy nevezze át a szimbolikus hivatkozást.

SYSLINUX

Használja a syslinux parancsot a SYSLINUX bootloader telepítéséhez a (FAT) fájlrendszerre:

root # syslinux --install /dev/sda1

EFI rendszerek beállítása

Note
Az EFI támogatás a Syslinux 6.00 verziójától érhető el.

EFI rendszerpartíció

Hozzon létre egy EF típusú partíciót (MBR) vagy EF00 (GPT) egy FAT32 fájlrendszerrel. Ha már létezik, akkor lehetőség van egy meglévő EFI rendszerpartíció (ESP) használatára is. Javasolt ezt a partíciót a /boot/efi/ helyen csatolni.

Note
Ez a következő feltételezéseken alapul: A rendszer EFI módban van elindítva, és az EFI rendszerpartíció a /dev/sda1 helyen található.

Boot loader telepítése

Az EFI rendszerpartícióban hozzon létre egy könyvtárat a Syslinux fájlok számára. Ebben a könyvtárban fognak helyet kapni a később létrehozandó beállításfájlok is.

root # mkdir -p /boot/efi/EFI/syslinux

Másolja a syslinux.efi és ldlinux.e64 fájlokat, valamint a kívánt .c32 fájlokat a /usr/share/syslinux/efi64/ könyvtárból az új syslinux könyvtárba. Például:

root # cd /usr/share/syslinux/efi64
root # cp syslinux.efi ldlinux.e64 menu.c32 libcom32.c32 libutil.c32 /boot/efi/EFI/syslinux

Ha az operációs rendszer nem EFI módban lett elindítva, akkor a Syslinux fájlokat a /boot/efi/EFI/Boot könyvtárba kell másolni, és a syslinux.efi fájlt át kell nevezni bootx64.efi névre. Ebben az esetben hagyja ki a következő szakaszt, amely az efibootmgr segédprogrammal kapcsolatos.

Syslinux ismertté tétele az EFI számára

Győződjön meg róla, hogy a CONFIG_EFI_VARS engedélyezve van a kernelben. Ha kernelmodulként lett létrehozva, akkor ügyeljen arra, hogy be legyen töltve a memóriába. Ezt a műveletet a modprobe segédprogram segítségével lehet végrehajtani. Miután a kernelmodulok betöltődtek, hozzon létre egy új boot bejegyzést az efibootmgr segítségével, és igazítsa a /dev/sda értékét ahhoz az adathordozóhoz, amely tartalmazza a /boot könyvtárat.

root # modprobe efivars
root # efibootmgr -c -d /dev/sda -l '\EFI\syslinux\syslinux.efi' -L SYSLINUX -p 1

Az efibootmgr automatikusan beállítja az EFI boot sorrendet úgy, hogy a legutóbb létrehozott bejegyzés legyen a lista tetején. Ha ez nem kívánatos, akkor módosítsa a boot sorrendet a -o opcióval.

Note
Az efibootmgr parancs működéséhez az sys-boot/efibootmgr szoftvercsomagot kell telepíteni. Ha szükséges, akkor használja az alábbi parancsot a telepítés elvégzésének az érdekében:
root # emerge --ask sys-boot/efibootmgr

Beállítás

A Syslinux beállításfájl neve syslinux.cfg . A korábbi telepítésekkel való kompatibilitás érdekében a következő régebbi beállításfájlnevek továbbra is támogatottak:

  • EXTLINUX: extlinux.conf
  • ISOLINUX: isolinux.cfg

A beállítási formátum azonban változatlan. A beállításfájlnak abban a könyvtárban kell, hogy legyen ahol a Syslinux telepítve van.

Egyszerű beállítás

Ez egy egyszerű " boot: " promptot biztosít, hasonlóan a Gentoo Minimal LiveCD-jéhez.

FILE syslinux.cfg
DEFAULT gentoo
LABEL gentoo
      LINUX /boot/kernel-3.6.11-gentoo

Menü beállítása

A következő beállítás egy egyszerű szöveges menü példát biztosít. Ezt a vesamenu modul segítségével valósítjuk meg. Egyes esetekben, amikor a vesa nem kompatibilis, az egyszerűbb menümodul működni fog. Másolja a VESA menümodult a boot fájlrendszerbe vagy az EFI rendszerpartícióba. A BIOS rendszereknek az alábbi példát kell használniuk:

root # cp /usr/share/syslinux/vesamenu.c32 /boot/extlinux/

EFI rendszereknek használniuk kell:

root # cp /usr/share/syslinux/efi64/vesamenu.c32 /boot/efi/EFI/syslinux/
FILE /boot/extlinux/extlinux.conf
TIMEOUT 30
ONTIMEOUT gentoo
  
UI vesamenu.c32
MENU TITLE Boot
  
LABEL gentoo
      MENU LABEL Gentoo Linux
      LINUX /boot/kernel-3.6.11-gentoo
  
LABEL gentoo-old
      MENU LABEL Gentoo Linux (previous kernel)
      LINUX /boot/kernel-3.5.7-gentoo
Note
Kerülje a KERNEL paraméter használatát a Linux kernelképfájlok kiválasztásához. Ehelyett használja a LINUX paramétert. Ha a KERNEL paramétert használja, és a képfájl neve .0 végződéssel ér véget, akkor az extlinux félreértelmezi, és megpróbálja PXE-n keresztül betölteni, ami grafikai hibákkal teli képernyőt eredményez, mást hiba nem lesz. További információért tekintse meg a SYSLINUX wiki "KERNEL file" szekcióját.
Note
A beállításfájlban az abszolút elérési utak a fájlrendszer gyökérkönyvtárára vonatkoznak, míg a nem abszolút elérési utak a Syslinux telepítési könyvtárára lesznek relatívak.

Kernelparaméterek átadása

Hacsak a kernelparaméterek nincsenek beégetve a kódba (hard-coded), és az initramfs képfájl nincs beépítve a kernelképfájlba, ezeket a boot loaderen keresztül kell átadni a kernelképfájlnak. Ehhez használja a APPEND és/vagy a INITRD paramétert:

FILE syslinux.cfg Kernelparaméterek hozzáadása
DEFAULT gentoo
  
LABEL gentoo
      LINUX /boot/kernel-3.6.11-gentoo
      INITRD /boot/initramfs-3.6.11-gentoo
      APPEND root=/dev/sda1
Note
A PARTUUID címkékre való hivatkozásokat (nem fájlrendszer UUID) hozzá lehet fűzni a root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx formátummal.

Dinamikus hivatkozások ellenőrzése

A syslinux-5.00 óta a .c32 modulok dinamikus hivatkozást használnak. Az függőségek telepítésének ellenőrzéséhez lépjen be a Syslinux könyvtárba, és használja a ldd parancsot:

root # LD_LIBRARY_PATH=. ldd *.c32

Ha bármelyik .c32 modul hiányzik, akkor győződjön meg róla, hogy átmásolja őket a könyvtárba.

További olvasnivaló a témában

  • GRUB Legacy — also known as GRUB Legacy or GRUB version 1, was previously recommended by the Handbook as Gentoo's default bootloader on x86 and amd64 architectures.
  • GRUB — egy multiboot másodlagos operációsrendszer-betöltő ( bootloader ) szoftver. A legtöbb rendszerarchitektúrán képes a bináris futtatható kernelképfájl betöltésére különféle fájlrendszereken .

Hivatkozások

  1. Syslinux development team. Syslinux 6 Changelog , syslinux.org . Released on June 20th, 2013. Retrieved on March 27th, 2016.