10.5. Работа с бездисковыми станциями FreeBSD


Текст предоставил Martin Renters <martin@FreeBSD.org>.

netboot.com/netboot.rom позволяют вам загрузить вашу машину с FreeBSD по сети и работать с FreeBSD даже без наличия диска на клиентской машине. В версии 2.0 возможно даже иметь локальный раздел подкачки. Поддерживается также подкачка поверх NFS.

Список поддерживаемых адаптеров Ethernet включает: Western Digital/SMC 8003, 8013, 8216 и совместимые с ними; NE1000/NE2000 и совместимые с ними (требуется перекомпиляция)

10.5.1. Инструкции по настройке
Найдите машину, которая будет вашим сервером. Эта машина должна иметь достаточное количество дискового пространства для того, чтобы на ней поместились бинарные файлы FreeBSD 2.0, и на ней должны быть запущены сервисы bootp, tftp и NFS. Протестированные машины:

HP9000/8xx под управлением HP-UX 9.04 и выше (версии до 9.04 не работают)

Sun/Solaris 2.3. (вам может потребоваться найти bootp)

Настройте сервер bootp, чтобы он сообщал клиенту его IP, сетевой шлюз и маску подсети.

diskless:
:ht=ether:
:ha=0000c01f848a:
:sm=255.255.255.0:
:hn:
:ds=192.1.2.3:
:ip=192.1.2.4:
:gw=192.1.2.5:
:vm=rfc1048:

Настройте сервер TFTP (на той же самой машине, что и сервер bootp) для того, чтобы он сообщал клиенту загрузочную информацию. Имя этого файла cfg.X.X.X.X (или /tftpboot/cfg.X.X.X.X, будут пробоваться оба), где X.X.X.X - это IP-адрес клиента. Этот файл может содержать любые корректные команды netboot. В версии 2.0 netboot воспринимает следующие команды:

help вывод справочной информации
ip X.X.X.X вывод/задание IP-адреса клиента
server X.X.X.X вывод/задание адреса сервера bootp/tftp
netmask X.X.X.X вывод/задание маски подсети
hostname name вывод/задание имени хоста
kernel name вывод/задание имени ядра
rootfs ip:/fs вывод/задание корневой файловой системы
swapfs ip:/fs вывод/задание файловой системы для подкачки
swapsize size задание размера файла подкачки в КБайтах для бездисковой работы
diskboot загрузка с диска
autoboot продолжить процесс загрузки
trans on|off включить/выключить передатчик
flags bcdhsv задать параметры загрузки

Типичный полный cfg-файл для бездисковой работы может содержать следующее:

rootfs 192.1.2.3:/rootfs/myclient
swapfs 192.1.2.3:/swapfs
swapsize 20000
hostname myclient.mydomain

cfg-файл для машины с локальным разделом подкачки может содержать следующее:

rootfs 192.1.2.3:/rootfs/myclient
hostname myclient.mydomain

Проверьте, что ваш сервер NFS экспортирует корневую файловую систему (и, если нужно, подкачку) для вашего клиента, а клиент имеет доступ с правами администратора к этим файловым системам. Типичный файл /etc/exports на системе FreeBSD может иметь такой вид:

/rootfs/myclient -maproot=0:0 myclient.mydomain
/swapfs -maproot=0:0 myclient.mydomain

А на системе HP-UX:

/rootfs/myclient -root=myclient.mydomain
/swapfs -root=myclient.mydomain

Если вы осуществляете подкачку поверх NFS (полностью бездисковая конфигурация), то создайте файл подкачки для вашего клиента при помощи команды dd. Если команде swapfs задан параметр /swapfs и указан размер 20000, как в примере выше, то файл подкачки для машины myclient будет называться /swapfs/swap.X.X.X.X, где X.X.X.X является IP-адресом клиента, например:

# dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000

Кроме того, дисковое пространство подкачки после начала его использования может содержать важную информацию, так что постарайтесь ограничить доступ к этому файлу для предотвращения несанкционированного доступа:

# chmod 0600 /swapfs/swap.192.1.2.4

Распакуйте корневую файловую систему в каталоге, который будет использоваться клиентом для своей корневой файловой системы (/rootfs/myclient в примере выше).

На системах HP-UX: Сервер должен работать под управлением HP-UX версии 9.04 или выше для машин серий HP9000/800. Более ранние версии не допускают создания файлов устройств поверх NFS.

При распаковке каталога /dev в /rootfs/myclient обратите внимание то то, что некоторые системы (HPUX) не создадут файлы устройств, которые нужны FreeBSD. Вам может потребоваться при первой загрузке перейти в однопользовательский режим (нажав control-c во время процесса загрузки), перейти в каталог /dev и выполнить команду sh ./MAKEDEV all с клиента для того, чтобы все исправить.

Запустите на клиентской машине программу netboot.com или прошейте ПЗУ файлом netboot.rom

10.5.2. Совместное использование файловых систем / и /usr
В настоящее время нет официально одобренного способа сделать это, хотя для каждого клиента я использую общую файловую систему /usr и индивидуальную /. Если у кого-либо появятся соображения о том, как сделать это корректно, пожалуйста, дайте знать мне и/или FreeBSD core team <freebsd-core@FreeBSD.org>.

10.5.3. Компиляция netboot для специфичных ситуаций
Netboot может быть перекомпилирован для поддержки адаптеров NE1000/2000 изменением настроек в файле /sys/i386/boot/netboot/Makefile. Посмотрите комментарии в самом начале этого файла.

Обновлено: 12.03.2015