Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
бездисковая загрузка Windows.doc
Скачиваний:
4
Добавлен:
26.08.2019
Размер:
299.01 Кб
Скачать

Seis: создаем загрузочный образ

Загрузочный образ ОС - это, фактически, содержимое вашего загрузочного раздела, но перенесенное на виртуальный диск. Кроме того, вашу Windows 2000 следует пропатчить патчем BXP Client, который добавляет драйвер сетевого "винчестера".

Итак, для начала на серверной машине создайте с помощью BXP Administrator виртуальный диск. Вообще, все остальное будет происходить, в основном, в этой программе. Выберите I/O-сервер, щелкните на нем правой кнопкой и выберите Создать виртуальный диск. Теперь его нужно отформатировать.

Делается это следующим образом. Сначала примонтируйте новый диск (самый простой способ сделать это - выбрать диск и нажать Ctrl+M). Теперь этот виртуальный диск примонтирован в виртуальный драйв, который, как вы, вероятно, уже заметили, появился у вас на сервере (помимо диска с лицензиями). Учтите, что "мэппинг" работает только при запущенном BXP Administrator. Теперь отформатируйте этот диск самым обычным для Windows способом и отмонтируйте его обратно. Теперь диск готов для записи образа.

Следующий шаг потребует внимательности. Создайте нового клиента на сервере - можете указать для него фиксированный MAC-адрес (в качестве "волшебных пирожков" прокатывают вопросительные знаки), если хотите ограничить загрузку только определенными рабочими станциями. Теперь самый интересный момент: укажите в настройках тип загрузки С жесткого диска. Не спрашивайте зачем - так нужно. Перезагрузите клиентскую машину, войдите в BIOS и первым номером поставьте загрузку по сети. Теперь с перезагрузки вы должны увидеть опрос DHCP и получение "пяти точек". На самом деле каждая точка отвечает за получение определенной опции настройки (это как слэш-роторы и дот-тикеры при загрузке Unix'ов - вроде фигня, но kernel-хацкеры в курсе каждого оборота) - как выяснилось из исходного кода PXE BIOS. Если у вас проблема с настройками DHCP, не найден I/O-сервер, на сервере не найден загрузочный файл или возникла еще какая проблема - вы получите об этом сообщение.

После загрузки образа с сервера BXP продолжит загрузку с локального жесткого диска - и это то, что нам пока нужно. После загрузки таким прихотливым способом (и только так!) установите из инсталляции BXP клиентскую часть (а иначе вы ее и не установите). Это, фактически, два компонента: драйвер виртуального диска и маленькая программка, которая копирует ваш диск C: (только С - это жестко закодировано и никак не меняется) на виртуальный диск на сервере. Если инсталляция прошла успешно, вы увидите новый виртуальный диск - это ваш образ на сервере, запускайте создатель образа (поищите его в Программах) и в качестве цели копирования укажите этот диск. Тэкс-фэкс-пэкс! - и через пару минут вы будете как никогда близки к счастью.

 

 

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

Дополнительно по отношению к образам дисков есть несколько стратегий использования, настраиваемых в BXP Configuration. Для настройки использования виртуального диска этот диск должен быть отключен от всех клиентов (даже от тех, что загружаются с винчестера - они ведь тоже лочат виртуальный диск, только что не первым номером). Итак, вы можете создать для диска write-кэш, причем как в памяти клиентского компьютера, так и на диске сервера. На самом деле кэш является еще и оверлейной областью - то есть, когда вы будете записывать на виртуальный диск, запись будет производиться не в образ, а в оверлей. Естественно, что оверлей в памяти будет куда быстрее, но так же понятно, что он не сохраняет своего состояния. Это полезно, когда вы настраиваете, например, компьютерный класс и в ваши планы не входит переустанавливать систему после нашествия каждой следующей орды обезбашенных хакеров.

Кроме прочего, дисковый кэш (в оперативной памяти клиента тоже - но это очевидно) персонифицирован - то есть сколько пользователей, столько и кэшей. Чего это дает? Получается, что сотня пользователей может "прикуривать" от одного загрузочного образа, но при этом каждый может вносить в систему изменения, и BXP будет хранить их в компактном виде персональной "дельты". Конечно, такая конфигурация будет сильно нагружать сеть, и есть свидетельства, что процессор сервера тоже будет очень греться, так что за экономию дисковой памяти сервера придется платить его повышенной мощностью и гигабитной сетью - иначе работа будет медленной.

Внимание: для того чтобы изменять режим использования образа, нужно не просто "положить" всех подключаемых клиентов, но и "выкатить" виртуальные диски, то есть зайти в настройки каждого клиента и исключить нужный образ как вариант загрузки. Кроме того, не делайте образ диска, если у вас включен кэш - вся запись пойдет именно туда, кэш разбухнет (а в случае кэша в оперативке - так и вообще забьется). Это неправильно.

Siette: запускаем змея в космос

Собственно, это самая короткая и простая часть дела: если вы все сделали правильно, то просто перезагрузите клиентскую машину и убедитесь, что все пучком. Получилось? Тогда можете щемиться на Караваевы дачи закупать остальные бездисковые компы, экономя на каждом по 30 американских рублей - но самая главная экономия будет, конечно, на вашей работе по настройки одного компа вместо кучи.

Ocho: мы строили, строили и наконец построили

Собственно, все, только что рассказанное,- это так себе, предисловие фактически. То есть вы, конечно, можете настроить систему и при определенном везении даже продлить ее trial'ный период на следующую пятилетку. Но это все, так сказать, цветочки для сисадминов, которые, как известно, хоть и super, но все-таки юзеры. Но все-таки хотелось бы не тырить софт Venturcom ценой 1500 зеленых, а честно его порвать и реконструировать. Поэтому любой нормальный хацкер должен срочно закатать все, чего там у него закатывается, и наваять OpenBXP, работающий под Linux и другими системами. В целях портабельности я бы выбрал Java или Perl - заодно получится компактный и структурированный исходный код.

Несколько наводящих подсказок. Первое, что мы уже и сделали, это использовали альтернативный сервер DHCP, то есть эта компонента у нас уже Open. Точно так же и TFTP- и PXE-серверы являются чем-то совершенно от BXP не зависимым. Учитывая, что и PXE, и BOOTP представлены хоть и бесплатными, но все-таки принадлежащими 3Com, серверами, я рекомендовал бы просто игнорировать эти варианты загрузки (хотя бы временно, до лучших времен). Кстати, если вы настроили DHCP так, как показано в этой статье, то вам эти сервисы, что называется, однозначно не упираются - я их даже не стартовал.

В качестве шага к светлому будущему я предпринял установку бесплатного Solar Windows TFTP Server v.6.0, переписал в его каталог C:\TFTP-Root файл VLDRMI13.bin, после чего спокойно положил сервис BXP TFTP - и все продолжало работать как ни в чем не бывало (ну, за исключением лагов "TFTP Timeout", которые фиксировал Solar TFTP - но загрузке это не мешало, да и кто знает, как там работал BXP TFTP, я в его логи не вдавался).

 

 

Итак, осталось четыре сервиса, которые воленс-ноленс придется реконструировать, поскольку падение любого из них мгновенно делает сетевую загрузку невозможной. Исследование закладки General дает нам следующие соответствия имен файлов (в каталоге C:\Program Files\Venturcom\BXP\) и сервисов:

 

Кроме того, придется разобраться с клиентскими модулями: модулем BNClient размером 24 Кб, драйвером BXP Miniport SCSI Virtual Adapter (копии всех используемых файлов лежат в C:\WINNT\System32\BNTemp, 107 Кб) и самым ужасным файлом - VLDRMI.bin.

Ужасен этот файл не столько своим небольшим размером (всего 22 Кб, половина из которых - диагностические сообщения, однородные массивы и сообщения об ошибках), сколько полным отсутствием знакомых ориентиров вроде системных вызовов, поскольку на момент загрузки он работает в среде PXE bre-boot-OS, где, естественно, доступны какие-то системные вызовы, например BIOS, в том числе сетевые PXE, но, как это работает, придется изучать с нуля. Для дизассемблирования помогут такие подсказки:

  • сначала сверните строки в конце текста и однородные массивы по всему тексту - из-за неизвестной точки входа это не делается автоматически;

  • данные процедуры по соглашению кодеров vldrmi находятся за телом этой же процедуры, и, поскольку все происходит в одном сегменте, адресация таких "локальных переменных" часто осуществляется через CS;

  • выравнивание кода - по границам двойных слов, так что пару нулей часто означает границы процедур;

  • типичный пролог процедур: 66h, 60h, 6h, 1Eh - что в терминах ассемблера выглядит как:

pushad push es push ds  

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

Есть еще небольшая наводка по поводу "где лежат параметры, которые изменяются в процессе настройки". Есть такая простая утилита fc (типа File Compare) - сделав копию с образа и изменяя параметры, можно обнаружить следующее (флажки 57C8-57C9 - последние байты в файле):

 

На момент публикации статьи я уже продвинулся дальше, но сегодня моя цель - не выкладывать вам код, который даже и дезассемблировать-то нельзя (а fc - не дезассемблер, так что не придеретесь), а просто показать, что все делается, и сравнительно быстро. Задача предстоит сравнительно сложная, но детерминированно разрешимая.

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

Для сайта

PRO-DIGITAL.UCOZ.COM

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]