Потребовалось как-то по работе сделать кастомный дистрибутив.
Дистрибутив должен умещаться на один диск и содержать в себе все, что
требуется для простого десктопа + некоторые мелочи.
Итак, поехали.
Для начала нам надо установить эталонную систему. Берем с сайта
debian.org дистрибутив. Например NetInstall. Скачиваем и устанавливаем
на машину(или на виртуальную машину, кому как удобнее). Например я
ставлю базовую систему, а затем все устанавливаю руками.
Итак. Система установлена. Устанавливаем требуемые пакеты.
apt-get install gnome gdm openoffice.org xfonts-base xorg xserver-xorg
После устанавливаем пакет «apt-move»
открываем настройки /etc/apt-move.conf и указываем в пункте LOCALDIR
путь до того места, где у нас будет храниться будущий дистрибутив. У
меня путь был указан в /home/debian. Сохраняем конфиг и выполняем
команду apt-move update
По указанному выше пути(/home/debian/distrib) появился каталог pool. В
нем будут лежать пакеты, которые в итоге окажутся на диске.
Монтируем CD(в нем ведь все еще есть диск Debian NETINSTALL) и копируем все, что на нем есть в каталог /home/debian/distrib.
Скачиваем с серверов debian.org файлы override.<дистрибутив>. Я например брал с ftp.fr.debian.org/debian/indices. Версия текущего дистрибутива etch, поэтому и скачиваем файлы, с названиями override.etch.*
Разархивируем gunzip'ом и кладем например в /home/debian/indices
В каталоге /home/debian создаем файл с именем apt.conf и заполняем его текстом по примеру с wiki.debian.org/DebianCustomCD/PoolAptConf. В этом-же каталоге создаем файл с названием дистрибутива (например mycd.conf) и заполнем его по примеру с wiki.debian.org/DebianCustomCD/PoolPackagesGzConf
Запускаем apt-ftparchive -c apt.conf generate mycd.conf
Ну а теперь самое главное. в каталоге /home/debian/distrib/install.i386 создаем файл preseed.conf
В него вписываем инструкции для инсталлятора Debian.
Пример заполнения файла preseed.conf
#заставляем инсталлер автоматически выбирать интерфейс
d-i netcfg/choose_interface select auto
#или выбираем конкретный
#d-i netcfg/choose_interface select eth1
# устанавливаем таймаут для DHCP(в данном случае, если у вас DHCP сервер медленный)
d-i netcfg/dhcp_timeout string 100
#если по DHCP ничего не получили, выводим опцию с возможностью указать настройки сети руками
d-i netcfg/dhcp_failed note
d-i netcfg/dhcp_options select Configure network manually
#название хостнейма данной машины и домена
d-i netcfg/get_hostname string office
d-i netcfg/get_domain string local
# Установка часов
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Moscow
#Устанавливаем базовую систему
tasksel tasksel/first multiselect standard
#возможны разные варианты :)
#tasksel tasksel/first multiselect standard, web-server
#tasksel tasksel/first multiselect standard, kde-desktop
# Ну и индивидуальныем пакеты
d-i pkgsel/include string ssh xorg xserver-xorg gdm gnome openoffice.org
xfonts-base xfonts-100dpi xfonts-75dpi xfonts-encodings xfonts-scalable
xfonts-utils
# Показываем сообщение о предстоящем ребуте
d-i finish-install/reboot_in_progress note
Сохраняем этот файл и открываем для редактирования isolinux/isolinux.cfg
в нем дописываем
LABEL installseed
kernel /install.386/vmlinuz
append vga=normal file=/cdrom/install.386/preseed.cfg initrd=/install.386/initrd.gz —
выходим в директорию /home/debian/distrib
выполняем команду
find. -type f -print0 | xargs --null md5sum > md5sum.txt
и собственно начинаем процесс создания ISO образа:
genisoimage -r -V «Debian 4.0 r4a i386 custom» -o
/home/debian/debiancustom_40.iso -J -cache-inodes -b
isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size
4 -boot-info-table /home/debian/distrib
После того, как программа закончит работу, в /home/debian/ можно будет
найти .iso файл с нашим кастомным дистрибутивом. Теперь его или пишем на
болванку или ставим на виртуальную машину.
p.s. надеюсь, ничего не забыл :)