Загружаем Linux с помощью extlinux

Материал из База знаний Linux.ру

Перейти к: навигация, поиск

Содержание

Введение

Наверное, вы неоднократно загружались с Linux LiveCD (ну, или с LiveUSB), какого-нибудь диска для восстановления системы и видели там используемую версию syslinux, но даже понятия не имели, что же это такое.

Syslinux - это проект разрабатываемый небезызвестным Питером Энвином (Peter H. Anvin), являющаяся загрузчиком для операционной системы Linux, позволяющая запускать Linux с раздела FAT или создать загрузочную дискету с Linux (старая школа, да!). Это в некотором роде родственник проекта isolinux, позволяющий загржать Linux с CDROM или аналогичных устройств.

Syslinux чертовски полезна для организации первичной загрузки Linux, или когда надо запуститься с машины на которой уже имеется Windows, или что чаще всего, вам требуется сменить загрузчик после установки, поскольку syslinux не умеет работать с разделами находящимися на файловой системе ext различных версий. Однако, существует дополнение под названием extlinux, которое позволяет решить эту проблему и загрузиться с этих файловых систем в обход других загрузчиков, вроде GRUB и LILO.

Создаём загрузочные носители с помощью SYSLINUX и ISOLINUX

Чтобы создать загрузочный носитель используя SYSLINUX надо для начала дать имя дискете:

syslinux /dev/fd0

Задать конфигурацию можно отредактировав файл sysconfig.cfg (поищите его в boot/syslinux/, /syslinux/ и /). Для понимания синтаксиса конфигурационного файла нужно посетить wiki этого проекта.

Но в общем случае, всё будет выглядеть вот так:

DEFAULT linux
LABEL linux
SAY Booting Linux kernel via SYSLINUX
KERNEL vmlinuz.img
APPEND ro root=/dev/sda1 initrd=initrd.img

Создание загрузочных носителей с помощью isolinux немногим сложнее. Всё что для этого надо - создать каталог boot/isolinux/ или isolinux/ внутри корневого раздела вашего будущего мастер-диска.

Скопируйте isolinux.bin, isolinux.cfg (опции конфигурации и синтаксис для этого файла абсолютно аналогичен файлу syslinux.cfg), а также все необходимый файлы с ядром, образами initrd и прочими необходимыми файлами. Затем, воспользуйтесь программой mkisofs (находится в составе пакета cdrecord), чтобы создать iso-образ.

mkisofs -o isooutimage.iso
-b isolinux/isolinux.bin -c isolinux/boot.cat
-no-emul-boot -boot-load-size 4 -boot-info-table
/tmp/my-iso-tree/

Где /tmp/my-iso-tree/ корневой раздел вашего будущего раздела для образа CD.

Extlinux в качестве загрузчика системы

Недавно созданное ответвление от проекта syslinux позволяет загружаться с разделов ext версий 2 и 3, а с версии 4.00 ещё и с файловых систем ext4 и btrfs. Он работает также как и syslinux, с тем отличием, что он работает на смонтированной файловой системе, а не на устройстве:

extlinux --install /boot/isolinux

Конфигурационный файл для него называется extlinux.conf и должен находиться в том же каталоге где установлен extlinux. Синтаксис этого конфигурационного файла точно такой же, как и в случае syslinux.cfg.

Также вам потребуется создать главную загрузочную запись (MBR), чтобы extlinux мог установить сам себя на файловую системе. Вот эта страница объясняет как установить файл mbr.bin идущий в поставке syslinux на нужный раздел.

После этого вам необходимо убедиться, что загрузочный раздел на котором установлен extlinux является активным. Также имеется возможность использовать extlinux на программных RAID-массивах.

Небольшое примечание для тех, кто ранее не работал с файловой системой btrfs - это новая, активно развивающаяся файловая система для Linux с поддержкой механизма copy-on-write. Она позволяет "на лету" использовать уменьшение/увеличение размера раздела, снапшоты и субразделы, выглядя весьма многообещающей в деле расширения дальнейшей масштабируемости Linux. Etx4 это потомок журналируемой файловой системы ext3. Обе файловые системы легко конвертируются из ext3, но если вы хотите большей производительности от файловой системы для ваших задач, то вам следует посмотреть и изучить их обе. Если вы когда-нибудь сталкивались с ситуацией, когда наступает момент необходимости увеличивать размер старого раздела, то, наверное, вам подойдёт btrfs.

PXELINUX и сетевая загрузка

Существует ещё один проект основанный на syslinux под названием pxeboot. Он предназначен для загрузки системы удалённого сервера. Полезен в тех случаях, где по каким-то причинам нет привода CD или надо установить систему на большое количество машин с одного образа. Для подробностей изучите инструкцию по разворачиванию загрузки с помощью PXELinux на Ubuntu Linux.

Программа SYSLINUX и проект Syslinux хоть уже и довольно старые, они всё ещё активно развиваются и добавляют изменения касающиеся поддержки оборудования или программного обеспечения. В настоящий момент, установчный диск с Ubuntu уже имеет EXTLINUX в качестве альтернативного загрузчика вместо GRUB и вы можете попробовать его в следующий раз. Он бывает весьма полезен там, где использование GRUB проблематично - это сетевая загрузка или в качестве более простого загрузчика. Так что он ещё просуществует весьма долго.



Оригинал статьи находится здесь.
Автор: Джульетта Кемп
Перевод: Буданов Евгений aka r0g3r