В статье рассказано, как настроить бездисковую рабочую станцию Sun SparcStation5 для загрузки по сети с помощью сетевого адаптера le0. Файловые системы и swap размещаются на сервере и предоставляются клиенту через NFS. Сначала необходимо создать файловую систему для клиента. Проще всего это сделать, распаковав сеты на существующую файловую систему (в данном случае base38.tgz и etc38.tgz, остальные сеты распаковываются по мере надобности). # mkdir -p /export/openok/root # tar xzpf base38.tgz -C /export/openok/root # tar xzpf etc38.tgz -C /export/openok/root Скопируйте файл ядра в корневую директорию бездискового клиента: # cp bsd /export/openok/root Также необходимо создать файл подкачки. На клиентской машине экспортированный swap файл монтируется к пустой директории /export/openok/root/swap, которая после монтирования станет файлом. Суть операции в том, чтобы swap файл получил inode на файловой системе и swapctl(8) смог его подключить. Создадим файл и директорию: # mkdir /export/openok/root/swap # dd if=/dev/zero of=/export/openok/swap bs=1m count=128 # chmod 600 /export/openok/swap Создадим стандартные устройства: # cd /export/openok/root/dev && ./MAKEDEV all Выполним конфигурацию DHCP и TFTP сервисов. Для настройки необходимо знать MAC-адрес сетевой карты клиента. Для примера будем считать, что это 08:00:20:77:60:d8. IP адрес сервера 192.168.5.1, клиента: 192.168.5.253. Бездисковый клиент назовем openok. Настроим DHCP сервис: # vi /etc/dhcpd.conf shared-network LOCAL-NET { option domain-name "example.com"; option domain-name-servers 192.168.5.1; option routers 192.168.5.1; subnet 192.168.5.0 netmask 255.255.255.0 { range 192.168.5.102 192.168.5.250; } host openok { hardware ethernet 08:00:20:77:60:d8; fixed-address 192.168.5.253; } } Запустим dhcpd на требуемом интерфейсе (для примера взят fxp2): # dhcpd fxp2 Для того чтобы стартовать dhcpd при загрузке системы, выполните: # echo 'dhcpd_flags=""' >>/etc/rc.conf.local # echo 'fxp2' >>/etc/dhcpd.interfaces Настроим TFTP сервис. TFTP запускается через inetd, поэтому необходимо раскомментировать строку: tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpboot и перезагрузить конфигурацию inetd: # kill -HUP `head -1 /var/run/inetd.pid` Создадим директорию /tftpboot и скопируем в нее файл boot.net: # mkdir /tftpboot # cp /path/to/boot.net /tftpboot Необязательный шаг: чтобы помочь бездисковому клиенту загрузиться, создайте вспомогательную символическую ссылку, имя которой представляет собой его IP-адрес в шестнадцатиричной системе: # printf "%02X%02X%02X%02X\n" 192 168 5 253 C0A805FD # cd /tftpboot # ln -s boot.net C0A805FD.SUN4M Теперь разберемся с монтированием файловых систем по NFS. Для того чтобы получить параметры об экспортированных на сервере файловых системах, клиентское ядро посылает специальный BOOTPARAM запрос (перед этим система должна узнать определенное ей имя - это выполняется в ходе Reverse ARP запроса, который отрабатывается сервисом rarpd(8)). На запрос BOOTPARAM отвечает сервис rpc.bootparamd(8). Перейдем к их настройке. Сервис rarpd работает с двумя файлами: /etc/ethers, в котором хранится соответствие MAC-адресов и символьных имен, а также /etc/hosts, с помощью которого по известному имени можно получить IP-адрес. # echo '08:00:20:77:60:d8 openok' >>/etc/ethers # echo '192.168.5.253 openok' >>/etc/hosts Запустим rarpd и настроим автоматическую загрузку при старте системы: # rarpd fxp2 # echo 'rarpd_flags="fxp2"' >>/etc/rc.conf.local Сервис rpc.bootparamd настраивается через конфигурационный файл /etc/bootparams: # vi /etc/bootparams openok root=192.168.5.1:/export/openok/root \ swap=192.168.5.1:/export/openok/swap \ dump=192.168.5.1:/export/openok/swap Настроим автоматический запуск rpc.bootparamd и запустим его (portmap должен быть также запущен, поскольку именно он реализует маппинг TCP или UDP портов на номера RPC программ): # portmap # rpc.bootparamd # echo 'bootparamd_flags=""' >>/etc/rc.conf.local
Запись Выполним конфигурацию NFS сервера (предполагается, что NFS сервер выключен). Добавьте записи об экспортируемых файловых системах в /etc/exports: # vi /etc/exports /export/openok/root -maproot=root -alldirs 192.168.5.253 /export/openok/swap -maproot=root 192.168.5.253 Запустим компоненты: # touch /var/db/mountdtab # mountd # nfsd -tun 4 И настроим автоматический запуск: # echo 'portmap=YES' >>/etc/rc.conf.local # echo 'nfs_server=YES' >>/etc/rc.conf.local Теперь сделаем ряд настроек клиентской машины. Отредактируем fstab: # vi /export/openok/root/etc/fstab 192.168.5.1:/export/openok/root / nfs rw 0 0 192.168.5.1:/export/openok/swap none swap sw,nfsmntpt=/swap 0 0 Также следует указать имя клиентского хоста, IP-адреса шлюза и DNS-сервера: # echo 'inet 192.168.5.253 255.255.255.0 NONE' >/export/openok/root/etc/hostname.le0 # echo 'openok' >/export/openok/root/etc/myname # echo '192.168.5.1' >/export/openok/root/etc/mygate # echo 'nameserver 192.168.5.1' >/export/openok/root/etc/resolv.conf На этом настройка завершена. Теперь можно запустить бездисковый клиент. После включения компьютера и тестирования оперативной памяти нажатием комбинации клавиш <Stop>+<A> следует войти в OpenPROM и устанавить метод загрузки "по сети": ok> boot net |