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

Текст предоставил Martin Renters .

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

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

10.5.1. Инструкции по настройке

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

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

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

  2. Настройте сервер 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:
        	
  3. Настройте сервер 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
        	
  4. Проверьте, что ваш сервер 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
        	
  5. Если вы осуществляете подкачку поверх 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
        	
  6. Распакуйте корневую файловую систему в каталоге, который будет использоваться клиентом для своей корневой файловой системы (/rootfs/myclient в примере выше).

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

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

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

10.5.2. Совместное использование файловых систем / и /usr

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

10.5.3. Компиляция netboot для специфичных ситуаций

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