Сервер сетевой загрузки (pxe) на freebsd ч.1 — настройка сервера

Причины, по которым могут не работать

Сервера могут работать некорректно, если вы не выполнили все необходимые настройки, описанные выше, или вводите какие-либо данные неправильно, перепроверьте всю информацию. Второй причиной для поломки являются сторонние факторы: неправильно настроенный роутер, Firewall, встроенный в систему или сторонний антивирус, блокирует доступ, правила, установленные на компьютере, мешают работе сервера. Чтобы решить проблему, связанную с FTP или TFTP сервером, необходимо точно описать, на каком этапе она появилась, только тогда вы сможете найти решение на тематических форумах.

Установка заводской прошивки

Программа-клиент tftp

Будем считать, что заводская прошивка для роутера – скачана, и находится в разархивированном виде на «Рабочем столе». Мы для примера рассмотрим устройство WNR612 ревизии v2. Еще раз заметим: устройства разной аппаратной ревизии – не являются совместимыми в 99% случаев. Будьте внимательны!

Наклейка роутера

Чтобы установить прошивку, надо узнать локальный адрес самого роутера. Можно посмотреть IP-адрес в «Состоянии» соединения с роутером, на вкладке «Поддержка» (нужна строка «Шлюз по умолчанию», значение IP – должно оканчиваться единицей).

Дальше, качаем простой «клиент» для tftp с понятным интерфейсом: halvator.ru/files/soft/tftp.exe. Можно сразу запустить эту программу. Как видим, интерфейс ее – тривиален:

Программа tftp.exe

В поле «Сервер» мы укажем IP-адрес роутера. Для WNR612 (V2), пароль на tftp – пустой. В строке «File» – указываем путь к прошивке (нажав кнопку с тремя точками). Собственно, это все.

Создание и настройка TFTP на Windows 7

Для его активации и настройки лучше всего использовать бесплатную программу — tftpd32/tftpd64, которую можно скачать с одноимённого официального сайта разработчика. Приложение распространяется в двух видах: служба и программа. Каждый вид разделяется на версии для 32-х и 64-х битной системы. Вы можете использовать любой вид и версию программы, наиболее подходящую вам, но далее для примера будут приведены действия в 64-х битной программе, работающей как служба (service edition).

  1. После того как вы скачаете нужную программу, выполните её установку и перезагрузите компьютер, чтобы служба самостоятельно запустилась.

  2. Никакие настройки в течение установки и после неё изменять не стоит, если вам не нужны какие-либо индивидуальные изменения. Поэтому после перезагрузки компьютера достаточно запустить приложение, проверить настройки и можно приступать к использованию TFTP. Единственное, что стоит изменить, это папку, отведённую под сервер, так как по умолчанию для него отведён весь диск D.

  3. Для передачи данных на другое устройство используйте команду tftp 192.168.1.10 GET название_файла.txt, а для получения файла с другого устройства — tftp 192.168.1.10 PUT название_файла.txt. Все команды необходимо вводить в командной строке.

Norton Ghost — для «Сервера загрузки и установки»

Опубликовано пт, 10/04/2015 — 14:24 пользователем serg kaac

Norton Ghost — это простая, но мощная утилита для создания образов как целых дисков, так и отдельных разделов диска. Версия Norton Ghost для MS-DOS неприхотлива к платформе и запускается со всего с чего можно загрузиться.

При большом объеме клонируемых систем запускать полноразмерную winpe как то не хочется, в связи с этим приведена добавка для «Сервера загрузки и установки» и сам файл образа CD диска.

В pxelinux.cfg/tools.menu добавляем:

В папку корень_tftp/pe/  выкладываем файл img, который достаем из образа ISO и переименовываем его в ng11.img

Далее как обычно грузимся по сетке и выбираем пункт Norton Ghost 11 util.

Удачи.

[edit] General

This article describes how to do an initial flash or a TFTP recovery flash for your device.

  1. Unplug the router, get a for the PC, and connect it via network cable to a router LAN port
  2. Set a fixed IP address on the PC with the same network as your router, e.g. Router: 192.168.1.1, PC: 192.168.1.2
  3. Setup the TFTP client, then start a continuous ping (-t switch is needed for this in Windows) to the router
  4. Plug in the router and start the TFTP client as soon as there is a TTL=100 ping response. The client should show transfer.
    • TTL=64 means application code has been reached. If the router isn’t responding, it is soft-bricked (use OEM firmware)
    • Read about timing problems below:

Special Asus TFTP Flashing Procedures

Some routers like the Asus WL-500xx series (WL-500G, WL-500G Premium, WL-500W, WL-500G Deluxe), need additional steps to perform a complete and proper initial flash. See this wiki page: Asus TFTP Flash

Special for Vista, Win7 and Win 2008

In order to catch the narrow window for TFTP flash, you should use platforms with simple TCP/IP implementations that don’t have CTCP implemented: Windows XP or Linux are reported to work, but some have reported significant problems with Vista, Windows 7 or Windows 2008.

For more information see this posting

Edit: While some may have reported problems, CTCP is definitely not the issue, because it is disabled by default in Windows Vista and Windows 7. So unless people are specifically turning it on, it isn’t running. I personally just used TFTP on my router with no difficulties, although mine is a Netgear WNDR3700 that was waiting for a TFTP flash and didn’t have this race condition at boot as some of these routers seem to. But again, even if you have an issue it’s not CTCP. Check out the wikipedia article on CTCP for information on how to check if it is running and how to disable it (both are simple command line entries).

If having issues, try connecting a separate network switch between the PC and router, so the PC network port sees a connection before the router port is up. This should allow for a faster ping reply. Then follow the instructions as normal.

Special for Linksys WRT54GL Users

If the router seems to be bricked so that the power light is constantly blinking and pinging the router results in TLL=100 continuously, then there is still a great chance that tftp can help.
Firstly you must flash the router with the original firmware available at Linksys homepage www.linksys.com, since flashing it with DD-WRT probably won’t give any result at all. Then do a 30/30/30 and after that you can flash with DD-WRT Mini. The initial flashing can be done with only the mini version, perhaps later you can move on to bigger versions of it.

Преимущества BLHeli_32 на 32-битных регулях

32-битные процессоры быстрее 8-битных, так что ждем улучшения производительности. При этом возможно быстрее обрабатывать входные сигналы, увеличить частоту обновления, например использовать Dshot1200 или даже что-то более быстрое (читаем про dshot).

32-битная платформа также дает дополнительный функционал и вещи, которые просто невозможны на 8-битных системах:

  • программно управляемая ШИМ (PWM) с частотой до 48 кГц
  • авто тайминг для увеличения эффективности и надежности
  • ограничение напряжения/тока
  • настраивая сила торможения «brake on stop»
  • улучшенное управление при использовании в двунаправленном режиме
  • телеметрия
  • настройка через полетный контроллер, при помощи команд DShot

Замечу, что некоторые эти идеи описаны разработчиком (sskaug), но еще не реализованы в данный момент. Часть функций схожи с функциями KISS 24A ESC. В любом случае, в будущем мы увидим и узнаем гораздо больше.

[edit] Linux

In Linux, tftp can generally be installed with whatever package manager your distribution uses.
on suse:

 smart install tftp

on fedora:

 yum install tftp

on ubuntu

 sudo apt-get install tftp

etc.
The tftp client for Linux and OS X is very similar. When invoked, it gives the user a prompt and takes commands from the standard input.
Binary mode can be set with command-line flags — in OS X, the «-e» flag sets binary mode (among other things which are less important), and in Linux «-m binary». Binary can be set from the prompt in either (this is done below for consistency).

Typical usage looks like:

 tftp 192.168.x.x
 > binary
 > put dd-wrt.vXX_XXX.XXX

Because the transfer must be initiated in a narrow time window during the router’s bootup, tftp’s retransmit option is useful. In the following sequence of commands, tftp will retry to send the file every second for one minute. This can be issued just before the router is booted, so that it will retry to send every second while the router boots.

 tftp 192.168.x.x
 > binary
 > rexmt 1
 > timeout 60
 > put dd-wrt.vXX_XXX.XXX

If it worked, it will say something like «Sent 1769472 bytes in 9.0 seconds»

If it didn’t work, it will say «Transfer timed out.» This is often because it cannot connect to the IP address. Make sure you have manually set your computer’s IP address to one in the router’s subnet.

You can quit tftp with the ‘quit’ command or hitting ctrl+D.

Using atftp on Linux

Another way of doing this is using atftp. You can install aftp by search it in your package manager.

On Ubuntu:

sudo aptitude install atftp

On Debian (as root):

aptitude install atftp

On Fedora (as root):

yum install atftp

On Suse (as root):

smart install atftp 

Then you go to the folder where you downloaded the official Linksys firmware, for instance if you downloaded it in your desktop:

cd ~Desktop

Unrar the file, for instance if the file is WRT54GL_v4.30.11_012_ETSI_EN_code.rar

unrar x WRT54GL_v4.30.11_012_ETSI_EN_code.rar

Rename the firmware to code.bin.

cp WRT54GL_v4.30.11_012_ETSI_EN_code.bin code.bin

Then you prepare this command (do not press enter yet):

atftp --option "mode octet" --option "timeout  60" --verbose --trace -p -l code.bin 192.168.1.1

Disconnect all your network cables from your router, only leaving one from the computer to the router. Then open another terminal and ping to 192.168.1.1

ping 192.168.1.1

About the atftp command: we are putting (-p) a local file (-l) called code.bin to the IP address 192.168.1.1 asking for fully information (verbose) and showing all packages (trace), also that it must be trying for one minute (timeout 60) and in octet mode. Remember, if you get «code pattern error», try with the official Linksys firmware. More information:

man atftp 
atftp --help

Important: you should always try atftp with the official firmware and then flashing to DD-WRT with the HTTP webpage on Administration, «Upgrade Firmware»; specially if you get «code pattern error».

Note: if you use Gnome or KDE you can get problems while trying to put your static IP address. Most of the times, applications like NetworkManager (aka nm-applet) or knetworkmanager will try to get a dynamic IP address, so you should first kill them. For example:

sudo killall NetworkManager

or

sudo killall nm-applet

Опции TFTP

В RFC 2347 был предусмотрен формат опций, которые можно присоединять к окончанию RRQ-пакета и WRQ-пакета:

Код опции 0x00 (конец строки) Значение опции 0x00 (конец строки)
строка в ASCII 1 байт строка в ASCII 1 байт

Опций может быть несколько. Тогда они будут следовать друг за другом. Порядок опций не важен.

В ответ на RRQ (или WRQ) с опциями, сервер должен прислать OACK с списком опций, которые сервер принял.
Наиболее распространённые опции:

Название Определена в Код опции
Размер блока RFC 2348 blksize В качестве значения опции идёт число, принимающее значение от 8 до 65464, обозначающее размер блока.
Интервал повторной передачи (Timeout) RFC 2349 timeout В качестве значения опции идёт число, принимающее значение от 1 до 255, обозначающее время ожидания перед повторной передачей блока в секундах.
Размер файла RFC 2349 tsize В качестве значения опции идёт число, обозначающее размер передаваемого файла в байтах.

Отличия от предыдущих версий

Предыдущие версии (BLHeli и BLHeli_S) были с открытым исходным кодом, однако разработчики решили закрыть исходный код новой, 32-битной прошивки. Говорят, что BLHeli_32 написан полностью с нуля (BLHeli и _S — на ассемблере, а BLHeli_32 на С). Производители регуляторов будут платить разработчикам BLHeli_32 за использование прошивки на их регуляторах, следовательно, цена регуляторов немного увеличится.

Когда разработчиков спросили, почему они закрыли исходники, sskaug ответил:

BLHeli прошла долгий путь развития, все началось с моего проекта для вертолетика mCPX. Один из основных этапов, это когда мы решили поддержать сегмент коптеров, это все еще был хобби проект, но люди могли прошить регуляторы без BLHeli нашей прошивкой. Усилия и активность все еще были умеренными. Но в какой-то момент, вероятно начиная с появления Littlebee, производители стали выпускать регуляторы специально для BLHeli. Я считаю это был важный шаг в развитии нашего хобби, теперь у нас есть очень много хороших регуляторов для коптеров. Затем была еще одна веха, когда мы решили сделать BLHeli_S, т.к. BLHeli по плавности работы все еще уступала другим регулям на рынке. И к настоящему времени порядка 20 производителей делают регуляторы для BLHeli_S! Поддержка всего этого — очень большая нагрузка на нас.

Так мы подошли к следующему важному моменту. Что дальше? 32-битные микроконтроллеры — вполне очевидный выбор, рынок заполнен чипами разных производителей, и они всё дешевле и дешевле

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

Надеюсь BLHeli_32 также хорошо послужит нашему сообществу, как и предыдущие версии, улучшит эффективность регуляторов, а наше хобби сделает еще не один шаг вперед.

Кое-что неизменно — BLHeliSuite для прошивки и настройки, этот софт работает только под Windows и не работает под Linux и MacOs.  BLHeli Configurator Chrome App — приложение специально созданное, чтобы исправить этот недостаток, написано сторонним разработчиком Андреем Мироновым, но мы выяснили, что оно не поддерживает BLHeli_32, из-за закрытости прошивки.

BLHeliSuite будет требовать соединения с интернетом даже для прошивки регуляторов, так что в поле перепрошить регуль будет не так просто. Серийный номер устройства будет проверяться производителями, что должно предотвратить появление клонов и нелегальное использование программы.

Commands

Once tftp is running, it issues the prompt tftp> and recognizes the following commands:

? command-name…
help command-name…
Print help information
ascii

Shorthand for mode ascii.

binary

Shorthand for mode binary.

connect host

Set the host (and optionally port) for transfers. Note that the TFTP protocol, unlike the FTP protocol, does not maintain connections between
transfers; thus, the connect command does not actually create a connection, but merely remembers what host is to be used for transfers. You do not have
to use the connect command; the remote host can be specified as part of the get or put commands.

get file

get remotefile localfile

get file1 file2 file3…

Get a file or set of files from the specified sources. A remote filename can be in one of two forms: a plain filename on the remote host, if the host has
already been specified, or a string of the form host:filename to specify both a host and filename at the same time. If the latter form is used, the last
hostname specified becomes the default for future transfers. Enable literal mode to prevent special treatment of the ‘:’ character (e.g.
C:\dir\file).

literal

Toggle literal mode. When set, this mode prevents special treatment of ‘:’ in filenames.

mode transfer-mode

Specify the mode for transfers; transfer-mode may be one of ascii (or netascii) or binary (or octet.) The default is
ascii.

put file

put localfile remotefile

put file1 file2 file3… remote-directory

Put a file or set of files to the specified remote file or directory. The destination can be in one of two forms: a filename on the remote host, if the host
has already been specified, or a string of the form host:filename to specify both a host and filename at the same time. If the latter form is used, the
hostname specified becomes the default for future transfers. If the remote-directory form is used, the remote host is assumed to be a UNIX system or another
system using as directory separator. Enable literal mode to prevent special treatment of the ‘:’ character (e.g. C:\dir\file).

quit

Exit tftp. End-of-file will also exit.

rexmt retransmission-timeout

Set the per-packet retransmission timeout, in seconds.

status

Show current status.

timeout total-transmission-timeout

Set the total transmission timeout, in seconds.

trace

Toggle packet tracing (a debugging feature.)

verbose

Toggle verbose mode.

Система для обслуживания компьютеров и серверов в локальной сети предприятия

Опубликовано сб, 19/10/2013 — 22:04 пользователем VA

Причины создания, краткое описание, общий принцип работы

Возникло желание уменьшить частоту пробежек между корпусами научно-технического центра (и время ожидания носильщиков при доставке техники) при поступлении заявок на появление проблем с компьютерами. Потому как пробежками занимался я сам.

Надоело тупо сидеть перед мониторами в ожидании окончания иногда небыстрых установок.

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

Если более серъёзно, то — причинами для создания этой системы, которая работает непрерывно с февраля 2011 года и без помех для основной локальной сети, было:

  • Потребность привести в порядок установку программного обеспечения и драйверов на ПК организации и иметь под рукой самые свежие версии.

  • Уменьшить потери времени на ходьбу между зданиями для устранения неполадок в компьютерах пользователей.

  • В ходе автоматического процесса невозможно забыть или упустить что-либо.

  • Лечение от многих вирусов можно проводить не двигая компьютер, пользуясь сетевым соединением, в некоторых случаях без использования антивирусных программ. На лечение от простых и средней сложности вирусов уходило от 15 до 30 мин.

На базе локальной сети организации (более 500 персональных компьютеров, была сделана, опробована и работает система, которая предоставляет следующие возможности:

Подготовка папки для Windows 7.

Установка будет происходить по такому сценарию:

    Загрузка по сети образа Windows7 PE (без графической оболочки)
    Вызов меню выбора системы для установки («install_menu.cmd»)
    Монтирование необходимого сетевого устройстваЗапуск setup.exe с указанием файла ответов

Рисунок 7 Установка WAIK

    
      Для создания загрузочного образа Windows7 PE («boot.wim») обязательно понадобиться компьютер с установленной системой Windows 7, Windows Vista, Windows Server 2003 или Windows Server 2008 (я использовал виртуальную машину c Windows 7 — далее обслуживающий компьютер). Устанавливаем Windows Automated Installation Kit (WAIK) (См. Рис.7-9.).
 

Рисунок 8 Выбор компонентов настройки


Рисунок 9 Добавление параметров настройки

Запускаем  Windows PE Tools Command Prompt (Пуск-> Программы-> Microsoft Windows AIK -> Windows PE Tools Command Prompt). В действительности это обычное окно программы командного процессора Cmd.exe, только с добавленными дополнительными переменными окружения. Создаем копию загрузочного образа с необходимой архитектурой (параметр x86):
 

монтируем образовавшийся образ:
 

Открываем на редактирование файл «startnet.cmd» из каталога c:\windows7pe-x86\mount\windows\system32. Этот файл запускается первым после загрузки и старта системы. Вот в нем и надо прописать вызов скрипта «install_menu.cmd», который будет отвечать за выбор ОС для установки.
Содержание  «startnet.cmd»:

 

	Wpeinit # Окончательная инициализация системы
	ipconfig renew # Инициализируем сетевые интерфейсы
	call install_menu.cmd

Зачем использовать ipconfig renew? Как показала практика, по неизвестной причине не все сетевые карты  инициализируются после выполнения Wpinit. Поэтому еще раз вызываем настройку интерфейса (рис.10).
 

Рисунок 10 Ошибка инициализации сети

Original README.txt from codeplex source archive:

This is the complete source code for Tftpd32 and Tftpd64, the industry standard TFTP server.

The code has been splitted into 2 parts :

  • the GUI management
  • the background process

They communicate together by messages sent through a TCP socket. In addition to separate processing and display, this allow a remote monitoring for the service edition.

_common and _libs directories contains files which belongs to both parts.
GUI processing is in the _gui directory.
Demon and background processing is found into _services directory.
Initializations are in the _main directory

tftpd32.sln and .vcxproj files are the project files necessary for building the executables.

All code is released under the European Public License, which is compatible with the GPLv2.

Copyright notice from original author:

TFTPD32 and TFTPD64 are copyrighted 1998-2017 by Philippe Jounin (philippe@jounin.net) and released under the European Union Public License 1.1 (see either the help file or the file EUPL-EN.pdf for the full text of the license)

Tftpd32 and Tftpd64 use the following copyrights or contributions

  • MD5 part is from RSA Data Security
  • IP checksum computation is from Mike Muss
  • DHCP lease persistance is from Nick Wagner
  • DHCP opts 82, 42 and 120 from Jesus Soto
  • DHCP header file from The Internet Software
    Consortium

Безопасность

Поскольку протокол не поддерживает аутентификации, единственный метод идентификации клиента — это его сетевой адрес (который может быть подделан).
Обычно в Unix-системах tftpd доступен только каталог /tftpboot. Однако в старых TFTP-серверах было возможным получить файл паролей командой RRQ ../etc/passwd.

Демон tftpd (одна из реализаций tftp-сервера) отказывается обрабатывать файлы, содержащие в своём имени комбинацию «/../» или начинающуюся с «../». Запись разрешается только в файлы, которые уже существуют (любого размера, например нулевого), и доступны для публичной записи (права доступа: -rw-rw-rw-).

Дополнительная защита от доступа к произвольным файлам осуществляется с помощью смены корневого каталога на каталог tftpd (обычно /usr/TFTPRoot).

[edit] Mac OS X

OS X ships with a command-line TFTP client.

First, download the firmware file and put it in your user folder (/Users/yourusername/).

Then connect your computer directly to your router via ethernet. Go to System Preferences > Network. Click on «Ethernet» in the left panel and change «Configure IPv4» to «Manually». Then change «IP address» to 192.168.1.x (where x is any number between 2 & 255).

Then copy & paste the following text into a text editor:

 connect 192.168.1.1
 binary
 rexmt 1
 timeout 60
 put dd-wrt.vXX_XXX.XXX

Change the last line to the filename of the firmware file, which you just moved to your user folder. Copy the whole thing, including the line break after the last line.

Now open Applications > Utilities > Terminal. Enter:

 tftp

A «tftp>» command prompt will appear. Now press the reset button on your router. On the tftp command line in Terminal, paste (Cmd+v) the text you copied. Since you copied the line break at the end, tftp will execute the command at the moment you paste it. Depending on your router, you may have to paste it multiple times to get the timing right.

If it works, you’ll see something like this:

 tftp> connect 192.168.1.1
 tftp> binary
 tftp> rexmt 1
 tftp> timeout 60
 tftp> put dd-wrt.vXX_XXX.XXX
 Sent 1769472 bytes in 9.0 seconds

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

Если разрешили доступ к TFTP-серверу за пределами локальной сети дома, офиса и другого места, проверьте, что статический или динамический IP добавлен в диапазон адресов. По умолчанию на сервере разрешены все IP адреса для передачи и получения файлов, а также перенаправление портов. Можно ограничить диапазон IP, чтобы разрешить только несколько адресов.

Для настройки сервера следуйте инструкции:

  1. После запуска утилиты SolarWinds TFTP Server, перейдите в File — Configure. Для отображения иконки в правом нижнем углу на панели задач отметьте флажком поле «Добавить сервер в системный трей Windows».
  2. Выберите корневой каталог сервера. В нем будут храниться все отправленные и принятые файлы. Чтобы передать файлы, их нужно будет скопировать в этот каталог.
  3. Перейдите на вкладку Безопасность, чтобы ввести некоторые ограничения. Здесь можно включить прием или передачу, разрешить определенный диапазон IP или только один адрес.
  4. После нажмите на ОК, чтобы сохранить настройки, и закрыть окно конфигурации.

Альтернатива домашней сети

Домашняя группа Windows была удобным инструментом для обмена файлами по сети. Но была исключена с обновлением Windows 10 до версии 1803. Для замены можно использовать TFTP-сервер, который интуитивный в настройке, достаточно надежный и позволяет передавать данные на быстрой скорости.

Перед настройкой сервера TFTP нужно выполнить следующие действия:

  1. Войдите в систему под учетной записью администратора.
  2. Загрузите установщик TFTP-сервера компании SolarWinds. После распакуйте загруженный zip архив в любое место на диске и установите программу, следуя инструкциям на экране.
  3. Чтобы разрешить удаленный доступ к серверу, нужно переадресовать UDP-порт 69 на IP адрес домашней сети. Но, если удаленное подключение не требуется, то переназначать порты не нужно.

Распространенные сообщения об ошибках в Tftpd32.exe

Наиболее распространенные ошибки tftpd32.exe, которые могут возникнуть на компьютере под управлением Windows, перечислены ниже:

  • «Ошибка приложения Tftpd32.exe.»
  • «Tftpd32.exe не является приложением Win32.»
  • «Возникла ошибка в приложении Tftpd32.exe. Приложение будет закрыто. Приносим извинения за неудобства.»
  • «Файл tftpd32.exe не найден.»
  • «Tftpd32.exe не найден.»
  • «Ошибка запуска программы: tftpd32.exe.»
  • «Файл Tftpd32.exe не запущен.»
  • «Отказ Tftpd32.exe.»
  • «Неверный путь к приложению: tftpd32.exe.»

Такие сообщения об ошибках EXE могут появляться в процессе установки программы, когда запущена программа, связанная с tftpd32.exe (например, TORNADO 2.2), при запуске или завершении работы Windows, или даже при установке операционной системы Windows

Отслеживание момента появления ошибки tftpd32.exe является важной информацией при устранении проблемы

Сетевая установка

           Существует два стандартных варианта решения этой задачи. Для установки операционных систем семейства Windows существуют всем известные WDS (Windows Deployment Services) и SMS (Microsoft System Management Server). У Unix-подобных систем с давних пор была возможность установки разнообразными методами, в том числе и по сети. Нет сомнения, что для развертывания и установки Windows систем WDS удобен и выполняет свои обязанности, но для инсталляции операционных систем семейства Unix он не очень подходит.

           Для начала немного теории. Принцип сетевой установки очень прост. При включении компьютера управление передается ПЗУ сетевой карты. Обычно используется среда PXE (Pre-Execution Environment). После распаковки в оперативную память, она активирует сетевую карту и начинает посылать широковещательный запрос в сеть для нахождения сервера DHCP. При ответе DHCP, PXE запрашивает у него IP адрес, который необходимо присвоить сетевой карте, маску сети, IP адрес сервера TFTP, имя файла для загрузки и т.д. Далее, если ответы на вопросы получены при помощи встроенного TFTP-клиента, PXE обращается к указанному серверу с запросом на получение указанного в параметрах файла. Если файл найден и получен то управление передается на него. Всеми последующими действиями будет руководить именно он.

         Широкое распространение получил проект Питера Анвина (Peter Anvin) под названием — Syslinux . Он имеет простые конфигурационные файлы и включен в поставку многих Linux дистрибутивов. На официальном сайте дается такое определение этому пакету: «SYSLINUX является загрузчиком для операционных системы Linux, который работает на MS-DOS/Windows FAT файловых системах. Он предназначен для простой загрузки и установки Linux. А также для создания спасательных и других специальных загрузочных конфигураций». В этот пакет входит PXELINUX, который является производной от SYSLINUX и используется для загрузки Linux с сетевого сервера. PXELINUX соответствует Intel PXE (Pre-Execution Environment) спецификации. Основой PXELINUX является файл «pxelinux.0» — это и есть загрузчик. Этот файл располагается в корне TFTP сервера. Его конфигурационные файлы размещаются в папке «/tftpboot/pxelinux.cfg/». После запуска на клиентской машине «pxelinux.0» скачивает с сервера и отображает файл «message». Это простой текстовый файл, в котором описаны доступные варианты загрузки. Затем он скачивает свой конфигурационный файл («/tftpboot/pxelinux.cfg/default») и переходит в режим ожидания ввода имени предоставленных конфигураций. Имя раздела пишется после метки label. В ответ на ввод имени варианта установки «pxelinux.0» начинает выполнять действия описанные в нем. Для создания простого текстового меню файл «/tftpboot/pxelinux.cfg/default» может выглядеть так:

       Так же возможно создание графического меню выбора операционных систем (рис.1-3).

Рисунок 1 Главное окно загрузочного меню

Рисунок 2 Меню «спасательных» систем и утилит

Рисунок 3 Меню установки ОС

Краткое описание как самому собрать пакет драйверов сетевых карт.

     RIS сервер хранит информацию о драйверах в файле «nics.txt», туда она попадает при помощи скрипта «infparser.py». Скрипт выполняет поиск в указанной ему директории файлов *.inf, считывает информацию о «Vendor Id» (уникальный идентификатор производителя оборудования) производителя и записывает в файл «nics.txt» строку вида:

 Создаем папки ris, ris/drv и ris/drv/sys в корне TFTP сервера:

      Затем необходимо скопировать и распаковать в папку /srv/tftpboot/ris/drv файлы net*.in_ (из папки i386 дистрибутивного диска). Туда же следует скопировать дополнительно *.inf файлы необходимых для добавления сетевых драйверов. Файлы *.sy_ и *.sys копируем в /srv/tftpboot/ris/drv/sys. После этого составляем список доступных драйверов:

     Все, набор драйверов готов. Осталось скопировать содержимое каталогов drv/ и drv/sys/ в директорию с дистрибутивом Windows XP — /srv/tftpboot/winxp/i386/. В итоге в этой папке должны расположиться ВСЕ *.inf и *.sys файлы сетевых карточек. На сайте есть немного другой способ, также пригодный для подготовки пакета драйверов в Windows XP.

Продолжаем настройку ris-linux.

Скачиваем и распаковываем ris-linux в папку с именем /srv/tftpboot/ris :

Теперь необходимо указать путь по которому располагается дистрибутив. Для этого  открываем файл «binlsrv.py»  и правим там строку:

         Уже сейчас можно проверить работу сервера загрузив тестовый компьютер по сети и выбрав пункт «xpinstall». Если что-то не так проверяйте логи на предмет запрашиваемых у TFTP сервера файлов, они должны присутствовать на сервере в таком виде, как и запрашиваются. Наиболее часто встречающаяся ошибка это: «Выбранный образ операционной системы не содержит необходимых драйверов для имеющегося сетевого адаптера…»(рис.5).

Рисунок 5 Отсутствие необходимых драйверов

Настройка программы TFTPD32 и RIS-LINUX

Перед тем как перейти к рассмотрению настроек программ, следует рассказать о сетевых параметрах компьютер, с которого будет производиться установка. Ему присвоен IP адрес 192.168.200.1 и маска сети 255.255.255.0.

Внимание! В некоторых случаях использование фаерволов может привести к невозможности установить Windows по сети из-за блокировки сетевой активности. Поэтому или правильно настройте фаерволл или его отключите

Настройка программы TFTPD32

Настройка TFTP сервера (TFTPD32)

Опишу значения параметров, в которые я внес изменения.

Сначала я указал каталог, в котором TFTP сервер будет искать файлы. За это отвечает параметр «Base Directory». В нашем случае это C:\NETBOOT\WINXP. Затем я отключаю для удобства не нужные сервисы, оставив только «TFTP Server» и «DHCP Server». По той же причине отключил режим «Show Progress bar». Включил режим «Use anticipation window», в качестве параметра указал значение 14320. Этот последний параметр позволит увеличить скорость загрузки файлов с TFTP сервера.

Внимание. Активация режима «Use anticipation window» в некоторых случаях может привести к ошибкам

И тогда его следует отключить.

С этими настройками TFTP сервер готов к работе. (Рисунок 7).

Настройке DHCP сервера (TFTPD32)

Для установки Windows по сети DHCP должен присвоить IP адрес и указать имя загружаемого файла. За адреса отвечают параметры «IP Pool starting address», «Size of pool» и «Mask».

Кая я уже говорил на компьютере, с которого производится установка, присвоен IP адрес 192.168.200.1 с маской сети 255.255.255.0. Компьютеры смогут общаться друг с другом, если они принадлежат одной сети. В нашем случае это сеть 192.168.200.0. Параметр «IP Pool starting address» указывает начальный IP адрес, с которого DHCP будет начинаться выдавать адреса. Я установил значение в 192.168.200.10. Параметр «Size of pool» указывает, сколько компьютеров могут получить IP адреса от TFTPD32. Я установил значение в 10. Параметр «Boot File» указывает, какой файл необходимо загрузить. В нашем случае это startrom.n12.

Внимание. В каталоге C:\NETBOOT\WINXP находится два файла загрузчика: startrom.com и startrom.n12

Первый файл (startrom.com) в отличии от второго для начало процесса инсталляции потребует нажатия F12.

Параметр «Mask» указывает маску сети и должен совпадать с маской нашего «главного компьютера». Я указал значение 255.255.255.0.

Все настройки DHCP сервера изображены на Рисунке 8.

Настройка программы RIS-LINUX

Внимание. Для работы ris-linux требуется Python версии как минимум 2.4.0

Версия 3 и выше не подходят.

Распаковываю ris-linux в каталог C:\NETBOOT\RIS-LINUX. Теперь необходимо сформировать базу ответов. Для этого выполняю команду: C:\NETBOOT\RIS-LINUX\infparser.py c:\NETBOOT\WINXP\DRIVERS. Если все удачно, то программа infparser.py выведет на экран Compiled xxx drivers, где xxx количество обработанных драйверов. Теперь запускаю сам BINL, с помощью программы binlsrv.py.

  • Назад (Подготовка каталогов и файлов)
  • Вперед ( Автоматизация процесса установки. Файл ответов winnt.sif)
Ссылка на основную публикацию