The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

Каталог документации / Раздел "Руководства по FreeBSD на русском" / Оглавление документа

Бездисковый X-сервер: руководство по настройке

Jerry Kendall

    
  

28 декабря 1996

FreeBSD is a registered trademark of Wind River Systems, Inc. This is expected to change soon.

3Com and HomeConnect are registered trademarks of 3Com Corporation.

Microsoft, FrontPage, MS-DOS, Outlook, Windows, Windows Media, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade, Sun Enterprise, Sun Fire, SunOS, and Ultra are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the ``™'' or the ``®'' symbol.

С помощью нескольких друзей из списка рассылки FreeBSD-hackers я смог настроить бездисковый X-терминал. Создание X-терминала, во-первых, требует сначала настройки бездисковой системы с минимальным набором утилит, доступных через NFS. Те же самые шаги были применены для создания двух разных бездисковых систем. Первая из них была altair.example.com. Бездисковый X-терминал, который работал на моей старой машине 386DX-40. На ней был диск объемом 340 мегабайт, но я не хотел его менять. Так что машина загружалась с antares.example.com по сети Ethernet. Второй системой является 486DX2-66. Я настроил (полностью) бездисковую систему FreeBSD, которая не использует локальный диск. Сервером в этом случае выступает Sun 670MP под управлением SunOS™ 4.1.3. В обоих случаях требовалась одна и та же начальная настройка.

Я уверен, что к этому есть что добавить. Пожалуйста, присылайте мне любые замечания.


1 Создание загрузочной дискеты (на бездисковой системе)

Так как сетевые начальные загрузчики не будут работать с некоторыми резидентными (TSR) и прочими программами, используемыми в MS-DOS®, то лучше создать отдельную загрузочную дискету, или, если вы можете, создать меню MS-DOS, которое будет (при помощи файлов config.sys/autoexec.bat) спрашивать, какую конфигурацию следует загрузить при запуске системы. Я использовал последний метод и он прекрасно работает. Мое меню MS-DOS (6.x) приводится ниже.

Example 1. config.sys

[menu]
menuitem=normal, normal
menuitem=unix, unix
[normal]
....
normal config.sys stuff
...
[unix]

Example 2. autoexec.bat

@ECHO OFF
goto %config%

:normal
...
normal autoexec.bat stuff
...
goto end

:unix
cd \netboot
nb8390.com

:end

2 Получение программ для сетевой загрузки (на сервере)

Откомпилируйте программы ``net-boot'', расположенные в каталоге /usr/src/sys/i386/boot/netboot. Вы должны прочесть замечания в начале файла Makefile. Измените настройки, как это нужно. Сделайте резервную копию оригинала на тот случай, если что-то пойдёт не так, как ожидалось. Когда построение будет закончено, должно получиться 2 выполнимых файла для MS-DOS, nb8390.com и nb3c509.com. Одна из этих программ и будет тем, что вам нужно запустить на бездисковом сервере. Она будет загружать ядро с сервера. На этом этапе поместите обе программы на загрузочную дискету MS-DOS, созданную ранее.


3 Определите, какую программу нужно запускать (на бездисковой системе)

Если вы знаете, какой набор микросхем используется в вашем адаптере Ethernet, это легко. Если у вас используется набор микросхем NS8390 или другой на ее основе, то нужно использовать nb8390.com. Если у вас используется набор микросхем на основе 3Com® 509, то используйте программу загрузки nb3C509.com. Если вы не уверены в том, что у вас установлено, попробуйте использовать любой, и если он выдаст сообщение ``No adapter found'', попробуйте другой. Кроме этого, вам ничего не остается делать.


4 Загрузка по сети

Загрузите бездисковую систему без каких-либо файлов config.sys/autoexec.bat. Попробуйте запустить загрузочную программу для вашего адаптера Ethernet.

Мой адаптер Ethernet работает на наборе WD8013 в 16-разрядном режиме, так что я запускаю nb8390.com

C:> cd \netboot
C:> nb8390

Boot from Network (Y/N) ?  Y

BOOTP/TFTP/NFS bootstrap loader     ESC for menu

Searching for adapter..
WD8013EBT base 0x0300, memory 0x000D8000, addr 00:40:01:43:26:66

Searching for server...

Теперь моя бездисковая система пытается найти машину, которая выступает в качестве сервера загрузки. Запомните строку addr выше, позже она вам понадобится. Перезагрузите бездисковую систему и измените ваши файлы config.sys и autoexec.bat, чтобы они выполняли эти действия автоматически. Может быть, в меню. Если вы запускали nb3c509.com, а не nb8390.com, то выводимые сообщения будут точно такими же. Если вы получили сообщение ``No adapter found'' после Searching for adapter..., проверьте правильность задания параметров времени компиляции в файле Makefile.


5 Настройка возможности системам загружаться по сети (на сервере)

Проверьте, что в файле /etc/inetd.conf имеются записи для tftp и bootps. Ниже показаны мои записи:

tftp   dgram   udp wait    nobody  /usr/libexec/tftpd  tftpd /tftpboot
#
# Additions by who ever you are
bootps  dgram  udp  wait  root  /usr/libexec/bootpd bootpd /etc/bootptab
   

Если вы изменили файл /etc/inetd.conf, то пошлите программе inetd(8) сигнал HUP. Для этого найдите ID процесса inetd командой ps -ax | grep inetd | grep -v grep. После этого пошлите ему сигнал HUP. Это делается командой kill -HUP <pid>. Это заставит inetd повторно прочесть свой конфигурационный файл.

Не забыли ли вы строку с addr из вывода начального загрузчика на бездисковой системе? Как вы можете угадать, теперь он вам требуется.

Добавьте запись в файл /etc/bootptab (может быть, вам потребуется его создать). Она должна иметь следующий вид:

altair:\
        :ht=ether:\
        :ha=004001432666:\
        :sm=255.255.255.0:\
        :hn:\
        :ds=199.246.76.1:\
        :ip=199.246.76.2:\
        :gw=199.246.76.1:\
        :vm=rfc1048:

Строки имеют такой смысл:

altair название бездисковой системы без доменной части.
ht=ether тип оборудования ``ethernet''.
ha=004001432666 аппаратный адрес (число, записанное ранее).
sm=255.255.255.0 маска подсети.
hn указывает серверу посылать клиенту его имя хоста.
ds=199.246.76.1 указывает клиенту расположение сервера имен.
ip=199.246.76.2 указывает клиенту его IP-адрес.
gw=199.246.76.1 указывает клиенту маршрутизатор по умолчанию.
vm=... просто оставьте это так.

Note: Проверьте правильность настройки IP-адресов, адреса выше являются моими.

Создайте каталог /tftpboot, в котором будут располагаться конфигурационные файлы для бездисковых систем, которые будет обслуживать сервер. Эти файлы будут именоваться cfg.ip, где ip является IP-адресом бездисковой системы. Конфигурационный файл для altair будет носить название /tftpboot/cfg.199.246.76.2. Его содержимое:

rootfs 199.246.76.1:/DiskLess/rootfs/altair
hostname altair.example.com

Строка hostname altair.example.com просто указывает бездисковой системе её полное доменное имя.

Строка rootfs 199.246.76.1:/DiskLess/rootfs/altair указывает бездисковой системе местоположение ее корневой файловой системы, монтируемой по протоколу NFS.

Note: Корневая файловая система, монтируемая через NFS, будет монтироваться в режиме только для чтения.

Дерево для бездисковой системы может быть смонтировано повторно с правом на выполнение операций чтения и записи, если это потребуется.

Я использую свой никому не нужный 386DX-40 в качестве выделенного X-терминала.

Дерево для altair имеет такой вид:

/
/bin
/etc
/tmp
/sbin
/dev
/dev/fd
/usr
/var
/var/run

Вот реальный список файлов:

-r-xr-xr-x  1 root  wheel  779984 Dec 11 23:44 ./kernel
-r-xr-xr-x  1 root    bin  299008 Dec 12 00:22 ./bin/sh
-rw-r--r--  1 root  wheel     499 Dec 15 15:54 ./etc/rc
-rw-r--r--  1 root  wheel    1411 Dec 11 23:19 ./etc/ttys
-rw-r--r--  1 root  wheel     157 Dec 15 15:42 ./etc/hosts
-rw-r--r--  1 root    bin    1569 Dec 15 15:26 ./etc/XF86Config.altair
-r-x------  1 bin     bin  151552 Jun 10  1995 ./sbin/init
-r-xr-xr-x  1 bin     bin  176128 Jun 10  1995 ./sbin/ifconfig
-r-xr-xr-x  1 bin     bin  110592 Jun 10  1995 ./sbin/mount_nfs
-r-xr-xr-x  1 bin     bin  135168 Jun 10  1995 ./sbin/reboot
-r-xr-xr-x  1 root    bin   73728 Dec 13 22:38 ./sbin/mount
-r-xr-xr-x  1 root  wheel    1992 Jun 10  1995 ./dev/MAKEDEV.local
-r-xr-xr-x  1 root  wheel   24419 Jun 10  1995 ./dev/MAKEDEV
   

Если вы не используете devfs(5) (которая во FreeBSD 5.X по умолчанию активирована), то должны убедиться, что запускали команду MAKEDEV all в каталоге dev.

Мой /etc/rc для altair выглядит вот так:

#!/bin/sh
#
PATH=/bin:/
export PATH
#
# configure the localhost
/sbin/ifconfig lo0 127.0.0.1
#
# configure the ethernet card
/sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00
#
# mount the root filesystem via NFS
/sbin/mount antares:/DiskLess/rootfs/altair /
#
# mount the /usr filesystem via NFS
/sbin/mount antares:/DiskLess/usr /usr
#
/usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1
#
# Reboot after X exits
/sbin/reboot
#
# We blew up....
exit 1

Приветствуются любые замечания и вопросы.


Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите <frdp@FreeBSD.org.ua>.


  Закладки на сайте
  Проследить за страницей
Created 1996-2018 by Maxim Chirkov  
ДобавитьПоддержатьВебмастеруГИД  
Hosting by Ihor