Xodok
13-02-2012, 21:57
По использованию двух загрузчиков Grub4Dos и SYSLINUX на флешке существует устойчивое мнение о необходимоcти двух загрузочных записей, а именно, в MBR Grub4Dos и в PBR SYSLINUX. Запуск загрузчика Grub4Dos из меню SYSLINUX производится записью
LABEL Grub4Dos
MENU LABEL Grub4dos
KERNEL / grub.exe
Здесь ни коим образом не задействована запись MBR Grub4Dos, т.е. переход может осуществляться и при отсутствии таковой. Если такую запись продолжить строкой вида
APPEND --config-file="........."
произойдет загрузка системы, команды для которой помещены в строке между кавычками. Например, загрузка образа WinPE из меню SYSLINUX осуществляется записью
LABEL Boot WinPE
MENU LABEL Boot WinPE
KERNEL /grub.exe
APPEND --config-file="map /WinPE.iso (0xff);map --hook;chainloader (0xff)"
Конвертирование записей из menu.lst для Grub4dos в командную строку для меню SYSLINUX производится по простому алгоритму. Все строки меню, за исключением первой строки title ....., преобразуются в единую строку, где символ перевода строки заменяется на символ ; . Полученная строка помещается в кавычки. Так конвертируются любые сложные записи из menu.lst. Например :
LABEL bartpe_mini
MENU bartpe_mini
KERNEL /grub.exe
APPEND --config-file="ls /images/bartpemini.iso.gz || find --set-root /images/bartpemini.iso.gz;map /images/firadisk.gz (fd0) || map --mem /images/firadisk.gz (fd0);map --heads=0 --sectors-per-track=0 --mem /images/bartpemini.iso.gz (0xff);map --hook;chainloader (0xff)"
Таким образом, при установленной PBR SYSLINUX совершенно не обязательно устанавливать MBR Grub4Dos и использовать файл menu.lst, поскольку запуск любой системы можно осуществить из меню SYSLINUX.
Другой вариант, когда установлена MBR Grub4Dos. Считается, что SYSLINUX невозможно загрузить без наличия PBR SYSLINUX.
Используем файл syslinux.exe из пакета SYSLINUX. Открываем окно командной строки (cmd.exe) и переходим в папку, содержащую syslinux.exe
cd \...\SYSLINUX
Вводим командную строку
syslinux.exe -f -d /boot/syslinux X: X:\syslinux.bin
Здесь /boot/syslinux путь к файлу syslinux.cfg и другим системным файлам SYSLINUX. Место расположения этих файлов можно назначить произвольно. Вместо Х пишем букву целевого диска (флешки), как она видна в файловом менеджере.
После выполнения этой процедуры в корне флешки появляется файл syslinux.bin. При запуске syslinux.exe с опцией -f загрузочные записи ни MBR ни PBR не изменяются. Несомненно, нечто прописывается в загрузочную часть флешки, но информации об этом ни в исходном мануале, ни в интернете обнаружить не удалось.
Вставляем в menu.lst запись для загрузки SYSLINUX
title BOOT syslinux
chainloader /syslinux.bin
В результате, имея на флешке или USB HDD только MBR Grub4Dos, можно работать с двумя загрузчиками.
LABEL Grub4Dos
MENU LABEL Grub4dos
KERNEL / grub.exe
Здесь ни коим образом не задействована запись MBR Grub4Dos, т.е. переход может осуществляться и при отсутствии таковой. Если такую запись продолжить строкой вида
APPEND --config-file="........."
произойдет загрузка системы, команды для которой помещены в строке между кавычками. Например, загрузка образа WinPE из меню SYSLINUX осуществляется записью
LABEL Boot WinPE
MENU LABEL Boot WinPE
KERNEL /grub.exe
APPEND --config-file="map /WinPE.iso (0xff);map --hook;chainloader (0xff)"
Конвертирование записей из menu.lst для Grub4dos в командную строку для меню SYSLINUX производится по простому алгоритму. Все строки меню, за исключением первой строки title ....., преобразуются в единую строку, где символ перевода строки заменяется на символ ; . Полученная строка помещается в кавычки. Так конвертируются любые сложные записи из menu.lst. Например :
LABEL bartpe_mini
MENU bartpe_mini
KERNEL /grub.exe
APPEND --config-file="ls /images/bartpemini.iso.gz || find --set-root /images/bartpemini.iso.gz;map /images/firadisk.gz (fd0) || map --mem /images/firadisk.gz (fd0);map --heads=0 --sectors-per-track=0 --mem /images/bartpemini.iso.gz (0xff);map --hook;chainloader (0xff)"
Таким образом, при установленной PBR SYSLINUX совершенно не обязательно устанавливать MBR Grub4Dos и использовать файл menu.lst, поскольку запуск любой системы можно осуществить из меню SYSLINUX.
Другой вариант, когда установлена MBR Grub4Dos. Считается, что SYSLINUX невозможно загрузить без наличия PBR SYSLINUX.
Используем файл syslinux.exe из пакета SYSLINUX. Открываем окно командной строки (cmd.exe) и переходим в папку, содержащую syslinux.exe
cd \...\SYSLINUX
Вводим командную строку
syslinux.exe -f -d /boot/syslinux X: X:\syslinux.bin
Здесь /boot/syslinux путь к файлу syslinux.cfg и другим системным файлам SYSLINUX. Место расположения этих файлов можно назначить произвольно. Вместо Х пишем букву целевого диска (флешки), как она видна в файловом менеджере.
После выполнения этой процедуры в корне флешки появляется файл syslinux.bin. При запуске syslinux.exe с опцией -f загрузочные записи ни MBR ни PBR не изменяются. Несомненно, нечто прописывается в загрузочную часть флешки, но информации об этом ни в исходном мануале, ни в интернете обнаружить не удалось.
Вставляем в menu.lst запись для загрузки SYSLINUX
title BOOT syslinux
chainloader /syslinux.bin
В результате, имея на флешке или USB HDD только MBR Grub4Dos, можно работать с двумя загрузчиками.