На главную

Библиотека Интернет Индустрии I2R.ru

Rambler's Top100

Малобюджетные сайты...

Продвижение веб-сайта...

Контент и авторское право...

Забобрить эту страницу! Забобрить! Блог Библиотека Сайтостроительства на toodoo
  Поиск:   
Рассылки для занятых...»
I2R » И2Р Программы » Мир Linux » Практикум в Linux

Тряхнем стариной

Необходимое программное обеспечение

Что нужно для счастья:

  • LINUX RED HAT 5.2 и выше (либо другой дистрибутив).
  • etherboot-4.5.6 (или выше) пакет для удаленной загрузки берется на http://www.slug.org.au/etherboot/
  • Microsoft Network Client version 3.0 for MS-DOS. Берется на сайте Microsoft
  • MS-DOS 5.0 или выше.
  • WINDOWS 3.1 Внимание!!! Именно 3.1, с 3.11 запустить пока не удалось.

Идея

Есть N, нет N мало, M компьютеров 386, 486 можно даже PENTIUM, которых выкинуть жалко, а работать (или играться) в WINDOWS 9X/NT невозможно. Объединить компьютеры локальной сетью, убрать винчестеры и дисководы (можно, в принципе, и оставить) и загружать по сети.

Есть много задач, для которых НЕ НУЖНА WINDOWS 9X/NT. Для примера: клиент банк, всевозможные FOXPRO базы, редактирование текстов (да, это НЕ опечатка) – есть хорошие DOS редакторы, есть WORD 6.0 для WINDOWS 3.Х, да много всякого разного есть под DOS или WINDOWS 3.Х.

План действий.

Установить на сервере пакет удаленной загрузки, установить пакет SAMBA (файл сервер для работы с WINDOWS клиентами использующий протокол NETBIOS over TCP/IP), настроить систему. На клиентской машине (с винчестером) создается работоспособная DOS система с сетевым клиентом, поддерживающим протоколы NETBIOS и TCP/IP (загружаемая с дискеты) и, по желанию, устанавливается WINDOWS 3.1 и приложения, конфигурирование, создание ПЗУ удаленной загрузки (или загрузочную дискету), создание Boot образа дискеты на сервере, переписывание на сервер в директорию пользователя нужные приложения, конфигурирование сетевой карты, установка ПЗУ удаленной загрузки, запуск бездисковых станций.

Сборка и настройка клиентской машины.

Теперь соберем клиентский компьютер, на котором будут проводиться опыты. Минимальные требования 386, 2 мегабайта оперативной памяти, винчестер 20 мегабайт, дисковод, сетевая карта.

Конфигурирование сетевой карты заключается в разрешении удаленной загрузки и выставлении адреса блока памяти, куда будет отображаться ПЗУ. Как известно сетевые карты могут настраиваться перемычками или иметь встроенную флэш-память, из которой карта и берет при включении компьютера всю необходимую информацию о настройках.

Будем считать, что сетевая карта у вас уже настроена для работы в обычном компьютере, т. е. выставлено прерывание и адрес ввода/вывода. Теперь необходимо разрешить карте работать с ПЗУ. Для этого на карте конфигурируемой перемычками необходимо включить перемычку BOOTROM ENABLED и выставить перемычками адрес блока памяти, куда будет отображаться ПЗУ (как правило, это адрес D000, D400) ВАЖНО чтобы этот адрес не был занят. Для сетевой карты без перемычек в комплекте с драйверами идет программа конфигурации и тестирования сетевой карты. Воспользуйтесь :-)). После проделанных манипуляций вставьте ПЗУ в панель.

НЬЮАНСЫ. Некоторые сетевые карты требуют для правильной работы удаленной загрузки в BIOS определить диск А (все равно какого типа).

Установка и настройка программного обеспечения на сервере.

Установка пакета etherboot не должна вызвать никаких сложностей. Читайте readme. Установка и настройка пакета SAMBA тоже не сложная, наиболее типичные настройки приведены в документации.

Также необходимо установить следующие пакеты: сервер BOOTPD, сервер TFTP.

После установки необходимо настроить сервер BOOTPD и сервер TFTP. Для автоматического старта демона BOOTPD необходимо добавить следующую строчку в файл /etc/inetd.conf:

bootps dgram udp wait root /usr/sbin/tcpd bootpd

После этого необходимо создать bootp базу, ставящую в соответствие Ethernet адресам адреса IP и хранящая другую необходимую информацию (подробнее смотри man). Эта база находиться в файле /etc/bootptab и для моего случая содержит следующие строки: client1:hd=/tftpboot:vm=auto:ip=192.168.40.33: :ht=ethernet:ha=008048e2eb9c: :bf=bootnet

Рассмотрим подробнее, какие поля за что отвечают:

hd домашняя директория, где находится загрузочный образ

ht тип устройства

ha – аппаратный адрес хоста. Для Ethernet карты это MAC адрес

ip – адрес для бездискового клиента

bf имя загрузочного образа для бездисковой станции

Установка и настройка программного обеспечения на клиенте.

Наша задача установить и отконфигурировать программы на клиентской машине, чтобы позднее перенести это на бездисковые клиентские компьютеры.

Теперь начинаются мучения (как обычно грязная ругань в сторону Microsoft опущена). Во-первых, для подключения к винчестеру сервера необходим DOS клиент, поддерживающий следующие протоколы – TCP/IP и NETBIOS, WINSOCKET (для корректной работы WINDOWS 3.1 с нашей сетью). Раз Мы решили использовать WINDOWS 3.1 то вполне логично в качестве клиента использовать Microsoft Network Client for MS-DOS version 3.0.

Теперь подготовим клиентский компьютер на винчестер запишем инсталляцию сетевого клиента и WINDOWS 3.1. Поскольку программистам MICROSOFT на правила хорошего тона наплевать поставить клиента на винчестер, а потом переписать на дискету и с нее запускать клиента не получится – при установке клиента некоторые пути прописываются ПРЯМО в исполняемый файл. Поэтому сделаем следующее создадим на винчестере директорию tmp и выполним команду (у меня эта команда прописана в autoexec ленивый я, ленивый!)

subst a: c:/tmp/ .

В результате в системе появится псевдодисковод A:. После этого начнем установку клиента на псевдодисковод A:. Если в ходе установки клиент зависнет, не расстраивайтесь, повторите установку клиента. Нам необходимо при инсталляции правильно выставить параметры сетевой карты, выбрать необходимые протоколы, определить имя пользователя и рабочую группу. Будем считать, что Вы успешно установили клиента. Перед тем как поспешно радоваться необходимо поработать руками (а кое-где и головой). Во-первых, нужно НОРМАЛЬНО настроить клиента, чтобы Вы смогли подмонтировать диски SAMBA. Копируем установленного клиента куда-нибудь в сторонку и начнем издевательства. Нам необходимо навести порядок в следующих файлах

HOSTS, LMHOSTS, NETWORKS, PROTOCOL.INI, SYSTEM.INI

Грамотные люди наверняка знают, что должно быть в файлах HOSTS, LMHOSTS, NETWORKS, поэтому не будем о них. Остановимся на файлах PROTOCOL.INI и SYSTEM.INI

В файле PROTOCOL.INI есть следующая секция

[TCPIP]

NBSessions=6

SubNetMask0=255 255 0 0

IPAddress0=0 0 0 0

DisableDHCP=0

DriverName=TCPIP$

BINDINGS=MS$NE2CLONE

LANABASE=1

Мы должны привести значения полей SubNetMask0, IPAddress0, DisableDHCP к следующему виду:

SubNetMask0=255 255 255 0

IPAddress0=192 168 40 33

DisableDHCP=1

Где IPAddress0=192 168 40 33 адрес бездисковой машины, DisableDHCP=1 запрещает использование динамической выдачи IP адресов.

В файле SYSTEM.INI для нас интересны следующие ключи:

[network]

.

computername=A

lanroot=A:\NET

username=A

workgroup=MYGROUP

Вот вроде бы и все. Перегружаем машину, запускаем файл net и просматриваем доступные нам соединения. Если Вы правильно отконфигурировали клиента и SAMBA, то должны увидеть в списке доступных ресурсов LINUX сервер с ресурсом имя_пользователя.

Вот в той директории /home/имя_пользователя мы и будем складировать нужные нам программки (в частности WINDOWS 3.1.).

Если Вы подумали что на этом мучения закончились вы очень даже себе ошибаетесь.

На родном сайте национального американского производителя программных продуктов берем следующие файлики 51.TXT, 62.TXT ( ftp://ftp.microsoft.com/bussys/winnt/kb/Q142/0/62.txt ftp://ftp.microsoft.com/bussys/winnt/kb/Q128/7/51.txt). В этих файлах описывается как установить и заставить работать WINDOWS 3.1 и Microsoft Network Client version 3.0 for MS-DOS. После установки WINDOWS 3.1 не забудьте в свойствах WINDOWS 3.1 установить тип своп файла как ОТСУТСТВУЕТ (в дальнейшем это поможет избегать перегрузки сети пересылками туда-сюда файлов подкачки).

Создание загрузочной ПЗУ (загрузочной дискеты).

Следующий шаг найти подходящий образ ПЗУ. Обычно на просторах ExUSSR в дешевые персоналки (а порой и не очень дешевые, а иногда и в СОВСЕМ не дешевые) устанавливали какой-нибудь китайский клон NE2000. Для нас это не так уж и плохо. Пакет etherboot в своем составе имеет большое количество образов ПЗУ, в том числе и NE2000 (полный список сетевых карт, для которых имеются образы ПЗУ, смотрите в документации etherboot).

Допустим, наша сетевая карта – клон NE2000. Образ ПЗУ для нее – файл ne.lzrom, находящийся в директории src-32. Следующий шаг, перед тем как программировать ПЗУ, проверить, а действительно ли наша карта будет корректно работать с ПЗУ. Для этого необходимо сделать специальную дискету, на которой записана загрузочная программка и образ ПЗУ для нашей карты. Для карты NE2000 берется файл ne.lzrom находящийся в директории src-32. Затем создаем загрузочную дискету командой:

cat floppyload.bin ne.lzrom /dev/fd0 (fd0 для дисковода A: и fd1 для дисковода B:).

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

Вы должны увидеть сообщение о старте TFTP сервиса, о получении вашей бездисковой машины IP адреса и сообщение об отсутствии загрузочного образа.

Не расстраивайтесь – мы убедились, что образ ПЗУ благополучно загрузился, стартовала удаленная загрузка но не был найден образ загрузочной дискеты. Правильно – мы ведь ее еще НЕ ИЗГОТОВИЛИ. Теперь берем ПЗУ с УФ стиранием 2764 (можно конечно и советский аналог К273РФ6, но сейчас проще найти деталь производства Intel или других зарубежных производителей), берем программатор, файлик ne.lzrom и благополучно прошиваем ПЗУ.

КАК?!! У вас нет программатора? И не знаете где взять ПЗУ? Тогда, если вы представитель достославного племени ФИДО – в эху типа TSURUPINSK.HELPME, TSURUPINSK.HARDWARE или подобные. Добрые люди помогут. Если Вы не знаете о существовании племени ФИДО, но знакомо слово Internet – ищите в NEWS подобные темы и спрашивайте там. Крайний случай – пройдитесь по радиорынку или компьютерным фирмам – может вам помогут. Совсем крайний случай – напишите мне, что-нибудь придумаем.

Наконец, у нас появилась запрограммированное ПЗУ. Теперь плавно переходим к следующей части нашей трагедии. Установка ПЗУ в панель (в другой версии перевода с Ангельского языка – Установка ПЗУ в кроватку). Нет, не в том смысле. На сетевой карте есть специальный разъем, куда устанавливается ПЗУ. ВАЖНО!!! Дабы избежать безвременной кончины ПЗУ главное правильно установить ее в панель. В инструкции к сетевой карте обычно это подробно расписано. Для остальных – на короткой стороне ПЗУ и панельки есть выемка (так называемый ключ). Необходимо установить ПЗУ так, чтобы выемки на панельке и на ПЗУ были с одной стороны. Конфигурируем сетевую карту и включаем машину.

Создание загрузочного образа дискеты.

А теперь самое интересное – изготовление загрузочного образа. Как все нормальные люди пойдем от простого к сложному – попробуем загрузить по сети операционную систему всех времен и народов… Кто сказал Windows? Нет, начнем с основ – с DOS. Итак как обычно в диалектическом материализме имеем два варианта: делаем загрузочную дискетку или – не делаем. Это как?!! А вот так. В отличие от Nowell или Lantastic мы можем спокойненько свалить в отдельную директорию на винчестере необходимые нам файлы и возиться с ними в свое удовольствие, вместо того, чтобы постоянно переписывать дискетку. Итак, делаем загрузочную дискету (если вы не знаете, КАК сделать загрузочную дискету в DOS – читайте Фигурнова, а эту статью – где-то через пол-года, год интенсивной учебы). Берем DOS 5.0 (6.ХХ, 7.ХХ) помните, чем новее версия DOS, тем больше системные файлы, при близкой функциональности, запишем еще Volkov Commander (или ваш любимый TETRIS), создаем config.sys и autoexec.bat. Загружаемся с дискетки, проверяем работоспособность TETRIS. Все работает. Теперь необходимо специальной программой создать образ загрузочной системы.

Генератор образа дискеты называется mknbi-linux для загрузки LINUX, mknbi-dos для загрузки DOS. Эта утилита входит в состав пакета NETBOOT который распространяется как отдельно, так и в составе Etherboot (директория /netboot) Описание утилиты можно посмотреть в man mknbi-dos. Сама утилита mknbi-dos находится в директории /usr/local/bin. Если она отсутствует – необходимо скомпилировать.

Вводим следующую команду:

mknbi-dos r /dev/fd0 o bootnet

Где /dev/fd0 источник файлов для загрузочного образа (в данном случая – дискета)

bootnet имя файла – загрузочного образа

Таким образом мы получили загрузочный образ с дискеты. Для создания загрузочного образа из файлов находящихся на винчестере делаем следующее создаем директорию (например /t) и переписываем туда нужные файлы. А потом Да-да та же самая команда, только в профиль

mknbi-dos r /t o bootnet

Вот мы и получили загрузочный образ со странным именем bootnet. Теперь спокойненько копируем (или переносим) его в заранее созданную нами директорию /tftpboot (в моем случае).

Загрузка бездисковой машины.

А теперь пришла пора испытать, чего мы там накрутили. У подопытной машины отключаем в BIOS винчестер и дисководы (для чистоты эксперимента), устанавливаем ПЗУ в сетевую карту и включаем. Если нормально все отконфигурировано – получим машину с загруженным DOS и дисководом A:, на котором находятся все файлы с ранее созданной нами загрузочной дискеты (или директории). Поздравьте себя с Победой, лепите себе памятник из пластилина на родине Героя. А теперь буду Вас расстраивать – смысл всего того, что наворотили? Ну загрузили машину по сети, ну есть наш любимый TETRIS, а дальше? И где дисковод? Есть следующие варианты: во-первых, существует возможность создать загрузочный образ таким образом, что в DOS загрузочная дискета будет видеться как диск С:. Второй вариант – собственно то, ради чего все и начиналось – раздача по сети винчестера сервера и принтера, возможность загрузки WINDOWS 3.1 (установка и настройка WINDOWS 3.1 описана ранее).

Оптимизация бездисковой загрузки.

Если вы успокоились – то это напрасно. Microsoft Network Client у меня занял приблизительно 1,7 мегабайта. Как по мне – очень много. Можно сократить это до 800 килобайт.

Вот список файлов, которые необходимо оставить:

A.PWL
CONNECT.DAT
DHCP.PRM
DNR.EXE
EMSBFR.EXE
HOSTS
IFSHLP.SYS
LMHOSTS
NDISHLP.SYS
NE2000.DOS
NEMM.DOS
NET.EXE
NET.MSG
NETBIND.COM
NETWORKS
NMTSR.EXE
PROTMAN.DOS
PROTMAN.EXE
PROTOCOL
PROTOCOL.INI
SERVICES
SHARES.PWL
SOCKETS.EXE
SYSTEM.INI
TCPDRV.DOS
TCPTSR.EXE
TCPUTILS.INI
TINYRFC.EXE
UMB.COM
WFWSYS.CFG
WSAHDAPP.EXE

Вот полное содержимое файлов Protocol.ini, System.ini, Tcputils.ini

Protocol.ini

[network.setup]

version=0x3110

netcard=ms$ne2clone,1,MS$NE2CLONE,1

transport=tcpip,TCPIP

lana0=ms$ne2clone,1,tcpip

[TCPIP]

NBSessions=6

SubNetMask0=255 255 255 0

IPAddress0=192 168 40 33

DisableDHCP=1

DriverName=TCPIP$

BINDINGS=MS$NE2CLONE

LANABASE=1

[MS$NE2CLONE]

IOBASE=0x320

INTERRUPT=5

DriverName=MS2000$

[protman]

DriverName=PROTMAN$

PRIORITY=MS$NDISHLP

[MS$NDISHLP]

DRIVERNAME=ndishlp$

BINDINGS=MS$NE2CLONE

System.ini

[network]

sizworkbuf=1498

filesharing=no

printsharing=no

autologon=yes

computername=A

lanroot=A:\NET

username=A

workgroup=MYGROUP

reconnect=yes

dospophotkey=N

lmlogon=0

logondomain=

preferredredir=full

autostart=full

maxconnections=8

[network drivers]

netcard=ne2000.dos

transport=ndishlp.sys,tcpdrv.dos,nemm.dos

devdir=A:\NET

LoadRMDrivers=yes

[386enh]

TimerCriticalSection=5000

UniqueDosPSP=TRUE

PSPIncrement=2

[Password Lists]

*Shares=A:\NET\Shares.PWL

A=A:\NET\A.PWL

B=A:\NET\B.PWL

Tcputils.ini

[tcpglobal]

drivername=GLOBAL$

hostname=username

[sockets]

drivername=SOCKETS$

bindings=TCPIP

numsockets=4

numthreads=32

poolsize=3200

maxsendsize=1024

[DNR]

drivername=DNR$

bindings=TCPIP

nameserver0=192 168 40 233

[telnet]

drivername=TELNET$

bindings=TCPIP

nsessions=0

max_out_sends=0

Это мои autoexec.bat, config.sys

Config.sys

FILES=100

dos=high,umb

device=C:\WINDOWS\HIMEM.SYS

device=C:\WINDOWS\EMM386.EXE ram

LASTDRIVE=Z

device=IFSHLP.SYS

STACKS=9,256

Autoexec.bat

set path=C:\WINDOWS;c:;c:\dos;c:\vc;c:\net

PATH=C:\IDAPI;%PATH%

SET TEMP=C:\WINDOWS\TEMP

Rem следующая строчка используется при отладке на винчестерной машине

subst a: c:\a

A:\NET\net initialize

A:\NET\netbind.com

A:\NET\umb.com

A:\NET\tcptsr.exe

A:\NET\tinyrfc.exe

A:\NET\nmtsr.exe

A:\NET\emsbfr.exe

A:\NET\dnr.exe

A:\NET\sockets

A:\NET\net start

Существует возможность удалить из ОЗУ загрузочный образ дискеты. Смотрите man ethernet описание rmrd.com.

Пишите.

Рекомендуемая литература:

  • Электронный журнал LinuxFocus Июль 1998 Кен Яп. Введение в сетевую загрузку и протокол Etherboot.
  • Man'ы для пакетов Etherboot, Netboot.
  • Ссылки на страничке http://www.slug.org.au/etherboot/

Анонсы статей сайта Softerra

Алексей Стахнов
Softerra

Лучшие статьи раздела читайте в еженедельном сетевом журнале
"I2R Computer"
Подпишитесь на рассылку
"Мир Linux. И2Р"
Подписка на Subscribe.Ru
Другие разделы
Идеология
Программы
Linux против Microsoft
Установка и первые шаги
Практикум в Linux
Фольклор
Новое в разделе
FAQ по Linux
I2R-Журналы
I2R Business
I2R Web Creation
I2R Computer
рассылки библиотеки +
И2Р Программы
Всё о Windows
Программирование
Софт
Мир Linux
Галерея Попова
Каталог I2R
Партнеры
Amicus Studio
NunDesign
Горящие путевки, идеи путешествийMegaTIS.Ru

2000-2008 г.   
Все авторские права соблюдены.
Rambler's Top100