2016-12-26

Syslinux на флешку

Пришло время разобраться с загрузчиком Syslinux. Данный загрузчик нашел широкое применение во многих загрузочных LiveCD. Мы же, установим его на флешку в BIOS и EFI вариантах. Попробуем загрузить с его помощью различные образы дисков (из этого списка), в обоих режимах.


Подготовка.


Для начала, скачаем отсюда последнюю версию загрузчика. Для удобства работы с файлами и выполнения консольных команд, я буду использовать Far Manager с консольной оболочкой ConEmu.

На данный момент последняя версия загрузчика имеет номер 6.04, датируемая 04.03.2016.


Форматирование флешки.


Файловой системой флешки будет FAT32. Почему не NTFS? Главной причиной является то, что флешка будет использовать EFI загрузчик. А UEFI BIOS не поддерживает файловую систему NTFS.

И так, начнем. Подключаем флешку и запускаем FAR от имени администратора.


В открывшемся окне FAR нажимаем одновременно клавиши CTRL+O, тем самым мы скроем файловые панели, и перед нами будет лишь окно консоли.


Вводим команду diskpart и жмем ENTER. Тем самым мы попадем в программу DiskPart, стандартную консольную программу ОС Windows предназначенную для работы с дисками.


Выведем список дисков системы. Для этого вводим команду list disk и нажимаем ENTER. Список дисков нам необходим для того чтобы узнать под каким номером в системе числится наша флешка.


В моем случае флешка имеет номер диска 2. Это легко определяется по размеру диска.
Укажем программе, что работать нужно с диском под номером 2. Пишем select disk 2 и жмем ENTER.


Программа сообщит о том что диск успешно выбран. Теперь очистим флешку от информации о ее разделах, иными словами очистим ее полностью. Пишем clean и нажимаем ENTER.


Немного ожидания и мы увидим сообщение о том, что диск успешно очищен. Для того, чтобы флешка была загрузочной, необходимо чтобы на ней был первичный активный раздел. Создадим его. Вводим команду create partition primary и нажимаем ENTER.


Раздел создан. Сделаем его активным. Пишем active и жмем ENTER.


Отформатируем созданный раздел в файловой системе FAT32. Для этого вводим format fs=fat32 quick и жмем ENTER.


По завершении форматирования, вводим команду exit для выхода из программы DiskPart. В ней нам больше делать нечего 😊.


И так, мы снова оказались в консоли FAR'а. Нажимаем сочетание клавиш CTRL+O для возврата файловых панелей, они нам сейчас пригодятся.


Небольшое отступление для людей впервые использующих FAR.


Приведу мини инструкцию по работе с ним. У данного файлового менеджера две файловые панели, левая и правая. Каждая панель содержит в себе список файлов, в виде меню, по которому можно перемещаться стрелками ←↑→↓. Одна из панелей в FAR всегда активная. Активную панель панель можно определить по расположенному в ней
файловому курсору, и выделенному заголовку панели. Перемещаться между панелями, т.е. сделать активной противоположенную,
можно нажатием клавиши TAB. Заголовок панели отражает текущее ее местоположение.

Теперь о функциональных клавишах и их сочетаниях:

ALT+F1 - открыть окно выбора диска для левой панели.
ALT+F2 - открыть окно выбора диска для правой панели.
CTRL+O - показать/скрыть файловые панели.
CTRL+PgDown - провалиться внутрь каталога/архива.
CTRL+PgUp - вернуться на уровень выше.
CTRL+H - показать/скрыть системные и скрытые файлы.
Insert - выделить элемент под курсором.
CTRL+(F3-F12) - различные варианты сортировки файлов в файловых панелях. Наиболее предпочитаемые CTRL+F4 по типу, и CTRL+F5 по дате.  
CTRL+(0-9) - различные варианты отображения файловых панелей. Наиболее предпочитаемые CTRL+3 и CTRL+0.
CTRL+* - выделить или инвертировать выделенные всего содержимого в текущей файловой панели.
F3 - просмотр файлов.
F4 - редактирование файлов.
F5 - копирование файлов с активной панели в неактивную.
F6 - перемещение файлов с активной панели в неактивную.
SHIFT+F6 - переименование файла под курсором.
F7 - создание каталога в активной файловой панели.
F8 - удаление файлов.
F9 - вызов строки меню.
ALT+F7 - поиск файлов в активной панели.

Установка загрузчиков.


На данный момент в нашем распоряжении пустая, только что подготовленная флешка, и скачанный архив с загрузчиком Syslinux. Распакуем архив с загрузчиком в произвольную папку. В моем случае, это будет папка E:\syslinux.


После извлечения файлов, в файловой панели с архивом, сменим текущее расположение на нашу флешку.




В корне флешки создадим каталог EFI, а внутри подкаталог boot. Данные каталоги необходимы для загрузки в EFI режиме. 




Переходим в каталог boot, переключаемся на панель с распакованным загрузчиком. Выполняем поиск файлов (ALT+F7) в ней по маске *.efi


В результатах поиска должно появиться 2 файла.


Выведем найденные файлы на панель.


Скопируем файл syslinux.efi из подкаталога efi64 в папку EFI\boot на флешке, но не как есть, а с изменением имени на bootx64.efi. Для этого выставляем курсор на копируемый файл, нажимаем кнопку F5 на клавиатуре, в открывшемся окошке копирования файлов дописываем в поле пути назначения, новое имя файла.



После копирования, возвращаемся с временной панели обратно к каталогу с распакованным загрузчиком. Самый простой вариант, это просто перейти на по пункту ".." во временной панели.



Выполним вновь поиск по файлам загрузчика, но уже по маске поиска *ldlinux*.


В этот раз файлов в результатах будет больше.


Скидываем все найденное на временную панель.


Из данного списка, скопируем файл ldlinux.e64 в папку EFI\boot.


Снова возвращаемся из временной панели к распакованным файлам загрузчика.


На данный момент мы установили на флешку EFI версию загрузчика в минимальной комплектации. Теперь приступим к установке BIOS версии. Открываем окно поиска файлов, вводим маску поиска *.exe


Результатов поиска будет 2. 


Выбираем в результатах поиска syslinux.exe и жмем на клавишу ENTER. Тем самым мы попадем в каталог содержащий данный файл.



Далее переключаемся на файловую панель флешки, и переходим в ее корень. Быстрее всего это можно сделать сочетанием клавиш CTRL+\.


Создадим цепочку каталогов boot\syslinux. Создание цепочки каталогов аналогично созданию одного каталога, просто вместо имени одного каталога описывается вся цепочка.


Переходим в только что созданный каталог boot\syslinux. После чего возвращаемся в противоположенную панель к файлу syslinux.exe.


Запоминаем букву диска нашей флешки, в моем случае это F:. Переходим в командную строку нажав сочетание клавиш CTRL+O. Набираем команду cls и жмем ENTER для очистки экрана от предыдущих наших действий. Вводим команду syslinux.exe -a -m -d /boot/syslinux F: и жмем ENTER.


Если не последовало никаких сообщений, значит все прошло успешно. Данная команда устанавливает BIOS версию загрузчика. А точнее, прописывает в MBR запись диска свой стартовый код, и копирует базовые файлы загрузчика в указанную директорию. Нажимаем CTRL+O и наблюдаем что в папке boot\syslinux появились файлы загрузчика.


Возвращаемся в корень каталога распакованного загрузчика. Выполняем поиск файлов по фразе libutil.c32;menu.c32. Эти файлы необходимы чтобы заработало меню загрузчика Syslinux.



Перекидываем найденные файлы на временную панель.


Копируем файлы libutil.c32 и menu.c32 из подкаталога bios в папку boot\syslinux.


 И эти же самые файлы, но уже из подкаталога efi64 в папку EFI\boot.


Получиться должно так как указано на скриншоте ниже.


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

Проверка загрузки флешки в BIOS и EFI режимах.

Проведем промежуточную проверку флешки, чтобы быть уверенными в том, что все проделанное выше корректно. Проверять будем с помощью виртуальной машины VirtualBox. О том как это делается подробно описано тут. Я лишь приведу результаты проверки.

Загрузка в BIOS режиме.




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

Загрузка в EFI режиме.



Аналогичное предупреждение об отсутствии файла конфигурации.

На этом я завершу первую часть данного материала 😉. Во второй части, мы создадим файл конфигурации, запишем тестовое содержимое для загрузки и постараемся его загрузить.

Продолжение следует...

Комментариев нет :

Отправить комментарий