Использование бездисковых рабочих станций Sun Sparc


Мини-руководство "шаг за шагом"

В статье рассказано, как настроить бездисковую рабочую станцию 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

Запись root=192.168.5.1:/export/openok/root отражает соответствующие настройки на NFS сервере. Итак, получив ответ на BOOTPARAM запрос, ядро связывается с NFS сервером и пытается примонтировать корневую файловую систему и свап. После загрузки ядра скрипт rc(8), основываясь на содержимом /etc/fstab, сделает перемонтирование корневой файловой системы в режиме записи и подмонтирует недостающие.

Выполним конфигурацию 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


OpenBSD.ru www@openbsd.ru
$RuOBSD: diskless-sparc.html,v 1.9 2010/11/01 10:57:48 dinar Exp $