xT 20.05.2009 16:42
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 имеет вид:
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, установим его:
1 |
|
После этого создадим папку, в которой будем настраивать конфигурацию нашего Live CD\DVD, и перейдем в неё.
mkdir ~/DebianLive
cd ~/DebianLive
cd ~/DebianLive
Далее следует создать конфигурацию для 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-системы. Появятся три папочки:
.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 |
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 — это локальное доменное имя моей машины в рабочей сети
Всё. Теперь можно начать процесс построения образа.
Запускаем его командой
1 |
|
из директории ~/DebianLive
Ожидаем конца сборки образа, и в случае отсутствия каких-либо ошибок, можем начать его тестирование.
Замечания и указания на ошибки — приветствуются ;)
Полезные ссылки
WeLinux.ru: Какие еще бывают Linux LiveCD
Улыбнуло =) Можно было бы переписать, но после статьи о wget - не интересно
А по-моему здесь описано все, что может понадобиться. Booley, NucleoFag, что бы еще вы хотели видеть в этой статье?
Волнует только цель сборки своего лайва, для меня предпочтительнее залить несколько образов узкого направления на одну флешку и прописать всех в грубе.
Хотел на неделе модифицировать исошник арча специально для eeepc701, чтобы поставил и все сразу работало (свое ядро, кнопки, конфиги xorg и прочего..), но потом решил, что это неактуально вследствие старости 701 и простоты настройки =)
Волнует только цель сборки своего лайва, для меня предпочтительнее залить несколько образов узкого направления на одну флешку и прописать всех в грубе.
Хотел на неделе модифицировать исошник арча специально для eeepc701, чтобы поставил и все сразу работало (свое ядро, кнопки, конфиги xorg и прочего..), но потом решил, что это неактуально вследствие старости 701 и простоты настройки =)
Может подскажите ...
Это если устанавливать c livecd,а если я загружаю livecd, и мне нужно чтобы не запускался exim , а лучше при сборки (lh_build) он его не устанавливал.
В папке chroot_local-preseed создадим файлик с именем «exim». Помещаем в него строки
set -e
for PACKAGE in exim4 exim4-base exim4-config exim4-daemon-light
do
apt-get remove --purge --yes "${PACKAGE}"
done
Обязательно даем этому файлу права на запуск.
Объясняю зачем это нужно:
При установке системы, она автоматически инсталлирует пакеты MTA exim4. Они мне не нужны, но так как MTA занимает 25 порт используемый smtp-заглушкой, то лучше от него избавиться.
set -e
for PACKAGE in exim4 exim4-base exim4-config exim4-daemon-light
do
apt-get remove --purge --yes "${PACKAGE}"
done
Обязательно даем этому файлу права на запуск.
Объясняю зачем это нужно:
При установке системы, она автоматически инсталлирует пакеты MTA exim4. Они мне не нужны, но так как MTA занимает 25 порт используемый smtp-заглушкой, то лучше от него избавиться.
Это если устанавливать c livecd,а если я загружаю livecd, и мне нужно чтобы не запускался exim , а лучше при сборки (lh_build) он его не устанавливал.
Еще раз повторюсь, что это только пример, поэтому многие из параметров и опций пропущены и не используются. О них (и не только) можно прочесть на страничке помощи или в man`ах (man lh_config). Так же, полезную информацию можно почерпнуть из /usr/share/live-helper/examples/
Начало как-то не вдохновило.
На основе этого вступления написал свою статью о wget
В этой статье я хочу на примере показать, как с помощью утилиты wget можно скачать свой файл в Дебианае.
Еще раз повторюсь, что это только пример, поэтому многие из параметров и опций пропущены и не используются. О них (и не только) можно прочесть на страничке помощи или в man`ах (man wget). Так же, полезную информацию можно почерпнуть из www.google.com
wget http://url.to.need.ed/fil.e
А собственно качественных "придирок" нет, все отлично. Плюсую!