How-to`s — Создание Debian Live CD\DVD с помощью live-helper
В этой статье я хочу на примере показать, как с помощью утилиты live-helper можно создать свой Live CD\DVD на основе дистрибутива Debian.
Еще раз повторюсь, что это только пример, поэтому многие из параметров и опций пропущены и не используются. О них (и не только) можно прочесть на страничке помощи или в man`ах (man lh_config). Так же, полезную информацию можно почерпнуть из /usr/share/live-helper/examples/
Предположим, что у нас имеется локальное зеркало дистрибутива Debian. В моем примере оно располагается на моей же машине, файл /etc/apt/sources.list имеет вид:
Это хорошо способствует экономии траффика, так как при создании и отладке образа, каждый раз не нужно качать пакеты с Интернета.
Приступим к созданию образа Live CD\DVD
Для начала нам потребуется сам live-helper, установим его:
После этого создадим папку, в которой будем настраивать конфигурацию нашего Live CD\DVD, и перейдем в неё.
Далее следует создать конфигурацию для live-helper`а с указанием требуемых параметров.
В моем примере это делается командой:
Теперь коротко об этих параметрах:
-b iso - устанавливает тип создаваемого образа как iso (iso|net|tar|usb-hdd)
-d lenny — выбираем тип дистрибутива создаваемого образа как lenny
--mirror-bootstrap http://localhost/debian/
--mirror-chroot http://localhost/debian/
--mirror-chroot-security http://localhost/updates/
указываем зеркало дистрибутива, которое будет использоваться для построения образа
--debian-installer live — устанавливаем тип Debian Installer`а, live означает, что в случае установки нашей Live-системы на жесткий диск, её конфигурация будет аналогичной liv-овой
--debian-installer-distribution lenny — устанавливаем тип дистрибутива Debian Installer`а
--packages-lists "my_package_list" — указываем из какого файла будем брать список дополнительно устанавливаемых пакетов (об этом параметре чуть ниже)
--bootappend-live "locale=ru_RU.UTF-8 keyb=ru" — указываем локаль и раскладку
--categories "main contrib non-free" — указываем категории пакетов
--packages "sun-java6-jdk" — указываем пакеты устанавливаемые в систему (об этом параметре чуть ниже)
--bootloader grub — указываем загрузчик используемый в live-системе
После выполнения этой команды в папке ~/DebianLive создастся конфигурация будущей live-системы. Появятся три папочки:
Нам нужна папочка config. Перейдя в нее увидим много других разных папочек.
Для начала создадим в папке chroot_local-packageslists файл со списком дополнительно устанавливаемых пакетов. Назовем его так как определили в параметре lh_config, т.е. my_package_list. В моем примере используется вот такой список пакетов
Вообще-то, этот файл необязательно создавать в папке конфигурации live-системы, его можно хранить в /usr/share/live-helper/lists/,тогда он подхватиться из любой папки конфигурации live-системы.
Теперь в папку chroot_local-packages положим .deb файлы пакетов не присутствующих на используемом зеркале. У меня там лежат вот такие файлы
В папку chroot_local-includes следует скопировать файлы, которые так же будут просто скопированы в live-систему (или на жесткий диск, в случае установки на него). Файлы следует копировать соответственно структуре, т.е. если в реальной системе они лежат допустим в /usr/local/blahblah/, то и размещать их следует в ~/DebianLive/config/chroot_local-includes/usr/local/blahblah/
Там, для примера, у меня лежат вот такие файлы и папки http://rapidshare.de/files/47233728/includes.txt.html, если коротко, то это Firefox3.0.10, сборка Eclipse для PHP-разработчиков, SMTP-заглушка (по ней может быть напишу отдельную статью попозже), PHPMyAdmin, и некоторые файлы конфигурации
В папке chroot_local-preseed создадим файл с названием указанным в --packages "sun-java6-jdk", т.е. sun-java6-jdk. Это нужно для правильной инсталляции пакетов sun-java6-jdk, sun-java6-jre, sun-java6-bin (они указаны в моем файле дополнительных пакетов my_packages_list), которые находятся в категории non-free и требуют установки лицензии. В этот файл следует внести следующие строки:
В папке chroot_local-preseed создадим файлик с именем «exim». Помещаем в него строки
Обязательно даем этому файлу права на запуск.
Объясняю зачем это нужно:
При установке системы, она автоматически инсталлирует пакеты MTA exim4. Они мне не нужны, но так как MTA занимает 25 порт используемый smtp-заглушкой, то лучше от него избавиться.
В папке chroot_sources создадим файлик с именем содержащим ####.binary, например у меня это, adm.binary. В него поместим наше зеркало дистрибутива, которое после установки будут добавлены в /etc/apt/sources.list
adm.dm — это локальное доменное имя моей машины в рабочей сети
Всё. Теперь можно начать процесс построения образа.
Запускаем его командой
из директории ~/DebianLive
Ожидаем конца сборки образа, и в случае отсутствия каких-либо ошибок, можем начать его тестирование.
Замечания и указания на ошибки — приветствуются ;)
Полезные ссылки
WeLinux.ru: Какие еще бывают Linux LiveCD
Еще раз повторюсь, что это только пример, поэтому многие из параметров и опций пропущены и не используются. О них (и не только) можно прочесть на страничке помощи или в man`ах (man lh_config). Так же, полезную информацию можно почерпнуть из /usr/share/live-helper/examples/
Предположим, что у нас имеется локальное зеркало дистрибутива Debian. В моем примере оно располагается на моей же машине, файл /etc/apt/sources.list имеет вид:
deb http://localhost/debian lenny main contrib non-free
deb http://localhost/updates lenny/updates main contrib non-free
deb-src http://localhost/updates lenny/updates main contrib non-free
deb http://localhost/updates lenny/updates main contrib non-free
deb-src http://localhost/updates lenny/updates main contrib non-free
Это хорошо способствует экономии траффика, так как при создании и отладке образа, каждый раз не нужно качать пакеты с Интернета.
Приступим к созданию образа Live CD\DVD
Для начала нам потребуется сам live-helper, установим его:
sudo apt-get install live-helper
После этого создадим папку, в которой будем настраивать конфигурацию нашего Live CD\DVD, и перейдем в неё.
mkdir ~/DebianLive
cd ~/DebianLive
cd ~/DebianLive
Далее следует создать конфигурацию для live-helper`а с указанием требуемых параметров.
В моем примере это делается командой:
lh_config -b iso -d lenny --mirror-bootstrap http://localhost/debian/ --mirror-chroot http://localhost/debian/ --mirror-chroot-security http://localhost/updates/ --debian-installer live --debian-installer-distribution lenny --packages-lists "my_package_list" --bootappend-live "locale=ru_RU.UTF-8 keyb=ru" --categories "main contrib non-free" --packages "sun-java6-jdk" --bootloader grub
Теперь коротко об этих параметрах:
-b iso - устанавливает тип создаваемого образа как iso (iso|net|tar|usb-hdd)
-d lenny — выбираем тип дистрибутива создаваемого образа как lenny
--mirror-bootstrap http://localhost/debian/
--mirror-chroot http://localhost/debian/
--mirror-chroot-security http://localhost/updates/
указываем зеркало дистрибутива, которое будет использоваться для построения образа
--debian-installer live — устанавливаем тип Debian Installer`а, live означает, что в случае установки нашей Live-системы на жесткий диск, её конфигурация будет аналогичной liv-овой
--debian-installer-distribution lenny — устанавливаем тип дистрибутива Debian Installer`а
--packages-lists "my_package_list" — указываем из какого файла будем брать список дополнительно устанавливаемых пакетов (об этом параметре чуть ниже)
--bootappend-live "locale=ru_RU.UTF-8 keyb=ru" — указываем локаль и раскладку
--categories "main contrib non-free" — указываем категории пакетов
--packages "sun-java6-jdk" — указываем пакеты устанавливаемые в систему (об этом параметре чуть ниже)
--bootloader grub — указываем загрузчик используемый в live-системе
После выполнения этой команды в папке ~/DebianLive создастся конфигурация будущей live-системы. Появятся три папочки:
.stage
config
scripts
config
scripts
Нам нужна папочка config. Перейдя в нее увидим много других разных папочек.
Для начала создадим в папке chroot_local-packageslists файл со списком дополнительно устанавливаемых пакетов. Назовем его так как определили в параметре lh_config, т.е. my_package_list. В моем примере используется вот такой список пакетов
Вообще-то, этот файл необязательно создавать в папке конфигурации live-системы, его можно хранить в /usr/share/live-helper/lists/,тогда он подхватиться из любой папки конфигурации live-системы.
Теперь в папку chroot_local-packages положим .deb файлы пакетов не присутствующих на используемом зеркале. У меня там лежат вот такие файлы
В папку chroot_local-includes следует скопировать файлы, которые так же будут просто скопированы в live-систему (или на жесткий диск, в случае установки на него). Файлы следует копировать соответственно структуре, т.е. если в реальной системе они лежат допустим в /usr/local/blahblah/, то и размещать их следует в ~/DebianLive/config/chroot_local-includes/usr/local/blahblah/
Там, для примера, у меня лежат вот такие файлы и папки http://rapidshare.de/files/47233728/includes.txt.html, если коротко, то это Firefox3.0.10, сборка Eclipse для PHP-разработчиков, SMTP-заглушка (по ней может быть напишу отдельную статью попозже), PHPMyAdmin, и некоторые файлы конфигурации
В папке chroot_local-preseed создадим файл с названием указанным в --packages "sun-java6-jdk", т.е. sun-java6-jdk. Это нужно для правильной инсталляции пакетов sun-java6-jdk, sun-java6-jre, sun-java6-bin (они указаны в моем файле дополнительных пакетов my_packages_list), которые находятся в категории non-free и требуют установки лицензии. В этот файл следует внести следующие строки:
sun-java6-jdk shared/accepted-sun-dlj-v1-1 select true
sun-java6-jre shared/accepted-sun-dlj-v1-1 select true
sun-java6-bin shared/accepted-sun-dlj-v1-1 select true
sun-java6-jre shared/accepted-sun-dlj-v1-1 select true
sun-java6-bin shared/accepted-sun-dlj-v1-1 select true
В папке chroot_local-preseed создадим файлик с именем «exim». Помещаем в него строки
1 2 3 4 5 6 7 8 9 |
set -e |
Обязательно даем этому файлу права на запуск.
Объясняю зачем это нужно:
При установке системы, она автоматически инсталлирует пакеты MTA exim4. Они мне не нужны, но так как MTA занимает 25 порт используемый smtp-заглушкой, то лучше от него избавиться.
В папке chroot_sources создадим файлик с именем содержащим ####.binary, например у меня это, adm.binary. В него поместим наше зеркало дистрибутива, которое после установки будут добавлены в /etc/apt/sources.list
deb http://adm.dm/debian lenny main contrib non-free
deb http://adm.dm/updates lenny/updates main contrib
deb-src http://adm.dm/updates lenny/updates main contrib
deb http://adm.dm/updates lenny/updates main contrib
deb-src http://adm.dm/updates lenny/updates main contrib
adm.dm — это локальное доменное имя моей машины в рабочей сети
Всё. Теперь можно начать процесс построения образа.
Запускаем его командой
sudo lh_build
из директории ~/DebianLive
Ожидаем конца сборки образа, и в случае отсутствия каких-либо ошибок, можем начать его тестирование.
Замечания и указания на ошибки — приветствуются ;)
Полезные ссылки
WeLinux.ru: Какие еще бывают Linux LiveCD