# Руководство по начальному запуску FreeBSD

### Alfred Perlstein

`<alfred@FreeBSD.org>`

$FreeBSD: doc/ru_RU.KOI8-R/articles/pxe/article.sgml,v 1.5 2005/10/10 03:17:22 bvs Exp $

FreeBSD это зарегистрированная торговая марка FreeBSD Foundation.

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium и Xeon это торговые марки или зарегистрированные торговые марки Intel Corporation или ее дочерних компаний в Соединенных Штатах и других странах.

Многие из обозначений, используемые производителями и продавцами для обозначения своих продуктов, заявляются в качестве торговых марок. Когда такие обозначения появляются в этом документе, и Проекту FreeBSD известно о торговой марке, к обозначению добавляется знак ''™'' или ''®''.

Эта статья подробно описывает подход компании Intel®, позволяющий машинам устанавливать FreeBSD при помощи метода PXE загрузки машины по сети.

[ По разделам / Одним файлом ]

## 1. Введение

> Внимание: Эта процедура делает ''Сервер'' как незащищённым, так и опасным, лучше просто держать ''Сервер'' на отдельном сетевом концентраторе и никаким другим способом не давать доступ к нему с машин, не являющихся ''Клиентами''.

Терминология:

Сервер | Машина, предоставляющая услуги по загрузке и установке через сеть.
Клиент | Машина, на которую будет устанавливаться FreeBSD.

Требования: Клиенты, поддерживающие метод Intel PXE загрузки по сети, подключение к Ethernet.

Пожалуйста, дайте мне знать, если вы решили какие-то проблемы, или если у вас есть пожелания к дополнительной документации.

Если вам нужен кто-то для обучения/реализации конкретной системы установки по сети, то, пожалуйста, пошлите письмо, чтобы мы могли обговорить условия.

Я также признателен Paul Saab `<ps@FreeBSD.org>` и John Baldwin `<jhb@FreeBSD.org>` за то, что они сделали основную работу по программированию pxeboot, интерфейса к системе сетевой загрузки PXE (netboot) от Intel.

## 2. Настройка сервера

1. Установите DHCP: Установив `net/isc-dhcp3-server`, вы можете использовать конфигурационный файл `dhcpd.conf`, поместив его в каталог `/usr/local/etc/`.

2. Включите tftp:

   1. Создайте каталог `/usr/tftpboot`

   2. Добавьте следующую строку в ваш `/etc/inetd.conf`:

          tftp    dgram   udp     wait    nobody  /usr/libexec/tftpd    tftpd /usr/tftpboot

3. Включите NFS:

   1. Добавьте следующее в `/etc/rc.conf`:

          nfs_server_enable="YES"

   2. Добавьте такую строку в файл `/etc/exports`:

          /usr -alldirs -ro

4. Перезагрузите машину для включения новых сервисов или запустите их вручную.

## 3. Настройка начальной загрузки

1. Сгрузите загрузочные файлы: Сгрузите образы дисков kern.flp и mfsroot.flp.

2. Подготовьте каталог tftp/pxe-boot:

   1. Поместите pxeboot в загрузочный каталог:

          # rm -rf /usr/obj/*
          # cd /usr/src/sys/boot
          # make
          # cp /usr/src/sys/boot/i386/pxeldr/pxeboot /usr/tftpboot

   2. Через устройство vndevice смонтируйте файл `kern.flp` и скопируйте его содержимое в каталог `/usr/tftpboot`:

          # mdconfig -a -t vnode -f kern.flp -u 0 # (vnconfig vn0 kern.flp) associate a vndevice with the file
          # mount /dev/md0 /mnt # (mount /dev/vn0 /mnt) mount it
          # cp -R /mnt /usr/tftpboot # copy the contents to /usr/tftpboot
          # umount /mnt              # unmount it
          # vnconfig -u vn0          # disassociate the vndevice from the file

3. Создайте собственное ядро для клиентов (в частности, чтобы избавиться от экрана настройки устройств при загрузке) и поместите его в `/usr/tftpboot`.

4. Напишите специальный скрипт `loader.rc` и установите его в `/usr/tftpboot/boot/loader.rc`, так, чтобы он не выдавал запроса на второй диск, как сделал я в моём файле.

5. Выберите утилиту установки и вспомогательные утилиты с диска mfsroot и распакуйте их, после чего поместите их также в каталог `/usr/tftpboot`:

       # vnconfig vn0 mfsroot.flp         # associate a vndevice with the file
       # mount /dev/vn0 /mnt              # mount it
       # cp /mnt/mfsroot.gz /usr/tftpboot # copy the contents to /usr/tftpboot
       # umount /mnt                      # unmount it
       # vnconfig -u vn0                  # disassociate the vndevice from the file
       # cd /usr/tftpboot                 # get into the pxeboot directory
       # gunzip mfsroot.gz                # uncompress the mfsroot

6. Создайте собственный скрипт `install.cfg` для sysinstall, при этом вы можете использовать мой в качестве образца, но вам придётся его отредактировать.

7. Скопируйте скрипт для sysinstall в распакованный образ mfsroot:

       # cd /usr/tftpboot
       # vnconfig vn0 mfsroot
       # mount /dev/vn0 /mnt
       # cp install.cfg /mnt
       # umount /mnt
       # vnconfig -u vn0

## 4. Настройка установки

1. Поместите установочные файлы на Сервер в место, доступное через NFS. Создайте каталог, соответствующий директиве 'nfs' в файле `install.cfg` и создайте здесь зеркальную копию установочных файлов FreeBSD, нужно, чтобы это выглядело примерно так:

       ABOUT.TXT       TROUBLE.TXT     compat20        floppies        ports
       ERRATA.TXT      UPGRADE.TXT     compat21        games           proflibs
       HARDWARE.TXT    XF86336         compat22        info            src
       INSTALL.TXT     bin             compat3x        kern.flp
       LAYOUT.TXT      catpages        crypto          manpages
       README.TXT      cdrom.inf       dict            mfsroot.flp
       RELNOTES.TXT    compat1x        doc             packages

2. Скопируйте упакованные пакаджи в каталог packages/All под `nfs`.

3. В каталоге packages должен находиться приготовленный файл `INDEX`. Вы можете создать собственные записи в файле `INDEX`, которые выглядят так:

       alfred-1.0||/|Alfred install bootstrap||alfred@FreeBSD.org||||

   Затем вы можете установить какие-то другие пакаджи, в частности, собственные пакаджи для установки после установки системы.

## 5. Собственные пакаджи для установки после установки системы

Для создания собственного пакаджа для установки после инсталляции системы вы можете использовать скрипт `pkgmaker.sh`, идея заключается в его установке и настройке каких-то параметров, которую нужно выполнить. `pkgmaker` запускается в каталоге, находящемся выше каталога с пакаджем, который вы хотите создать, с единственным аргументом, представляющим собой название пакаджа (то есть mypkg), и который затем создаст для вас mypkg.tgz для включения в ваш пакадж для sysinstall.

Внутри каталога с вашим пакаджем вам нужен файл с именем `PLIST`, который содержит все файлы, которые вам нужно установить и включить в ваш пакадж.

Вам также могут потребоваться файлы `pre` и `post` в этом каталоге, являющиеся скриптами командного процессора, которые необходимо запускать перед и после установки вашего пакаджа.

Так как этот пакадж находится в вашем файле `install.cfg`, то он должен быть запущен и выполнить для вас окончательную настройку.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.