Евгений Беленков aka Belen
2008-01-10
Пару недель назад я обнаружил среди несметного количества пакетов Debian Testing (Lenny) нечто под названием live-helper. Оказалось, что сей пакет представляет из себя набор скриптов для создания т.н. живой системы на основе Debian, способной нормально функционировать, будучи загруженной с CD/DVD или USB-Flash...
До этого я пользовался live-cd на основе SLAX(с некоторыми доработками), но поскольку в качестве основной системы, как дома, так и на работе использую Debian, то и в качестве вспомогательного рабочего места, которое можно носить с собой, также хочется иметь Debian.
Итак, о деле... Пакет live-helper включен в состав Debian Lenny, то есть тестовой ветки Debian. Для Etch такого пакета нет, хотя желающие могут его спокойно собрать из исходников для Lenny. Также для изготовления live-cd потребуется поддержка вашей системой squashfs (aptitude и module-assistant вам помогут).
Собственно процесс изготовления живой системы достаточно прост. Пакет live-helper содержит достаточное количество шаблонов, которые можно менять по своему усмотрению, вписывая названия пакетов, которые вы хотите получить на своем мобильном рабочем месте. Находятся они в /usr/share/live-helper/lists/
Я использовал, в качестве основы для своей системы, шаблон для kde-core и добавил в него ряд программ, которые мне необходимы... Сохранил его под самостоятельным именем (пусть будет kde-belen). Если вы планируете сделать live-cd, то не переборщите с количеством пакетов, в случае live-dvd простора для творчества будет побольше.
Кстати, вам потребуется доступ к полноценному репозитарию Debian, в моем случае это был ftp-сайт Debian, хотя, полагаю, можно и использовать имеющиеся у вас диски. По умолчанию строится система на основе Debian Lenny, хотя и это поведение можно изменить.
Далее все просто.
Создаем каталог в котором будет строиться ваша живая система:
$ mkdir /home/live-debian
Заходим в него:
$ cd /home/live-debianПодготовительная процедура:
$ lh_config -a i386 --sections "main contrib non-free" -p kde-belen(здесь возможны варианты, в данном случае я указываю использовать все секции репозитария; буду ставить систему для архитектуры i386, ну и хочу, чтобы список пакетов был взят из подготовленного мной шаблона)
По окончании работы lh_config”, в каталоге будет создан подкаталог config, в который нам желательно заглянуть и внести поправки по своему усмотрению. Я, к примеру, внес минимальные правки - изменил имя будущей системы и сказал, чтобы по умолчанию использовалась локаль ru_RU.UTF-8. Одним словом, любопытствующим - прямая дорога в файлы, находящиеся в каталоге config, благо они там прекрасно комментированы.
Далее начинается самая продолжительная процедура - собственно установка пакетов, создание squashfs и генерация образа диска... Для ее запуска необходимо (и достаточно) ввести команду
$ lh_buildВо время работы данного скрипта, на разных ее этапах в текущем каталоге (в нашем случае /home/live-debian) появятся подкаталоги .stage (служебный каталог, в котором будет отражаться ход процесса), сасhe (в нем будут кэшироваться пакеты, устанавливаемые в вашу систему), chroot (собственно рабочий каталог, в котором строится ваша система в chroot-окружении) и binary (непосредственно заготовка для live-системы).
Надеюсь что все у вас будет идти по сценарию, и через некоторое время вы увидите файлик с названием binary.iso, которые можно записывать на болванку и использовать, или попробовать сначала в эмуляторе, например qemu или kvm:
$ qemu -m 256 -cdrom binary.iso
Если результат вас почему-то не устроил, процедуру можно повторить изменив, к примеру список пакетов. Для достижения правильного результата необходимо удалить каталоги binary,.stage,chroot, config (его, конечно можно и оставлять, но все же...) Каталог cache лучше не удалять, особенно если используется внешний репозитарий.
Аналогичным образом делается и live-usb. Разница лишь в параметрах lh_config - требуется дополнительно указать параметр "-b usb-hdd", то есть команды принимает вид
$ lh_config -a i386 --sections "main contrib non-free" -p kde-belen -b usb-hddНа выходе при этом получится файл binary.img, который посредством элементарной команды dd переносится на вашу флешку (убивая попутно все, что на ней есть - не забудьте скопировать нужные вам файлы в другое место).
Однако полученная флешка не будет доступна из "альтернативной" ОС - и для устранения этой проблемы мне пришлось немного поработать ручками, изменив некоторые скрипты пакета live-helper и поигравшись с parted. В результате этих манипуляций у меня получилась флешка с двумя разделами, первый из которых - FAT - доступный всегда и везде, второй же - загрузочный, содержащий live-debian. Но это уже совсем другая история...
P.S. Lenny жил, Lenny жив, Lenny будет жить