Текст предоставил Martin Renters <[email protected]>.
netboot.com/netboot.rom позволяют вам загрузить вашу машину с FreeBSD по сети и работать с FreeBSD даже без наличия диска на клиентской машине. В версии 2.0 возможно даже иметь локальный раздел подкачки. Поддерживается также подкачка поверх NFS.
Список поддерживаемых адаптеров Ethernet включает: Western Digital/SMC 8003, 8013, 8216 и совместимые с ними; NE1000/NE2000 и совместимые с ними (требуется перекомпиляция)
Найдите машину, которая будет вашим сервером. Эта машина должна иметь достаточное количество дискового пространства для того, чтобы на ней поместились бинарные файлы 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
В настоящее время нет официально одобренного способа сделать это, хотя для каждого клиента я использую общую файловую систему /usr и индивидуальную /. Если у кого-либо появятся соображения о том, как сделать это корректно, пожалуйста, дайте знать мне и/или FreeBSD core team <[email protected]>.
Netboot может быть перекомпилирован для поддержки адаптеров NE1000/2000 изменением настроек в файле /sys/i386/boot/netboot/Makefile. Посмотрите комментарии в самом начале этого файла.