SYSLINUX

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 11:28, 28 ноября 2016.
Syslinux
SysLinux.png
Меню syslinux
Разработчики: H. Peter Anvin
Постоянный выпуск: 6.03 / 6 октября 2014
Написана на: C, язык ассемблера
Операционная система: Linux, FreeBSD
Тип ПО: Boot loader
Лицензия: GNU General Public License
Веб-сайт www.syslinux.org

SYSLINUX — набор загрузчиков ядра Linux (автор H. Peter Anvin), состоит из нескольких отдельных загрузчиков, самым известным из которых является isolinux. В их число входит и загрузчик syslinux, давший название всему проекту[1]. Он поддерживает файловые системы FAT, ext2, ext3, ext4 и Btrfs[2].

Syslinux не может получить доступ к файлам с разделов, которыми он не "владеет". Вы можете использовать альтернативный загрузчик, в котором нет такого ограничения, например, GRUB.

Список загрузчиков в SYSLINUX Project

  • syslinux для загрузки с FAT, FAT32, NTFS
  • isolinux для загрузки с iso9660
  • pxelinux для загрузки по PXE
  • extlinux для загрузки с ext2/ext3/ext4 или btrfs

Существует ряд утилит, имеющих одинаковый с ядром Linux формат загрузки и пригодных для запуска из-под syslinux. Одной из них является утилита Memtest86.

Установка

Установка syslinux из OS Windows

syslinux.exe -fma -d /syslinux F:

-f игнорировать некоторые нефатальные ошибки
-m установить MBR загрузчик
-a пометить раздел на устройстве как загружаемый
-d каталог для установки
<F:> раздел для установки

Установка будет произведена на раздел F:, системные файлы скопированы в папку syslinux.

Пример syslinux.cfg с графическим меню(vesamenu.c32). Первый пункт меню - загрузка посекторного образа ДОС дискеты; второй-загрузка .iso CD образа; .... последний пункт - переход к меню скопированного на флэшку дистрибутива Slax liveCD:

UI /syslinux/vesamenu.c32
TIMEOUT 70
ONTIMEOUT 1
MENU DEFAULT 1
MENU TABMSG Press <TAB> to edit options 
MENU AUTOBOOT Automatic boot in # second{,s}...
MENU BACKGROUND /syslinux/logo.png
MENU TITLE MyFlashBootDisk
MENU color title   1;36;44    #ffffffff #00000000 std
MENU color sel      7;37;40    #FF000000 #FFC0C0C0 all
MENU color hotsel   1;7;37;40  #FF000000 #FFC0C0C0 all
MENU ROWS 8
  1. Пример 1 Floppy
LABEL 1
MENU LABEL ^1. VC (dos, any utilites)
TEXT HELP
	DOS: boot to VC, press F2 for menu: MHDD, Victoria, MemTest, PartitionMagic, Ghost, etc
ENDTEXT
	LINUX /syslinux/memdisk
	INITRD /syslinux/os/dos/FlopVC.bin
	APPEND raw
  1. Пример 2 .ISO (CD)
LABEL GeeXBoX 1.2.4 Video, Audio, TV
TEXT HELP
	GeeXBoX Media center - Video, Audio, TV
ENDTEXT
	LINUX /syslinux/memdisk
	INITRD /syslinux/os/geexbox-1.2.4-en.i386.glibc.iso
	APPEND iso

 # ------
LABEL Acronis_True_Image_Home_2013
TEXT HELP
	Acronis_True_Image_Home_2013
ENDTEXT
	LINUX /syslinux/os/Acronis/Acronis_True_Image_Home_2013/kernel.dat vga=0x318 quiet acpi=off noapic quiet
	INITRD /syslinux/os/Acronis/Acronis_True_Image_Home_2013/init.dat

 # ------
LABEL Knoppix
TEXT HELP
	Knoppix
ENDTEXT
	KERNEL /KNOPPIX/boot/syslinux/linux 
	APPEND ramdisk_size=100000 lang=ru vt.default_utf8=0 apm=power-off initrd=/KNOPPIX/boot/syslinux/minirt.gz nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=localtime

 # ------
LABEL Slax
	MENU LABEL Slax
	KERNEL /syslinux/vesamenu.c32
	APPEND /slax/boot/syslinux.cfg

Автоматическая установка

Установите пакет syslinux из официальных репозиториев.

Начиная с версии Syslinux 4, Extlinux и Syslinux являются одним и тем же. Пакет gptfdisk необходим для поддержки GPT с использованием автоматического скрипта. Если ваш загрузочный раздел отформатирован в FAT, вам также потребуется пакет mtools.

Скрипт syslinux-install_update является специфичным для Archlinux, и по этой причине не предоставляется/поддерживается разработчиками Syslinux. Пожалуйста, направляйте все багрепорты, связанные с этим скриптом, в Arch Bug Tracker, а не в upstream.

Если вы обновляете Syslinux с версии 5.xx (или старше) до версии 6.xx, пожалуйста, переустановите (а не обновите) Syslinux BIOS вручную (без использования установочного скрипта) один раз, следуя указаниям из раздела #Ручная установка. Установочный скрипт не способен корректно обновить Syslinux до версии 6.xx.

Скрипт syslinux-install_update установит Syslinux, скопирует модули *.c32 в /boot/syslinux, установит boot-флаг и загрузочный код в MBR. Он может работать с дисками MBR и GPT с программным RAID: Если вы используете отдельный раздел /boot, удостоверьтесь, что он примонтирован. Используйте для этого команду lsblk; если вы не видите точку монтирования /boot, примонтируйте раздел до того, как вы приступите к следующему шагу Запустите syslinux-install_update с опциями -i (установить файлы), -a (пометить раздел, как активный, при помощи boot-флага) и -m (установить загрузочный код MBR): # syslinux-install_update -i -a -m Если эта команда выдает ошибку Установка Syslinux BIOS не удалась (Syslinux BIOS install failed), вероятно, проблема в том, что исполняемый файл extlinux не может найти раздел, содержащий /boot:

# extlinux --install /boot/syslinux
extlinux: cannot find device for path /boot/syslinux
extlinux: cannot open device (null)

Это может случиться, например, при обновлении с LILO, который при загрузке текущего пользовательского (custom) ядра изменил параметр ядра в командной строке с, допустим, root=/dev/sda1 на его числовой эквивалент root=801, о чем свидетельствуют /proc/cmdline и вывод команды mount</ref>Мультизагрузка USB с использованием Syslinux [Электронный ресурс] : Материал из http://blog.jak.me/: — Режим доступа: http://blog.jak.me/2013/01/03/creating-a-multiboot-usb-stick-using-syslinux/</ref>. Исправьте ситуацию либо используя ручную установку, как описано ниже, с указанием --device=/dev/sda1 для extlinux, либо просто перезагрузившись на обычное ядро Arch Linux, поскольку оно использует initramfs, благодаря чему проблема исчезнет. Создайте или отредактируйте файл /boot/syslinux/syslinux.cfg, следуя указаниям из раздела #Настройка.

Если вы перезагрузите вашу систему сейчас, вы по-прежнему получите приглашение командной строки Syslinux. Для автоматической загрузки вашей системы или появления меню загрузки необходимо создать конфигурационный файл Если вы находитесь в другом корневом каталоге (например, при загрузке с установочного носителя), установите Syslinux следующей командой [3]:

# syslinux-install_update.sh -i -a -m -c /mnt/

Примечание

  1. SYSLINUX [Электронный ресурс] : Материал из Википедии — свободной энциклопедии: — Режим доступа: https://ru.wikipedia.org/wiki/Syslinux
  2. The Syslinux Project [Электронный ресурс] : Материал из http://www.syslinux.org: — Режим доступа: http://www.syslinux.org/wiki/index.php?title=The_Syslinux_Project
  3. Syslinux (Русский) [Электронный ресурс] : Материал из https://wiki.archlinux.org/: — Режим доступа: https://wiki.archlinux.org/index.php/Syslinux_(Русский)#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0