Syslinux
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
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)
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
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
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/
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
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:
01-88-99-aa-bb-cc-dd
C0A80032
C0A8003
C0A800
C0A80
C0A8
C0A
C0
C
default
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
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.
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.
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.
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/
/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
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.
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:
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
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
- ↑ Syslinux development team. Syslinux 6 Changelog , syslinux.org . Released on June 20th, 2013. Retrieved on March 27th, 2016.