Автор: Сергей 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. Его синтаксис вполне прост и понятен. Если мы хотим включить в дистрибутив какие-то дополнительные файлы (настроечные, например), есть два способа сделать это
- Изменением существующего модуля или созданием собственного
- Второй способ хорош, когда нужно добавить пару файлов. Для этого есть каталог rootcopy. Помещаем туда нужные файлы, сохраняя пути (то есть, если мы хотим добавить наш конфиг иксов, то создаем в каталоге rootcopy каталоги
/etc/X11
, и туда кладем файл xorg.conf). Недостаток этого способа – низкая производительность. К тому же, файлы хранятся несжатыми, что неприемлемо для файлов большого объема. Так что лучше, пожалуй, создать модуль, используя скрипт dir2mo.
Ну и наконец создаем iso образ, используя скрипт make_iso.sh
ЗЫ. По сути, большая часть этой статьи является пересказом по-русски документации с официального сайта. Надеюсь, никто не обидится на меня за это.
ЗЗЫ. Под винду есть программа MySlax Creator, позволяющая сделать кое-какие изменения, в том числе добавить или удалить модули, изменить параметры загрузки и кое-что ещё. Но зачем, если можно всё сделать из любимого Линукса? ;)
Автор: Сергей kadavr
Шкаликов