Загрузка с сетевой карты windows
Загрузка по сети — старая идея. Ключевая идея в том, что компьютер содержит некоторый код начальной загрузки в энергонезависимой памяти, такой как микросхема ПЗУ, что позволяет соединиться с сервером и получить системные файлы по сети.
Для загрузки по сети, компьютер должен получить
образ операционной системы и
обычно, рабочую файловую систему.
Рассмотрим бездисковый компьютер (DC) у которого есть загрузочная сетевая ПЗУ. Возможно наличие нескольких идентичных бездисковых компьютеров. Как же их различать? У этих компьютеров (фактически у их сетевых карт) есть некоторая уникальная информация, это — сетевой Ethernet адрес. Каждая Ethernet карта в мире имеет уникальный 48 битный Ethernet адрес, так как каждый производитель Ethernet аппаратуры зарезервировал для себя блок адресов. По соглашению эти адреса записываются в виде шестнадцатеричных чисел разделенных двоеточием по группам, в каждой группе по две цифры, например — 00:60:08:C7:A3:D8 .
Используемые для получения IP адреса по данному Ethernet адресу протоколы называются Boot Protocol (BOOTP) и Dynamic Host Configuration Protocol (DHCP) . DHCP — развитие BOOTP. В наших рассуждениях, если не указано иное, все что применимо к BOOTP также применимо к DHCP. (Фактически немного неправильно говорить, что BOOTP и DHCP всего лишь транслируют Ethernet адреса, в них предусмотрено обеспечение работы BOOTP и DHCP с любым типом аппаратных адресов, но большинство использует Ethernet.)
Пример обмена информацией BOOTP выглядит подобным образом:
DC: Привет, мой аппаратный адрес 00:60:08:C7:A3:D8 , дай мне мой IP адрес.
BOOTP сервер: (Смотрит в базу данных адресов.) Твое имя aldebaran, твой IP адрес 192.168.1.100, твой сервер 192.168.1.1, твой предполагаемый загрузочный файл /tftpboot/vmlinux.nb (и еще несколько частей информации).
Вы удивитесь, как бездисковый компьютер изначально находит адрес BOOTP сервера. Ответ таков — он его не ищет. Запрос BOOTP широковещательный по локальной сети и любой BOOTP может ответить на запрос.
После получения IP адреса, DC должен загрузить образ операционной системы и выполнить его. Другой используемый тут Интернет протокол называется Trivial File Transfer Protocol (TFTP) . TFTP подобен обрезанной версии FTP — тут нет идентификации, и он работает поверх User Datagram Protocol (UDP), а не поверх Transmission Control Protocol (TCP). UDP был выбран вместо TCP для упрощения. Реализация UDP на DC может быть маленькой, посему код легко помещается в ПЗУ. Так как UDP блочно-ориентированный протокол, в отличие от потоково-ориентированных протоколов, передача следует блок за блоком, как например:
DC: Дай мне 1 блок файла /tftpboot/vmlinux.nb. TFTP сервер: Лови. DC: Дай мне блок 2.
и так далее, пока не будет передан весь файл. Переговариваясь, он подтверждает передачу каждого блока, и потеря пакета будет обнаружена и пакет будет передан через таймаут. Когда все блоки получены, сетевой boot ROM передает управление в точку входа образа операционной системы.
В конце, в случае запуска операционной системы, должна быть предоставлена корневая файловая система. Linux и другими Unix-ами обычно используется Network File System (NFS) , однако возможны другие варианты. В этом случае код не должен находиться в ROM, а должен быть частью загружаемой операционной системы. Однако операционная система вместо реального диска должна запустить корневую файловую систему — NFS. Linux содержит требуемые для этого настройки.
Сетевой загрузчик — небольшая программа, запускаемая как расширение BIOS, расположена обычно на EPROM сетевой платы. Она обрабатывает BOOTP запрос и загрузку по TFTP, а затем передает управление загруженному образу. Она использует TCP/IP протокол, но загруженный образ не обязательно должен быть Linux. Загруженный образ может быть любым, даже DOS. Он также может быть загружен с дискеты для проверки и временных настроек.
Наряду с коммерческими ROM, есть ДВА свободных пакета сетевой загрузки. Свободные реализации TCP/IP сетевых загрузчиков —
Etherboot использует встроенные драйвера, в то время как Netboot использует Packet драйвера. Сначала вы должны проверить, что ваша сетевая карта поддерживается Etherboot или Netboot. До того как вы, в конечном счете, найдете того, кто захочет вставить для вас код в EPROM (Erasable Programmable Read Only Memory), вы можете загружаться по сети с дискеты .
Для создания загрузочной дискеты требуется специальный загрузочный блок, присутствующий в дистрибутиве. Это — маленькая 512 байтная программа загружает следующие далее на дискете блоки в память и предает им выполнение. Таким образом, для создания загрузочной дискеты, требуется соединить загрузочный блок с содержащим драйвер сетевой карты исполняемым файлом Etherboot следующим образом:
# cat floppyload.bin 3c509.lzrom > /dev/fd0
Возьмите пакет nfsboot (пакет доступен на вашем любимом зеркале linux в каталоге /pub/Linux/system/Linux-boot directory). Он содержит booteprom образ вашей сетевой карты (например wd8013), который можно непосредственно записать. Также смотрите LTSP сайт http://www.ltsp.org
Перед тем, как ставить дискету для загрузки по сети, вам следует настроить три службы на Linux —
Вам не следует настраивать их одновременно, вы можете делать поэтапно, проверяя работоспособность каждого этапа перед тем, как переходить к следующему.
либо используя inetd, отредактируйте файл /etc/inetd.conf и вставьте похожую строку:
bootps dgram udp wait root /usr/sbin/in.bootpd bootpd
Вставьте или раскомментируйте следующие две строки в /etc/services:
| |
| Шрифт: |
В данной статье опубликованы способы загрузки компьютера по сети с использованием образов дискет/HDD дисков (возможно использование размеров отличных от 1.44 Мб). Это может понадобиться при отсутствии под рукой другого загрузочного носителя, или для удобства эксплуатации в определенных условиях. Способы как минимум раз были успешно испробованы в реальной ситуации, а если вам известны другие, то присылайте свои варианты администратору сайта. Если вы знаете, как упростить существующие способы, то присылайте свои варианты авторам способов или опубликуйте их на форуме.
Способ 1: Thinstation и RIS сервер
Представляю статью о загрузке по сети, которую написал участник конференции OSZone vserd.
Предисловие
Возникла у меня такая ситуация. Принесли компьютер, еле живой, Asus S200, та еще штучка как оказалось впоследствии. Диск был разбит по грамотному (два раздела), и на втором был дистрибутив Windows, спасибо предыдущему настройщику, облегчил задачку.
Итак, имеем компьютер без флоппа и CDROM. Есть сетевая карта SIS900. В BIOS есть возможность загрузиться с HDD, USB Floppy, USB Flash, USB CDROM и по сети.
На момент начала мучений с ним была только флешка, но грузиться с нее он отказался. Достать USB СD или Floppy не удалось. Оставалась только сетевая загрузка. Кстати, как оказалось впоследствии, что реально помог бы только USB флоп. USB СD не опознался.
Читая доки MS и форумы по автоустановке, натыкался на сокращение RIS и упоминание того, что можно загрузиться с сетевой карты и установить ось. Вот и решил проверить. Поставил RIS, создал образ, настроил DHCP и . получил огромный облом. Система действительно загружалась, проходила текстовую часть установки и вываливалась в BSOD с кодом 0x000000BB. Согласно толкованиям, найденным на просторах Интернета, для исправления нужно всего ничего, заменить драйвера сетевой карты в дистрибутиве или заменить сетевую карту. Скачал новую версию драйверов, прочитал KB315279 и ссылки по ней, сделал все как описано, и танцы с бубном окончились продолжительным BSOD-ом с тем же кодом.
Ладно, если не получается с наскока давайте читать инструкции. Изучал, изучал и наткнулся на возможность использования практически любого образа диска для загрузки по сети.
Что понадобится
- Утилита для создания загрузочных сетевых образов из обычных. Загружаем
- Perl. Загружаем. (эта версия сработала у меня, другие пробуйте сами, я в Perl не игрок)
- Блокнот из стандартной поставки Windows или любой другой ASCII редактор
- Thinstation. Сайт, файл (8.86 Мб) (вполне возможно, что файл и другой подойдет)
- Установочный диск с Windows 2000 Server
- Прямые руки, желание научиться 🙂
Приступаем
Шаг 1
Скачиваем и распаковываем утилиту преобразования. Для ясности, в D:\BootDisk\.
Шаг 2
Скачиваем и устанавливаем Perl.
Шаг 3
Создаем образ дискеты или используем готовый образ.
- Если нет образа загрузочной дискеты в виде файла, тогда вставляем загрузочную дискету с MS-DOS и выполняем команду D:\BootDisk\MKIMAGE.BAT DOS . Поддерживаются стандартные 1.44 Mb приводы.
- Если образ уже есть, тогда модифицируем файл создания загрузочного образа.
-
- Открываем блокнот и копируем/записываем следующий код
@echo off
cd mknbi-1.4.1-win
perl.exe mknbi.pl —nosquash —format=nbi —target=dos ..\image.dos >..\dos.bin
rem Если хочется универсальности, тогда комментируем верхнюю строчку (дописываем REM)
rem и раскомментируем нижнюю (удаляем REM) (запуск MKIMAGE2 имя_образа_с_расширением)
rem perl.exe mknbi.pl —nosquash —format=nbi —target=dos ..\%1 >..\dos.bin
cd..
:end
Шаг 4
Ожидаем завершения работы батника. Проверяем, что размер dos.bin больше размера image.dos примерно на 4 кб.
Шаг 5
Распаковываем thinstation. Из архива нам нужен файл TFtpdRoot\thinstation.nbi.zpxe. Копируем его в D:\BootDisk\ с именем dos.bin.zpxe. Это загрузчик PXE.
Шаг 6
Настраиваем DHCP (если настроен, то переходим к шагу 7). У меня Win 2000 Server так что буду описывать для него.
Если DHCP не установлен, тогда его сначала нужно установить. (Панель управления> — Установка удаление программ — Добавление и удаление компонент Windows, затем выделить Сетевые службы, Состав и поставить галочку на DHCP).
Настраиваем DHCP. Панель управления — Администрирование, запускаем оснастку DCHP. Выбираем сервер DHCP который мы хотим настраивать. Затем из контекстного меню выбираем Создать область. В появившемся мастере вводим имя области и комментарий. Давайте осмысленные имена, чтобы и через пару-тройку лет с этим мог разобраться другой админ или вы сами. Затем вводим начальный и конечный адрес который хотим раздавать через DHCP. Максимальная емкость зависит от числа одновременно устанавливаемых машин. Если в диапазон адресов попал статический адрес, можете его ввести на следующей странице в список исключаемых. Дальше по вашему усмотрению. После создания области в секции Параметры области, нужно настроить параметры 066 IP сервера и 067 Имя файла для загрузки. В параметр 067 вписываем имя dos.bin.zpxe.
Шаг 7
Устанавливаем и конфигурируем RIS
Панель управления — Установка удаление программ — Добавление и удаление компонент Windows, ставим галочку на Служба удаленной загрузки. После завершения установки идем в Администрирование — Службы и запускаем службу Упрощенный FTP-демон.
Шаг 8
Копируем в C:\tftpdroot файлы dos.bin.zpxe и dos.bin.
Шаг 9
Устанавливаем на компе загрузку с сетевого адаптера по PXE и пробуем загрузиться.
Если все нормально, то на компьютере, который загружается, будет идти поиск DHCP сервера, затем загрузчик покажет что присвоен IP адрес, и пошла загрузка с образа.
Общие примечания
Для редактирования/создания образа дискеты можно пользоваться WinImage, плугином к Total Commander Virtual Disk или другими утилитами. Если у вас один компьютер, и нет серверной платформы, вы можете использовать одну из виртуальных машин (например, VMWare), установить на ней сервер и настроить на взаимодействие с другим компом. Судя по отзывам на форумах, это вполне реально.
Также в сети можно найти DOS стек TCP/IP. Или настроить NetBios/NetBEUI. В таком случае вы можете загрузить дистрибутив с шары.