Syslinux для windows syslinux cfg

Содержание
  1. Пример
  2. Подготовка к Установке
  3. Установка
  4. Загрузка DOS Систем
  5. Добавляем Linux
  6. Windows Системы.
  7. Конфигурационный файл
  8. Компоненты конфигурационного файла
  9. # comment
  10. INCLUDE имя_файла
  11. DEFAULT ядро параметры.
  12. UI модуль параметры.
  13. APPEND параметры.
  14. LABEL
  15. INITRD файл initrd
  16. IMPLICIT значение
  17. ALLOWOPTIONS значение
  18. TIMEOUT время
  19. TOTALTIMEOUT время
  20. ONTIMEOUT ядро параметры.
  21. ONERROR ядро параметры.
  22. CONSOLE значение
  23. FONT имя_файла
  24. KBDMAP имя_файла
  25. DISPLAY имя_файла
  26. SAY текст
  27. PROMPT значение
  28. NOESCAPE значение
  29. NOCOMPLETE значение
  30. F9 имя_файла
  31. Syslinux (Русский)
  32. Contents
  33. Системы с BIOS
  34. Обзор процесса загрузки
  35. Установка
  36. Автоматическая установка
  37. Ручная установка
  38. Системы с UEFI
  39. Недостатки UEFI Syslinux
  40. Установка
  41. Настройка
  42. Примеры
  43. Приглашение командной строки
  44. Текстовое меню загрузки
  45. Графическое меню загрузки
  46. Параметры ядра
  47. Автозагрузка
  48. Безопасность
  49. Передача управления другому загрузчику (chainloading)
  50. Chainloading для других систем Linux
  51. Использование memtest
  52. Перезагрузка и выключение
  53. Очистка экрана
  54. Раскладка клавиатуры
  55. Скрытие меню
  56. PXELINUX
  57. Загрузка файлов образа ISO9660 при помощи memdisk
  58. Решение проблем
  59. Использование приглашения Syslinux
  60. Fsck не работает на корневом разделе
  61. No Default or UI found on some computers
  62. Missing operating system
  63. Windows загружается, игнорируя Syslinux
  64. После выбора пункта меню ничего не происходит
  65. Невозможно удалить ldlinux.sys
  66. Белый блок в верхнем левом углу при использовании vesamenu
  67. Chainloading Windows не работает, когда она установлена на другом диске
  68. Чтение логов загрузчика

Пример

Давайте рассмотрим здесь пример создания Мультизагрузочной флешки на основе Syslinux.
Начнём сначала и сделаем всё по порядку.

Подготовка к Установке

1. Для начала скачаем весь комплект Syslinux

2. Пока скачивается, форматируем флешку программой HPUSBFW в файловую систему FAT 32
(или FAT 16 если флешка 2 Gb)

Установка

3. Допустим вы работаете в Среде Windows. Если так, то рассмотрим установку Syslinux в этой ОС.

Опишем всё пошагово:

3.1 Распакуйте скачанный архив и найдите папку win32 , скопируйте её в корень диска C:\

3.2 Запустите Консоль. Пуск => Выполнить => Пишите в поле cmd нажимаете Enter. Появится Консоль Windows. (чёрное окно)

3.3 Пишите в Консоли: cd c:\win32 затем Enter. Далее пишите команду установки: syslinux.exe -ma x:
Где х — буква вашей флешки (посмотрите в «Мой Компьютер») Этой командой вы установили Syslinux на флешку,
но этого для полноценной работы ещё не достаточно.

3.4 Создаём папки и файлы как это показано ниже:

boot\syslinux — Помещаем туда файл syslinux.cfg

boot\syslinux\fonts — помещаем туда файл шрифта 866_8x16.psf

boot\syslinux\modules — Найдите в комплекте Syslinux файл vesamenu.c32 и положите его сюда.

В папку boot\syslinux\images помещаем картинку которая станет фоном при загрузке с флешки.
Формат её должен быть *.png 640×480 например makabe.png

Можно считать, что установка загрузчика завершена, теперь нужно наполнить флешку содержимым
и отобразить его запуск в конфигурационном файле syslinux.cfg

Не будем здесь углубляться во все тонкости настроек файла syslinux.cfg , изучите тот, что здесь прикреплён
и многое вам станет понятно, например вы поймёте как устанавливается таймер, картинка, файл шрифта и.т.д
некоторые места в этом файле снабжены коментариями.

Уделим внимание загрузке 3х различных сред, — DOS, Linux, Windows.

4. В следующих действиях нам нужно будет редактировать файл syslinux.cfg , чтобы делать это в Windows
используйте редактор Notepad++. Для корректного отображения Русских букв используйте кодировку:
Кириллица OEM 866.

Загрузка DOS Систем

5. ДОС Системы обычно *.IMA или *.VFD файлы, это образы загрузочных дискет.
Стоит заметить, что в таком образе может быть не только ДОС (Дисковая Операционная Система),
но и другие менее популярные ОС (Например Колибри)

При загрузке таких вещей нам не обойтись без файла memdisk , найдите его в комплекте и поместите в папку /boot

Поместите на флешку нужный образ — /boot/dos/dos.ima

Пункт запуска в конфигурационном файле будет выглядеть вот так:

Добавляем Linux

6. Linux системы. Большинство таких систем запускаются через 2 основных файла — vmlinuz и initrd .

vmlinuz — ядро системы.

initrd — диск в оперативной памяти для начальной инициализации.

К примеру добавим на флешку PuppyRus.

Файл pup_ХХХХ.sfs вомещаем в корень флешки, а все остальные файлы складываем в /boot/puppy .

Добавляем в syslinux.cfg пункт загрузки:

Windows Системы.

7. Здесь дело обстоит немного сложнее и может возникнуть больше отказов, чем в предыдущих вариантах.

Поместите на флешку дистрибутив какого нибудь BartPE или XPE.
Эти дистрибутивы загружаются через файл setupldr.bin или peldr с использованием модуля chain.c32
и указанием диска hd0 1.

Файл chain.c32 берём из комплекта и помещаем в /boot/syslinux/modules

В syslinux.cfg пишем:

Мультизагрузочная флешка на основе Syslinux готова.

Спасибо за внимание и Успехов вам в дальнейших экспериментах 🙂

Конфигурационный файл

Все настраиваемые параметры Syslinux могут быть изменены с помощью файла syslinux.cfg , находящегося в корне загрузочного устройства.

Это текстовый файл в формате UNIX или DOS, содержащий одну или несколько из следующих строк (ключевые слова нечувствительны к регистру; слова набранные капслоком означают, что их надо писать точно так же, как они написаны здесь):

Начиная с версии 3.35, конфигурационный файл может быть также в директории /boot/syslinux или /syslinux (поиск выполняется именно в таком порядке.)
В этом случае имена файлов считаются от места расположения конфигурационного файла, если они не начинаются с \ или / .

Все опции ниже подходят для SYSLINUX, ISOLINUX, PXELINUX и EXTLINUX, если не указано иное; подробнее см. их документацию.

Вот пример пункта загрузки:

Компоненты конфигурационного файла

# comment

INCLUDE имя_файла

DEFAULT ядро параметры.

Устанавливает командную строку по-умолчанию. Если Syslinux загружается автоматически,
он будет работать как если бы строка после DEFAULT была введена в командную строку Syslinux.

Если конфигурационного файла нет или директива DEFAULT отсутствует,
DEFAULT становится «linux auto».

UI модуль параметры.

APPEND параметры.

LABEL

Если «имя» введено как имя ядра для загрузки, Syslinux запускает
указанный файл ядра с указанными параметрами в APPEND.
Если APPEND не указан, используется глобальный (при наличии).

Начиная с версии 3.62, количество LABEL не ограничено.

Обратите внимание, что LILO использует синтаксис:

. а Syslinux работает по-другому:

NB: «ядро» не обязательно ядляется ядром Linux; оно может быть
загрузочным сектором или даже файлом COMBOOT (см. ниже)

Начиная с версии 3.32 «имена» больше не переводятся в формат DOS (для SYSLINUX.)

Следующие команды могут быть использованы после директивы LABEL:

LINUX image
BOOT image
BSS image
PXE image
FDIMAGE image
COMBOOT image
COM32 image
CONFIG image

— Ядро Linux (по-умолчанию)
— Программа-загрузчик (bootstrap program) (.bs, .bin)
— файл BSS (.bss)
— PXE Network Bootstrap Program (.0)
— Несжатый образ дискеты (.img)
— программа COMBOOT (.com, .cbt)
— программа COM32 (.c32)
— другой конфигурационный файл

Использование этих директив вместо KERNEL устанавливает заданный тип файла, не взирая на имя файла.
CONFIG одначает перезапуск Syslinux с использование нового конфигурационного файла.

APPEND — Не добавлять опции. APPEND — с одним дефисом в качестве аргумента может быть использован для обхода глобального APPEND.

INITRD файл initrd

Начиная с версии 3.71, initrd может быть указан отдельной директивой
(INITRD) вместо части директивы APPEND;
INITRD также добавляет initrd=initrd_file к параметрам ядра.

Можно указать несколько имён файлов, разделив их запятыми.
В основном это полезно для initramfs, которая может
состоять из нескольких отдельных архивов cpio или cpio.gz .

IMPLICIT значение

ALLOWOPTIONS значение

TIMEOUT время

TOTALTIMEOUT время

Задаёт время ожидания пред автоматической загрузкой.
Не отменяется нажатием клавиши.
TIMEOUT и TOTALTIMEOUT могут быть использованы вместе, например:

ONTIMEOUT ядро параметры.

ONERROR ядро параметры.

Если ядро не найдено (файл не существует, или запуск запрещён)- выполнять указанную команду.
Несработавшая команда добавляется к параметрам ядра, т.е. Если в конфигурации указано:

ONERROR xyzzy plugh

. а пользователь ввёл:

. Syslinux выполнит следующую команду:

xyzzy plugh foo bar baz

CONSOLE значение

Если значение равно 0, консоль не будет отображаться. Если значение равно 1, то консоль будет видна (это по умолчанию)
У некоторых BIOSов случаются проблемы с отображением «Видео» консоли. Если такие проблемы возникнут, вы этой опцией сможете отключить показ консоли.

FONT имя_файла

KBDMAP имя_файла

DISPLAY имя_файла

SAY текст

PROMPT значение

NOESCAPE значение

NOCOMPLETE значение

Если значение = 1, Клавиша Tab не показывает возможных значений label в командной строке (boot:).

F9 имя_файла

Отображает указанный файл на экране, если нажать функциональную клавишу в командной строке.
Это можно использовать для вызова вспомогательной информации (опции загрузки ядра и.т.д)

Пустые и закоментированные строки (#) игнорируются.

Конфигурационный файл может быть прчитан не полностью. Синтаксис, отличающийся от указанного,
может нормально работать в этой версии Syslinux, но перестать работать в будущих версиях.

Syslinux (Русский)

Syslinux — это набор загрузчиков, способных загружать образы с жестких дисков, компакт-дисков, а также через сеть с использованием PXE. Он поддерживает файловые системы FAT, ext2, ext3, ext4 и Btrfs.

Contents

Системы с BIOS

Обзор процесса загрузки

  1. Этап 1 : Часть 1Загрузка MBR — При запуске BIOS загружает 440 байт загрузочного кода MBR, расположенного в начале диска ( /usr/lib/syslinux/bios/mbr.bin или /usr/lib/syslinux/bios/gptmbr.bin )
  2. Этап 1 : Часть 2Поиск активного раздела. На первом этапе загрузки MBR ищет раздел, помеченный, как активный (с установленным boot-флагом). Предположим, это раздел /boot
  3. Этап 2 : Часть 1Выполнение загрузочной записи томаПервый этап загрузочной записи MBR начинает выполнение Загрузочной Записи Тома (VBR) с раздела /boot . При использовании syslinux загрузочный код VBR находится в стартовом секторе /boot/syslinux/ldlinux.sys , который был создан командой extlinux —install . Обратите внимание, что ldlinux.sys — не то же самое, что ldlinux.c32
  4. Этап 2 : Часть 2Выполнение /boot/syslinux/ldlinux.sys — VBR загрузит остальную часть /boot/syslinux/ldlinux.sys . Расположение сектора /boot/syslinux/ldlinux.sys не должно измениться, иначе syslinux не выполнит загрузку

Установка

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

Скрипт syslinux-install_update установит Syslinux, скопирует модули *.c32 в /boot/syslinux , установит boot-флаг и загрузочный код в MBR. Он может работать с дисками MBR и GPT с программным RAID:

  1. Если вы используете отдельный раздел /boot, удостоверьтесь, что он примонтирован. Используйте для этого команду lsblk ; если вы не видите точку монтирования /boot , примонтируйте раздел до того, как вы приступите к следующему шагу
  2. Запустите syslinux-install_update с опциями -i (установить файлы), -a (пометить раздел, как активный, при помощи boot-флага) и -m (установить загрузочный код MBR): Если эта команда выдает ошибку Установка Syslinux BIOS не удалась (Syslinux BIOS install failed), вероятно, проблема в том, что исполняемый файл extlinux не может найти раздел, содержащий /boot : Это может случиться, например, при обновлении с LILO, который при загрузке текущего пользовательского (custom) ядра изменил параметр ядра в командной строке с, допустим, root=/dev/sda1 на его числовой эквивалент root=801 , о чем свидетельствуют /proc/cmdline и вывод команды mount . Исправьте ситуацию либо используя ручную установку, как описано ниже, с указанием —device=/dev/sda1 для extlinux , либо просто перезагрузившись на обычное ядро Arch Linux, поскольку оно использует initramfs, благодаря чему проблема исчезнет.
  3. Создайте или отредактируйте файл /boot/syslinux/syslinux.cfg , следуя указаниям из раздела #Настройка.

Ручная установка

Загрузочный раздел, на который вы планируете установить Syslinux, должен содержать файловую систему FAT, ext2, ext3, ext4 или Btrfs. Вы должны устанавливать его по пути точки монтирования, а не на устройство /dev/sdXY . Вы не должны устанавливать его в корневой каталог файловой системы, например, устройства /dev/sda1 , примонтированного в /boot . Вы можете установить Syslinux в каталог syslinux :

После этого установите загрузочный код Syslinux ( mbr.bin или gptmbr.bin ) в 440-байтную область загрузочного кода MBR (не путать с MBR как таблицей разделов msdos) диска, как описано в следующем разделе.

Таблица разделов MBR

Теперь вам необходимо пометить ваш загрузочный раздел как активный в вашей таблице разделов. Вот несколько приложений, способных это сделать: fdisk , cfdisk , sfdisk , parted/gparted («boot-флаг»). Должно получиться примерно следующее:

Альтернативная MBR, которую предоставляет Syslinux: altmbr.bin . Эта MBR не сканирует диск на наличие загрузочного раздела; вместо этого, последнему байту MBR присваивается значение, отображающее то, с какого раздела необходимо выполнять загрузку. Вот пример того, как altmbr.bin может быть скопирован:

В этом случае один байт со значением 5 добавляется к содержимому altmbr.bin и итоговые 440 байт пишутся в MBR устройства sda . Syslinux был установлен на первый логический раздел ( /dev/sda5 ) диска.

Таблица разделов GUID (GPT)

Загляните в основную статью: GUID Partition Table.

Второй бит атрибутов (атрибут «legacy_boot») должен быть установлен для раздела /boot :.

Это переключит атрибут legacy BIOS bootable на разделе 1. Для проверки:

Если это не сработает, вы также можете попробовать:

Системы с UEFI

Недостатки UEFI Syslinux

  • UEFI Syslinux syslinux.efi не может быть подписан sbsign (из sbsigntool) для UEFI Secure Boot. Багрепорт: http://bugzilla.syslinux.org/show_bug.cgi?id=8
  • Использование TAB при редактировании параметров ядра в меню UEFI Syslinux ведет к «нечитаемому тексту» (строки текста накладываются друг на друга). Багрепорт: http://bugzilla.syslinux.org/show_bug.cgi?id=9
  • UEFI Syslinux не поддерживает chainloading других приложений EFI, таких как UEFI Shell или Windows Boot Manager . Багрепорт: http://bugzilla.syslinux.org/show_bug.cgi?id=17
  • UEFI Syslinux может не загружаться в некоторых виртуальных машинах вроде QEMU/OVMF или VirtualBox, в продуктах/версиях VMware, а также в некоторых эмуляторах окружения UEFI, таких как DUET. Участник проекта Syslinux не подтвердил наличие этой проблемы при использовании VMware Workstation 10.0.2 и Syslinux-6.02. Отчеты об ошибках: http://bugzilla.syslinux.org/show_bug.cgi?id=21 и http://bugzilla.syslinux.org/show_bug.cgi?id=23
  • Memdisk недоступен для UEFI. Багрепорт: http://bugzilla.syslinux.org/show_bug.cgi?id=30

Установка

  • Установите пакеты syslinux и efibootmgr из официальных репозиториев. Затем настройте syslinux в Системном Разделе EFI (ESP), как показано ниже
  • Скопируйте файлы syslinux в ESP (замените $esp на точку монтирования ESP, обычно это /boot ):
  • Настройте загрузочную запись для Syslinux, используя efibootmgr:
  • Создайте или отредактируйте файл $esp/EFI/syslinux/syslinux.cfg , следуя указаниям из раздела #Настройка

Настройка

Конфигурационный файл Syslinux, syslinux.cfg , должен быть создан в том же каталоге, в котором установлен Syslinux. В нашем случае это /boot/syslinux/ для систем с BIOS и $esp/EFI/syslinux/ для систем с UEFI.

Загрузчик будет искать как syslinux.cfg (предпочтительно), так и extlinux.conf

Примеры

Приглашение командной строки

Это простой конфигурационный файл, который отобразит приглашение командной строки boot: и выполнит автоматическую загрузку через 5 секунд. Если вы хотите, чтобы загрузка начиналась сразу же, без вывода приглашения, установите параметр PROMPT в значение 0 .

Текстовое меню загрузки

Syslinux также позволяет вам использовать меню загрузки. Для этого скопируйте модуль menu в ваш каталог Syslinux:

Для получения дополнительных подробностей смотрите документацию по Syslinux или Syslinux wiki.

Графическое меню загрузки

Syslinux также позволяет вам использовать графическое меню загрузки. Для этого скопируйте COM32 модуль vesamenu в ваш каталог Syslinux:

В этой конфигурации используется такой же дизайн меню, как и на установочном образе Arch. Ее можно найти по адресу projects.archlinux.org. Фоновое изображение Arch Linux можно скачать там же. Скопируйте его в /boot/syslinux/splash.png .

С версии Syslinux 3.84, vesamenu.c32 поддерживает указание необходимого разрешения через параметр MENU RESOLUTION $WIDTH $HEIGHT . Для этого вставьте строку MENU RESOLUTION 1440 900 в ваш файл конфигурации (в данном примере используется разрешение 1440×900). Фоновое изображение должно иметь такое же разрешение, в противном случае Syslinux откажется загружать меню.

Параметры ядра

Параметры ядра устанавливаются при помощи строки APPEND файла syslinux.cfg . Рекомендуется внести эти изменения, в том числе, и для режима fallback.

В самых простых случаях должно быть изменено лишь имя раздела в параметре root . Измените /dev/sda2 на то, что необходимо для указания на верный корневой раздел.

Если вы хотите использовать UUID для точного именования устройств, а не их номера, измените значение строки APPEND , как показано ниже, заменив 1234 на UUID вашего корневого раздела:

Если вы используете шифрование LUKS, измените строку APPEND для использования вашего шифрованного тома:

Если вы используете программный RAID с mdadm, измените строку APPEND для указания вашего RAID-массива. В приведенном ниже примере указывается три массива RAID 1, и один из них устанавливается в качестве корневого:

Если загрузка с раздела raid проваливается с использованием kernel device node method, более надежным способом является использование меток разделов:

Автозагрузка

Если вы не хотите, чтобы выводилось меню Syslinux, используйте #Приглашение командной строки, при этом установив параметр PROMPT в значение 0 . Убедитесь, что в вашем syslinux.cfg указана опция DEFAULT .

Безопасность

Syslinux имеет два уровня безопасности загрузчика: мастер-пароль для всего меню и отдельные пароли для пунктов. В файле syslinux.cfg используйте

чтобы установить мастер-пароль загрузчика, и

внутри блока LABEL , чтобы установить пароль на отдельные пункты загрузки.

Передача управления другому загрузчику (chainloading)

Если вам необходимо передать управление другому загрузчику (например, для загрузки Windows), скопируйте модуль chain.c32 в ваш каталог Syslinux (для получения подробностей прочитайте инструкции из предыдущих разделов). Затем создайте секцию в конфигурационном файле:

hd0 3 — это третий раздел на первом устройстве BIOS. Счет устройств ведется с нуля, а счет разделов на устройствах — с единицы.

Если вы не уверены в том, какое устройство в BIOS считается «первым», вы можете использовать идентификатор MBR, или же, если вы используете GPT, метки файловой системы. Чтобы использовать идентификатор MBR, выполните команду

заменив /dev/sdb на то устройство, которое вам необходимо. Использование шестнадцатеричного идентификатора диска (Disk identifier) 0xf00f1fd3 в этом случае в файле syslinux.cfg будет выглядеть так:

Для получения дополнительных подробностей про chainloading смотрите Syslinux wiki.

Если на том же разделе у вас установлен GRUB, вы можете передать ему управление, используя:

Это может быть необходимо для загрузки из образов ISO.

Chainloading для других систем Linux

Передача управления другому загрузчику, такому, как в Windows, является достаточно тривиальной задачей. Но в Syslinux возможна только загрузка файлов, находящихся на том же разделе, что и конфигурационный файл. Таким образом, если у вас установлена другая система Linux на другом разделе без отдельного /boot , появляется необходимость в применении Extlinux. По существу, Extlinux может быть установлен в «суперблок» раздела и обозначен, как отдельный загрузчик. Extlinux является частью проекта Syslinux и включен в пакет syslinux .

Следующие инструкции подразумевают, что Syslinux у вас уже установлен. Также они подразумевают, что используется типичный путь к конфигурации Arch Linux /boot/syslinux и разделом для передачи управления / является раздел /dev/sda3 .

Загрузитесь в имеющийся Linux (вероятно, на разделе, который указан в Syslinux для загрузки), примонтируйте другой корневой раздел в желаемую точку монтирования. В данном примере будет использоваться /mnt . Также, если вы используете отдельный раздел /boot во второй операционной системе, он также должен быть примонтирован. В приведенном примере предполагается, что это /dev/sda2 .

Установите Extlinux и скопируйте необходимые файлы *.c32 :

Создайте файл /mnt/boot/syslinux/syslinux.cfg . Вот пример файла конфигурации:

Использование memtest

Используйте такую секцию LABEL для запуска memtest:

HDT (Hardware Detection Tool) отображает информацию об аппаратном обеспечении. Как и раньше, файл .c32 должен быть скопирован из каталога /boot/syslinux/ . Для информации PCI скопируйте файл /usr/share/hwdata/pci.ids в /boot/syslinux/pci.ids и добавьте следующее в ваш конфигурационный файл:

Перезагрузка и выключение

Используйте следующие секции для возможности перезагрузки или выключения вашей машины:

Очистка экрана

Для очистки экрана при выходе из меню добавьте следующую строку:

Раскладка клавиатуры

Если вам часто приходится редактировать параметры загрузки, вы можете захотеть изменить раскладку клавиатуры. Это позволит вам проще вводить «=», «/» и другие символы.

Сначала вы должны создать совместимую раскладку (в данном примере — немецкая):

Скопируйте файл de.ktl от имени суперпользователя в каталог /boot/syslinux/ и назначьте root’a владельцем:

Теперь отредактируйте syslinux.conf , добавив:

Скрытие меню

чтобы скрыть меню и отображать только таймер. Нажмите любую клавишу в это время, и меню появится на экране.

PXELINUX

PXELINUX предоставляется пакетом syslinux .

Скопируйте загрузчик pxelinux.0 (предоставляемый пакетом syslinux) в boot-каталог клиента. При использовании версии 5.00 (и более новых) также скопируйте ldlinux.c32 из того же пакета:

Мы также создали каталог pxelinux.cfg , в котором PXELINUX по умолчанию ищет конфигурационные файлы. Поскольку мы не хотим иметь различий между разными MAC хоста, мы создаем конфигурацию по умолчанию :

Или, если вы используете NBD, пропишите следующую строку:

PXELINUX использует тот же синтаксис конфигурации, что и SYSLINUX; обратитесь к upstream-документации для получения дополнительной информации.

Ядро и initramfs будут переданы через TFTP, так что пути к ним должны быть прописаны относительно корня TFTP.

Для загрузки pxelinux замените filename «/grub/i386-pc/core.0»; в /etc/dhcpd.conf на filename «/pxelinux.0»

Загрузка файлов образа ISO9660 при помощи memdisk

Syslinux поддерживает прямую загрузку из ISO-образов при помощи модуля memdisk. Для просмотра примеров обратитесь к разделу Использование Syslinux и memdisk.

Решение проблем

Использование приглашения Syslinux

Вы можете ввести имя блока LABEL записи, которую вы хотите загрузить (из тех, что указаны в файле syslinux.cfg ). Если вы использовали конфигурации из приведенных примеров, просто напишите:

Если вы получите ошибку о том, что конфигурационный файл не может быть загружен (configuration file could not be loaded), вы можете передать необходимые параметры загрузки, например:

Если у вас нет доступа к boot: в ramfs, и, следовательно, временно не можете загрузить ядро:

1. Создайте временный каталог, чтобы примонтировать ваш корневой раздел (если он еще не существует): 2. Примонтируйте / в /new_root (в случае, если /boot/ находится на том же разделе; иначе вам придется монтировать и то, и другое):

Fsck не работает на корневом разделе

Если журнал корневой файловой системы поврежден, в ramfs emergency shell примонтируйте корневую файловую систему:

И возьмите оттуда двоичный файл tune2fs (он не включен в состав Syslinux):

Следуйте инструкциям в ext2fs: no external journal для создания нового журнала корневого раздела.

No Default or UI found on some computers

Некоторые производители материнских плат предоставляют меньшую совместимость загрузки с устройств USB, чем другие. В то время, как устройства USB, отформатированные в ext4, могут загружаться на более свежих компьютерах, некоторые машины могут зависнуть, если загрузочный раздел, содержащий ядро и initrd, не является разделом FAT16. Для предотвращения загрузки ldlinux на более старых машинах и провала чтения syslinux.cfg , используйте cfdisk , чтобы создать раздел FAT16 ( dosfstools :

Затем установите и настройте Syslinux.

Missing operating system

Если вы видите это сообщение, удостоверьтесь, что разделу, содержащему /boot , присвоен boot-флаг. Если флаг включен, возможно, раздел начинается с сектора 1, а не с 63 или 2048. Проверьте это с помощью fdisk -l . Если предположение верно, вы можете передвинуть раздел(ы) при помощи gparted с диска восстановления. Или же, если у вас отдельный загрузочный раздел, вы можете создать резервную копию /boot при помощи

а затем загрузиться с установочного образа Arch. Далее используйте cfdisk , чтобы удалить раздел /boot и создать его заново. Теперь он должен начинаться с правильного сектора, 63. Примонтируйте ваши разделы и выполните chroot. Восстановите /boot следующей командой:

Проверьте правильность файла /etc/fstab , выполните:

Вы также получите это сообщение об ошибке, если пытаетесь загрузиться с массива RAID 1 и создали массив с слишком новой версией метаданных, которую Syslinux не понимает. По состоянию на август 2013 года по умолчанию mdadm создаст массив с версией 1.2 метаданных, но Syslinux не понимает версии, новее 1.0. В этом случае вам необходимо пересоздать массив RAID, используя флаг —metadata=1.0 в mdadm.

Windows загружается, игнорируя Syslinux

Решение: Убедитесь, что разделу, содержащему /boot , присвоен boot-флаг. Также убедитесь, что этот флаг не включен на разделе с Windows. Смотрите раздел установки выше.

MBR, идущий в Syslinux, ищет первый активный раздел, имеющий boot-флаг. Раздел с Windows, вероятно, был найден первым и имел этот флаг.

После выбора пункта меню ничего не происходит

Вы выбираете пункт меню, и ничего не происходит, экран только «обновляется». Обычно это означает, что в файле syslinux.cfg имеется ошибка. Нажмите Tab для редактирования параметров загрузки. В качестве альтернативы, вы можете нажать Esc и прописать имя блока LABEL вашей загрузочной записи (например, arch). Другой причиной может быть то, что у вас не установлено ядро. Найдите способ получить доступ к вашей файловой системе (например, используя live CD), удостоверьтесь, что файл /mount/vmlinuz-linux существует и имеет ненулевой размер. Если это не так, переустановите ядро [ссылка недействительна: раздел не найден] .

Невозможно удалить ldlinux.sys

Файл ldlinux.sys имеет защитный атрибут, предотвращающий его удаление или перезапись. Это сделано потому, что расположение файла не должно меняться, иначе Syslinux должен быть переустановлен. Чтобы удалить его, выполните:

Белый блок в верхнем левом углу при использовании vesamenu

Проблема: По состоянию на linux-3.0, драйвер modesetting пытается сохранять текущее содержимое экрана после смены разрешения (по крайней мере, это происходит с моим Intel, когда Syslinux работает в текстовом режиме). Возникает ошибка с комбинированием модуля vesamenu в Syslinux (белый блок — попытка сохранить меню Syslinux, но драйвер не может «ухватить» картинку из графического режима vesa).

Если у вас прописано свое разрешение и vesamenu с ранним modesetting, попробуйте проделать следующее с вашим syslinux.cfg для удаления белого блока и продолжения вывода графического режима:

Chainloading Windows не работает, когда она установлена на другом диске

Если Windows установлена не на том диске, на котором установлен Arch, и у вас возникает проблема с передачей управления другому загрузчику, попробуйте следующую конфигурацию:

Замените код mbr тем, что есть на диске с windows (детали выше), и добавьте swap в опции.

Чтение логов загрузчика

В некоторых случаях, например, когда загрузчику не удается загрузить ядро, крайне желательно узнать дополнительную информацию о процессе загрузки. Syslinux отображает сообщения об ошибках на экране, но появляющееся меню быстро их скрывает. Чтобы избежать этого, необходимо отключить menu UI в syslinux.cfg и использовать приглашение по умолчанию — «command-line». Это означает:

  • Отменить указание UI
  • Отменить ONTIMEOUT
  • Отменить ONERROR
  • Отменить MENU CLEAR
  • Использовать больший TIMEOUT
  • Использовать PROMPT 1
  • Использовать DEFAULT

Для получения более информативных отладочных сообщений необходимо перекомпилировать пакет syslinux с дополнительными CFLAGS:

Читайте также:  Чем хорош linux arch
Оцените статью