Модификация LiveCD-дистрибутива Slax

Автор: Сергей kadavr Шкаликов

Давно хотел изменить какой-нибудь LiveCD дистрибутив. Вначале думал взять за основу Кнопикс, но у меня был слишком старый экземпляр. Зато на диске от одного журнала (не будем называть его) нашел отличный маленький новый дистриб Slax. Я давно уже слышал о том, что на основе Slax очень легко сделать свой liveCd, но я даже не предполагал, насколько это просто. Насколько я понял, Slax сделан с использованием скриптов linux-live (взять их можно на linux-live.org). Этот набор скриптов позволяет без особых трудностей сделать свой LiveCD. На диске со slax’ом обнаружилось всё необходимое для изменения этого дистриба и добавления в него дополнительных пакетов. Пакеты здесь содержатся в форме так называемых “модулей” с расширением “.mo”. Предполагается, что ленивый юзер просто скачает дополнительные модули с официального сайта (а их там довольно много). Если же дорогой инет или низкая скорость соединения не позволяет скачать модули, или же хочется добавить что-то, чего на оф.сайте не нашлось — тогда можно без проблем преобразовать в “модули” любой готовый пакет.

Так как Slax основывается на Slackware, то проще всего будет переделать этот LiveCD счастливым пользователям слаквари или других основывающихся на слаквари дистрибутивов. Я как раз являюсь пользователем MOPS Linux 5.1, версия которого даже каким-то магическим образом практически совпала с версией имеищегося у меня Slax’а. Я решил для начала добавить в Slax пакеты для разработки. А что в первую очередь нужно для разработки под Linux’ом? Ну конечно же, gcc, make, autoconf, automake, и естественно Vim c плагинами. Вим входит в стандартную поставку Слакса, однако я предпочитаю GVim.

Для начала копируем содержимое диска со Слаксом на винт, допустим, в ~/slax.

Процесс преобразования слакварных пакетов в модули до безобразия прост. Все необходимые скрипты лежат на диске со Слаксом в каталоге tools. Вот мой вольный перевод фрагмента документации по этому поводу

перевод фрагмента официальной документации для тех кто не дружит с английским

Как создать модуль для SLAX

Существует множество способов создания модулей для Слакса. Все команды, описанные здесь, работают непосредственно Слаксе, однако могут работать и в Вашем собственном дистрибутиве. В этом случае, скачайте linux live scripts и запустите их. примечание меня — да ничего вобщем-то и качать не надо, всё (или почти всё) необходимое есть на диске в каталоге tools Следующая команда конвертирует пакет TGZ (пакет slackware) в модуль SLAX:

 tgz2mo application.tgz application.mo

Если вы хотите изменить Ваш слакварный пакет перед созданием модуля, используйте команду:

 installpkg -root /tmp/package application.tgz

Эта команда инсталирует Ваш пакет в другой корневой каталог (different root) (здесь — в /tmp/package). Измените нужные файлы, после чего конвертируйте дерево каталогов в модуль, используя команду

 dir2mo /tmp/package module.mo

Преобразуем одним из вышеуказанных способов все нужные нам пакеты и копируем их в каталог modules, в нашем случае — в ~/slax/modules. Все модули из этого каталога будут преобразовываться в нормальный вид во время загрузки, сразу после модулей из каталога base. Если по каким-то причинам мы не желаем, чтобы модули использовались каждый раз при загрузке, можно положить их в каталог optional. В этом случае, чтобы эти модули загрузились, надо грузить Слакс с опцией

 load=name\_of\_module1,name\_of\_module2,name\_of\_moduleX

То есть в строке приветствия (когда только вставили диск в дисковод и пошла загрузка с него), надо вводить что-то типа

 boot: slax load=wine,xmms

Или же в командной строке, когда дистр уже загрузился, вводим

 uselivemod /path/module.mo

Как видим, возможностей много. Особое внимание следует обратить на файл isolinux.cfg. В нем можно изменить много интересных опций. В частности, можно добавить туда опцию load=… и autoexec=someprogram;someprogram2 etc. Его синтаксис вполне прост и понятен. Если мы хотим включить в дистрибутив какие-то дополнительные файлы (настроечные, например), есть два способа сделать это

  1. Изменением существующего модуля или созданием собственного
  2. Второй способ хорош, когда нужно добавить пару файлов. Для этого есть каталог rootcopy. Помещаем туда нужные файлы, сохраняя пути (то есть, если мы хотим добавить наш конфиг иксов, то создаем в каталоге rootcopy каталоги /etc/X11, и туда кладем файл xorg.conf). Недостаток этого способа – низкая производительность. К тому же, файлы хранятся несжатыми, что неприемлемо для файлов большого объема. Так что лучше, пожалуй, создать модуль, используя скрипт dir2mo.

Ну и наконец создаем iso образ, используя скрипт make_iso.sh

ЗЫ. По сути, большая часть этой статьи является пересказом по-русски документации с официального сайта. Надеюсь, никто не обидится на меня за это.

ЗЗЫ. Под винду есть программа MySlax Creator, позволяющая сделать кое-какие изменения, в том числе добавить или удалить модули, изменить параметры загрузки и кое-что ещё. Но зачем, если можно всё сделать из любимого Линукса? ;)

Автор: Сергей kadavr Шкаликов