Мини-HOWTO: Корневой NFS
Мини-HOWTO: Корневой NFS
Andreas Kostyrka
Перевод: Станислав Рогин,
ASPLinux
|
Аннотация
|
|
В этом документе дается объяснение того, как настроить "бездисковую" рабочую
станцию на Linux, корневая файловая система которой подключена через NFS.
Новую версия этого Мини-Howto можно найти по адресу
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/NFS-Root или на любом его
зеркале РЯДОМ С ВАМИ.
|
Содержание
Copyright
Общий обзор
Настройка сервера
Загрузка рабочей станции
Известные проблемы
Ссылки
Copyright
(c) 1996 Andreas Kostyrka (e9207884@student.tuwien.ac.at or
andreas@ag.or.at)
Unless otherwise stated, Linux HOWTO documents are copyrighted by their
respective authors. Linux HOWTO documents may be reproduced and distributed
in whole or in part, in any medium physical or electronic, as long as
this copyright notice is retained on all copies. Commercial redistribution
is allowed and encouraged; however, the author would like to be notified of
any such distributions.
All translations, derivative works, or aggregate works incorporating
any Linux HOWTO documents must be covered under this copyright notice.
That is, you may not produce a derivative work from a HOWTO and impose
additional restrictions on its distribution. Exceptions to these rules
may be granted under certain conditions; please contact the Linux HOWTO
coordinator at the address given below.
In short, we wish to promote dissemination of this information through as
many channels as possible. However, we do wish to retain copyright on the
HOWTO documents, and would like to be notified of any plans to redistribute
the HOWTOs.
If you have questions, please contact Andreas Kostyrka
<mailto:andreas@ag.or.at>, the author of this mini-HOWTO, or
Tim Bynum, the Linux HOWTO coordinator, at
<mailto:linux-howto@sunsite.unc.edu> via email.
Авторские права
Авторские права на русский перевод этого текста принадлежат © 2000 ASPLinux
Все права зарезервированы.
Этот документ является частью проекта Linux HOWTO.
Авторские права на документы Linux HOWTO принадлежат их авторам, если явно
не указано иное. Документы Linux HOWTO, а также их переводы, могут
быть воспроизведены и распространены полностью или частично на любом
носителе, физическом или электронном, при условии сохранения этой заметки об
авторских правах на всех копиях. Коммерческое распространение разрешается и
поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о
таких дистрибутивах.
Все переводы и производные работы, выполненные по документам Linux HOWTO,
должны сопровождаться этой заметкой об авторских правах. Это делается в
целях предотвращения случаев наложения дополнительных ограничений на
распространение документов HOWTO. Исключения могут составить случаи
получения специального разрешения у координатора Linux HOWTO, с которым
можно связаться по адресу приведенному ниже.
Мы бы хотели распространить эту информацию по всем возможным каналам. Но
при этом сохранить авторские права и быть уведомленными о всех планах
распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь
к координатору проекта Linux HOWTO по электронной почте:
<linux-howto@metalab.unc.edu> или к координатору русского
перевода Linux HOWTO компании ASPLinux по адресу
<linux-howto@asplinux.ru>
Благодарности
Avery Pennarun <apenwarr@foxnet.net> (за совет, как загружаться без LILO)
Ofer Maor <ofer@hadar.co.il> (за лучшую версию мини-HOWTO о настройке бездисковых станций)
Christian Leutloff <leutloff@sundancer.tng.oche.de> (за информацию о сетевой загрузке)
Общий обзор
В общих словах, при загрузке перед рабочей станцией возникают следующие проблемы:
Станция должна выяснить свой IP-адрес, и, если необходимо, полную конфигурацию Ethernet.
Также она должна знать, где находится NFS-сервер, и путь подключения
корневой файловой системы на нем.
Существующая реализация системы NFSROOT в ядре Linux (начиная с версии
1.3.7x) позволяет следующие варианты:
IP-адрес может быть определен при помощи RARP, либо полная конфигурация
Ethernet может быть передана ядру через параметры ядра через LILO или LOADLIN.
Путь NFS также может быть передан через параметры
ядра. Если это не сделано, то RARP-сервер будет
восприниматься, как и NFS-сервер, и использовать путь,
встроенный в ядро по умолчанию (обычно это: /tftpboot/<IP-address of the machine>.)
Конфигурация станции может быть определена при помощи BOOTP.
До настройки бездисковой станции вы должны решить, использовать или нет
LILO или LOADLIN. Плюс их использования - гибкость, минус - скорость. Ядро
Linux без LILO загружается быстрее. Возможно, в некоторых случаях, вам
просто не придется выбирать.
Настройка сервера
Сборка ядра
В ядре можно включить поддержку RARP . Вам необходимо будет сделать это при
загрузке станции без параметров, передаваемых ядру. С другой стороны, он
вам не нужен, если клиент не находится в одной подсети с сервером.
Ядро для рабочей станции должно содержать, как минимум, следующее:
Встроенную в ядро поддержку файловой системы NFS. (Не обязательно
встраивать в ядро поддержку файловой системы ext2 - будет достаточно
модуля)
Должен быть включен параметр "Корневая NFS"
Ethernet-драйвер для сетевой платы рабочей станции должен быть встроен в ядро.
В зависимости от вашей конфигурации, вам, возможно, нужно будет встроить
поддержку RARP или
BOOTBP для корневой NFS. (Я имею в виду вопросы,
задаваемые make config после вопроса о поддержке файловой системы NFS)
Если станция будет загружаться без параметров ядра, то вам также надо
настроить корневое устройство 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
Загрузка рабочей станции
Использование загрузочного ПЗУ (boot ROM)
Я лично подобное чудовище не использовал. Могу лишь дать несколько советов
(со слов Christian Leutloff <leutloff@sundancer.tng.oche.de>):
Невозможно использование "обычных" ПЗУ.
Есть пакет netboot автора Gero Kuhlmann,
который содержит загрузочные ПЗУ для Linux и дополнительную информацию.
netboot можно найти на ближайшем Linux
ftp-сервере или в виде пакета в дистрибутиве Debian (netboot-0.4).
Внимательно прочитайте документацию, поставляемую с вашим загрузочным ПЗУ.
Возможно вам придется разрешить tftpd на сервере - это зависит от способа
загрузки ядра вашим загрузочным ПЗУ.
Я приветствую любую информацию о производителях загрузочных ПЗУ, способных загружать Linux. Не у всех есть возможность прошивать ПЗУ самостоятельно.
Использование диска с ядром
Если вы экспортировали корневую файловую систему с правильным именем, и ваш
NFS-сервер также является и RARP-сервером (что подразумевает общую подсеть
у сервера и рабочей станции), то достаточно командой cat переписать его
напрямую на диск. (Корневое устройство в ядре должно быть установлено в
0:255.) Это также предполагает, что корневой каталог рабочей станции
находится на сервере в каталоге /tftpboot/
IP-Address (это значение может быть
изменено в процессе сборки ядра)
Использование загрузчика с RARP
Передайте ядру все необходимые в процессе загрузки параметры. Также
добавьте туда строку
nfsroot=<ip-адрес-сервера>:</путь/к/корневой/файловой/системе>
где
ip-адрес-сервера - это IP-адрес вашего NFS-сервера, а
/путь/к/корневой/файловой/системе - это путь к корневой файловой системе
рабочей станции на сервере.
Советы:
При использовании LILO используйте параметр "lock": просто наберите все
правильные параметры вместе и добавьте слово "lock". Затем, в следующий
раз, дайте LILO загрузиться автоматически.
При создании загрузочного диска для рабочей станции вы можете использовать
опцию append= в файле lilo.conf.
Использование загрузчика без RARP
В дополнение к параметру nfsroot задайте параметр
nfsaddrs=<wst-IP>:<srv-IP>:<gw-IP>:<netm-IP>:<hostname> при запуске ядра.
Ядро настроит интерфейс eth0 со следующими параметрами:
wst-IP
IP-адрес рабочей станции
srv-IP
IP-адрес NFS-сервера
gw-IP
IP-адрес шлюза
netm-IP
Маска подсети
hostname
имя рабочей станции
Известные проблемы
/sbin/init не запускается
Наиболее распространенная проблема с /sbin/init состоит в следующем - во
многих дистрибутивах /sbin/init собран динамически. Поэтому на клиенткой
стороне необходимо правильно настроить каталог /lib. Наиболее простой
способ - заменить /sbin/init (для клиентской машины) на обычным образом (с
использованием статических ссылок) собранную программу "Hello World". Так,
по крайней мере, вы сможете определить возникла ли проблема с динамическими
ссылками, или существует что-то более серьезное.
Проблемы с устройствами в каталоге /dev
Если в процессе загрузки вы получаете странные сообщения об интерфейсах tty,
запустите скрипт MAKEDEV с клиентской машины в каталоге /dev. Говорят, что
иногда это не работает на некоторых ОС серверов, в которых используются
64-битные номера устройств. Если вы с этим столкнетесь, пишите мне, с какой
ОС у вас проблемы. Потенциальное решение - создать небольшой электронный
диск (ramdisk) в начале процесса загрузки и пересоздавать заново все файлы
устройств каждый раз.
Ссылки
Клиент BOOTP находится по адресу:
ftp://sunsite.unc.edu/system/Network/admin/bootpc.v045.tgz
Бездисковые станции можно настроить значительно проще и гибче при помощи
initrd (включаемого в ядра Linux начиная с версии 2.0). initrd - очень
хорошее решение для легко настраиваемых систем.
Для простых загрузок, при помощи bootpd, во всем вышеописанном нет необходимости,
так как в ядрах Linux начиная с версии 2.0 существует возможность
использовать BOOTP, вместо RARP. (Если быть более точным, при встраивании
обоих в ядре используется более ранний сетевой ответ)
В каталоге Documentation исходных текстов ядра есть файл, описывающий
корневые файловые системы NFS.
Существует патч для ядра, позволяющий подкачку на NFS. Его послали мне (в
момент запарки на работе), но я каким-то образом умудрился его потерять. :(
Скорее всего его можно найти на сервере http://www.linuxhq.com/ в разделе
неофициальных патчей.
Мой открытый ключ PGP можно найти при помощи finger адреса
andreas@ag.or.at. Отпечаток ключа: F1 F7 43 D5 07 C4 6C 87 BF 6B 33 A2 2C
EE 5A F9.
[Источник: www.linuxdoc.ru]
www.linuxcenter.ru
Строим сеть грамотно 24-03-2008 LINUX PLIP MINI-HOWTO 24-03-2008 Строим сеть грамотно LINUX PLIP MINI-HOWTOAndrea Controzzicontrozz@cli.di.unipi.it Перевод: Денис Дементьев, ASPLinux АннотацияИспользование информации этого HOWTO позволит вам настроить и использовать протокол параллельного интерфейса (Parallel Line Interface Protocol).СодержаниеВступление: что такое PLIP, и для чего он нужен?Аппаратное обе...
Как бороться со сменой IP адресов клиентами локальной сети? 24-03-2008 Строим сеть грамотно Keywords: arp mac ethernet ifconfig freebsd limit securityFrom: Alexander V. NaumochkinNewsgroups: http://www.unixfaq.ruDate: Mon, 17 May 2004 18:21:07 +0000 (UTC)Subject: Как бороться со сменой IP адресов клиентами локальной сетиОригинал: http://www.unixfaq.ru/index.pl?req=qs&id=169 Как бороться со сменой IP адресов клиентами локальной сети? Оглавление Статический ARPСтатический ARP + NOARPPort SecurityТуннелировани...
Использование бездисковых Linux-станций с загрузкой по сети 24-03-2008 Строим сеть грамотно Использование бездисковых Linux-станций с загрузкой по сетиВпервые опубликованно в журнале "Системный администратор" N11/2004Постановка задачиРабота сотрудника отдела автоматизации – это постоянная борьба спроблемами и решение задач, которые попеременно подкидываютпользователи, разработчики эксплуатируемого программного обеспечения ируководство организации. И если два первых направления работы – этопросто «борьба за живучесть кора...
Опыт внедрения OpenVPN 24-03-2008 Строим сеть грамотно Опыт внедрения OpenVPNПочему OpenVPN?На ключевое слово vpn Google откликнулся 17 000 000 ссылок. Это приятно удивило. Немного сузив поиск наткнулся на сайтopenvpn.sourceforge.net. Вводная статья обещала простоту инсталяции и конфигурирования,а главное,- возможность созданиятунеля для большинства наиболее распрастранённых операционных систем, включая Linux,SUN Solaris,*BSD, Mac OS X, w2k, w2k3.Это то что мне нужно... Внешний... |