Настройка сервера

Сборка ядра

В ядре можно включить поддержку RARP . Вам необходимо будет сделать это при загрузке станции без параметров, передаваемых ядру. С другой стороны, он вам не нужен, если клиент не находится в одной подсети с сервером.

Ядро для рабочей станции должно содержать, как минимум, следующее:

Если станция будет загружаться без параметров ядра, то вам также надо настроить корневое устройство 0:255. Создайте несуществующее устройство командой mknod /dev/nfsroot b 0 255. После создания этого файла устройства, вы можете указать на загрузочное устройство с ядром командой rdev <образ-ядра> /dev/nfsroot.

Создание корневой файловой системы

Копирование файловой системы

Внимание: несмотря на то, что этот способ может подойти вам, он очень непродуктивен и неэффективен. Чтобы настроить корневую файловую систему для клиентов, читайте "Мини-HOWTO: Корневые файловые системы NFS клиентов на сервере " автора Ofer Maor <ofer@hadar.co.il>.

После того, как вы решите, куда поместить корневое дерево, создайте его (например) командой mkdir -p <каталог>, а затем запустите команду tar cClf / - | tar xpCf <каталог> -.

Если вы собираетесь загружать ваше ядро без LILO, тогда корневой каталог должен быть следующим: /tftpboot/<IP-address>. Если вас такой каталог не устраивает, вы можете изменить его в основном файле Makefile исходных текстов ядра; найдите там строку вида: NFS_ROOT = NFS_ROOT = -DNFS_ROOT="\"/tftpboot/%s\"" После изменения этой строки пересоберите ядро.

Изменения в корневой файловой системе

Удалите ненужные файлы и проверьте скрипты в каталоге /etc/rc.d. Некоторые важные замечания:

  • Самая важная вещь - настройка eth0. Рабочая станция должна иметь, по крайней мере, частично настроенный интерфейс eth0. Устанавливать IP-адрес рабочей станции равным IP-адресу сервера - не самое умное решение. (Так однажды случилось с автором в его ранних попытках)

  • Второй пункт, на который нужно обратить внимание - это файл /etc/fstab. Там нужно указать все необходимые настройки файловых систем nfs.

  • ВНИМАНИЕ: Не путайте корневые файловые системы сервера и рабочей станции. (Я исправил файл rc.inet1 сервера и долго удивлялся, почему рабочая станция все еще не работает)

Экспортирование файловой системы

Экспортируйте корневой каталог сервера рабочей станции. Смотрите exports(5). Скорее всего, после этого вам придется перезапустить nfsd/mountd. В дистрибутиве RedHat это можно просто проделать командами /etc/rc.d/init.d/nfs stop ; /etc/rc.d/init.d/nfs start .

Настройка RARP

Настройте RARP где-нибудь в сети. Если вы загружаете ядро без параметра nfsroot, то RARP-сервер должен быть NFS-сервером. Обычно так и бывает. Для этого в ядро должна быть встроена поддержка RARP.

Для включения RARP выполните команду (и впишите ее в соответствующий скрипт в каталоге /etc/rc.d:

/sbin/rarp -s <ip-адрес> <ethernet-адрес>

где

ip-адрес

- это IP-адрес рабочей станции

ethernet-адрес

- это Ethernet-адрес сетевой карты рабочей станции

Пример: /sbin/rarp -s 131.131.90.200 00:00:c0:47:10:12

Вместо цифровой формы IP-адреса можно использовать имя машины, если сервер сможет из этого имени определить IP-адрес (если настроены /etc/hosts или DNS)

Настройки BOOTP

Для настройки BOOTP вам надо должным образом отредактировать файл /etc/bootptab. Смотрите man bootpd(8) и booptab(5).

Выяснение Ethernet-адреса

Я не знаю Ethernet-адреса! Как его узнать?

  • Загрузитесь с диска с ядром, который вы сделали, и ищите строку с параметрами обнаруженной сетевой карты. Обычно она состоит из 6 шестнадцатеричных чисел - это и есть Ethernet-адрес карты.

  • Загрузите на рабочей станции любую операционную систему с TCP/IP. Затем выполните ping с сервера на рабочую станцию. Ищите в кэше ARP адрес станции командой: /sbin/arp -a