Создание собственного установочного CD OpenBSD 3.8

Статья представляет собой пошаговое руководство по созданию собственного дистрибутива OpenBSD 3.8

[Виктор Гижевский (www.unixman.ru)]

Для создания установочного диска OpenBSD, настроенного "под себя", как описывается в документации, нам необходимо создать пакет site*.tgz (где * - версия ОС), также Вы можете использовать скрипты install.site/upgrade.site.

siteXX.tgz также, как и другие установочные пакеты (base38.tgz, comp38.tgz и др.) представляет собой сжатый gzip tar-архив (при распаковке исполняется tar -xzpf). Пакет позволяет пользователю добавлять или заменять файлы, установленные в стандартных пакетах и таким образом создать свой инсталляционный (или upgrade) диск. siteXX.tgz может использоваться, например, для:
  • изменения (замены) в установленную OpenBSD. Если Вы хотите произвести изменения в системе, Вы просто выбираете siteXX.tgz при повторном запуске инсталляции, и все ваши изменения скопируются в новую систему.
  • Создать ряд каталогов, содержащихся в siteXX.tgz файл, с необходимыми файлами.
  • При установке произвести копирование файлов с Вашими настройками, которые Вы обычно указываете после установки, например /pf.conf, /var/www/conf/httpd.conf, /etc/rc.conf.local, и т.д.
На последнем этапе установки системы запускаются сценарии install.site/upgrade.site. Обратите внимание, скрипты запускаются из загруженной файловой системы, а установливаемая система примонтирована к /mnt. Скрипты при установке исполняются в однопользовательском режиме в chroot. Это следует учесть при написании скриптов - скрипт должен быть написан для исполнения в "обычном" корне системы. Скрипт install.site должен быть помещен в siteXX.tgz файле, а upgrade.site может быть размещен в корневом каталоге перед обновлением либо в siteXX.tgz. Скрипты могут использоваться, например, для:
  • Удаления файлов, которые установлены, но Вам не нужны.
  • Удалить/изменить/установить пакеты.
  • Сделать бэкап-архив системы перед включением ПК в сеть.
  • Использовать rdate ,чтобы установить системное время.
Комбинация siteXX.tgz и install.site/upgrade.site позволяет пользователю создать свой собственный дистрибутив, разворачивающий рабочий сервер или рабочую станцию за минимальное время и требующий минимальных настроек.

В данном случае мы рассмотрим в качестве примера процесс создания собственного русифицированного дистрибутива OpenBSD 3.8.

Для создания собственного дистрибутива:

1) Создаем файл site38.tgz, в данном случае с необходимыми для русификации изменениями:

Устанавливаем OpenBSD. Архивируем каталоги, в которых предполагаются измения. Например, /etc, /usr, /var . Вносим необходимые изменения в систему, настраиваем. С помощью diff смотрим, какие изменения произошли. Переносим измененные файлы в рабочий каталог с сохранением исходного дерева.

Создаем site38.tgz. При установке системы siteXX.tgz устанавливается после установки всех пакетов. Если указанные файлы отсутствуют, то они копируются. Присутствующие файлы заменяются на имеющиеся в siteXX.tgz . Для примера я провел русификацию системы. Изменения произошли только в /etc/rc.local, /etc/skel/.inputrc и /etc/skel/.login.
    
    # cd /tmp
    # mkdir etc; mkdir etc/skel
    # cp /etc/rc.local /tmp/etc 
    # cp /etc/skel/.inputrc /tmp/etc/skel 
    # cp /etc/skel/.login /tmp/etc
    # tar -zcvf site38.tgz etc
    
Наш файл site38.tgz с русификацией готов. Пример готового файла можно взять http://unixman.ru/site38.tgz. Русификация будет работать при выборе в качестве шелла csh или после установки bash и применения в качестве оболочки. Русифицированы будут консоли кроме 0-й - она системная и не русифицируется.

В принципе, возможно подготовить siteXX.tgz таким образом, что он будет содержать все необходимое для инсталяции рабочей системы и при установке системы выбирать только ядро и этот пакет, отказавшись при установке от инсталляции всех остальных. Пример создания минисистемы для роутера с флеш-диском можно посмотреть на http://www.blackant.net/other/docs/unpuffed/. Флеш-диск можно изготовить согласно инструкции на http://www.openhardware.ru/modules/arms/view.php?w=art&idx=30&page=1 или заказать готовую платформу для роутера/файервола на http://www.kd85.com/ , которая будет весьма хорошей и экономичной альтернативой неразумно дорогим продуктам от Cisco Systems.

2) Создаем следующую структуру каталогов:
    
    for_iso
    +-> 3.8
      +-> i386
    
Командами:
    
    # mkdir /tmp/for_iso; mkdir /tmp/for_iso/3.8; mkdir /tmp/for_iso/3.8/i386
    # cd /tmp/for_iso
    
Выкачиваем с ftp-сервера необходимые файлы. Чтобы не перегружать основной ftp-сервер OpenBSD в Калгари, нагрузка на который весьма значительна, лучше воспользоваться одним из зеркал.
    
    # wget -c ftp://ftp.de.openbsd.org/3.8/ftplist
    # wget -c ftp://ftp.de.openbsd.org/3.8/root.mail
    # wget -c ftp://ftp.de.openbsd.org/3.8/ports.tar.gz
    # wget -c ftp://ftp.de.openbsd.org/3.8/src.tar.gz
    # wget -c ftp://ftp.de.openbsd.org/3.8/sys.tar.gz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/cdrom38.fs 
    
указанный файл можно использовать только для платформ i386 или AMD64, для других платформ надо использовать cd38.iso Переходим в директорию 3.8/i386
    
    # cd 3.8/i386
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/INSTALL.i386
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/INSTALL.linux
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/base38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/bsd
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/bsd.mp
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/bsd.rd
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/cd38.iso
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/comp38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/cdboot
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/cdbr
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/etc38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/floppy38.fs
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/floppyB38.fs
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/floppyC38.fs
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/game38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/man38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/misc38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/pxeboot
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/xbase38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/xetc38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/xfont38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/xserv38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/xshare38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/CKSUM
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/MD5
    
копируем подготовленный нами файл
    
    # cp /tmp/site38.tgz .
    
считаем контрольные суммы и вносим согласно подсчитанных сумм изменения в файлы CKSUM и MD5
    
    # cksum site38.tgz >> CKSUM
    # md5 site38.tgz >> MD5
    
Изготавливаем образ
    
    # cd /tmp
    # mkisofs -vrTJV OpenBSD38 \
      -b /tmp/for_iso/cdrom38.fs \
      -c boot.catalog \
      -o /tmp/OpenBSD38.iso for_iso
    
[последняя команда разбита на несколько строк по символам "\"] Записываем
    
    # cdrecord -v dev=/dev/rcd0c /tmp/OpenBSD38.iso
    
В процессе установки системы в списке пакетов для установки появится site38.tgz , который надо будет пометить для установки.

PS. Все выше изложенное гораздо лучше делается :) при прослушивании "гимна" OpenBSD 3.9 ftp://ftp.openbsd.org/pub/OpenBSD/songs/song39.mp3 , который как всегда подготовила группа музыкантов из Калгари во главе с замечательным дизайнером и музыкантом Ty Semaka. Tyron James Thomas Bowney Semaka http://www.tysemaka.com/ также автор всего дизайна и музыки OpenBSD .

Использованы материалы:

  1. OpenBSD FAQ http://www.openbsd.org/faq/faq4.html#site
  2. Алексей Солдатов. Создание установочного ISO для OpenBSD 3.8. http://www.opennet.ru/tips/info/938.shtml
  3. Francisco Luis Roque. Resolving OpenBSD Bloat: Unpuffing Puffy. http://www.blackant.net/other/docs/unpuffed/
  4. Игорь Грабин. Русификация консоли OpenBSD 3.7 . http://dreamcatcher.ru/docs/openbsd_rus.html
  5. Tyron James Thomas Bowney Semaka. Song39 . ftp://ftp.openbsd.org/pub/OpenBSD/songs/song39.mp3

Статья взята с сайта DreamCtacher.ru.

[ опубликовано 04/05/2006 ]

Виктор Гижевский (www.unixman.ru) - Создание собственного установочного CD OpenBSD 3.8   Версия для печати