Этот документ описывает установку мощной и защищенной конфигурации для кластера ПК, предоставляющей
каждому клиенту выбор при загрузке, какую операционную систему запустить. Суть этой конфигурации -
программа, основанная на загрузочном ПЗУ, которая предоставляет пользователю возможность выбрать при загрузке один
из нескольких загрузочных образов. Эта конфигурация применима при использовании Bootix TCP/IP Bootprom
(существующего как дополнение к большинству сетевых карт) или любого PXE-совместимого Boot ROM (готового к
использованию в большинстве современных ПК со встроенными сетевыми картами). Большинство
обновленных версий данного документа, со ссылками на загружаемое программное обеспечение и другие связанные материалы, может быть найдено по адресу
http://cuiwww.unige.ch/info/pc/remote-boot/howto.html
.
Linuxdoc-SGML,
DVI,
PostScript и PDF
версии доступны в том же директории. Если вы заинтересованы в
получении информации о дальнейшем развитии, отправьте письмо по адресу
info@bpbatch.org
.
Этот раздел определяет то, что вы можете и что не можете делать с Программным обеспечением и содержит ограничения на гарантии и средства.
УСТАНОВКА, КОПИРОВАНИЕ, ИЛИ ДРУГОЕ ИСПОЛЬЗОВАНИЕ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ОЗНАЧАЕТ ВАШЕ ПОДТВЕРЖДЕНИЕ, ЧТО ВЫ ЧИТАЛИ ЭТУ ЛИЦЕНЗИЮ И СОГЛАСНЫ С ЕЕ УСЛОВИЯМИ.
ПОЖАЛУЙСТА ОБРАТИТЕ ВНИМАНИЕ, ЧТО ЭТА ЛИЦЕНЗИЯ ДЕЙСТВИТЕЛЬНА ТОЛЬКО ДЛЯ ПЕРСОНАЛЬНОГО ИСПОЛЬЗОВАНИЯ, КАК ОПРЕДЕЛЕНО В СТАТЬЕ 1 ОБЩИХ УСЛОВИЙ.
ОБЩИЕ УСЛОВИЯ
1. Предоставление лицензии
Авторы BpBatch, MrBatch, MrZip и связанных утилит (в дальнейшем " Программное обеспечение ") предоставляют вам неисключительную, непередающуюся, безвозмездную лицензию для загрузки и использования Программного обеспечения при условиях, указанных ниже.
Эта лицензия предоставляетсятолько для персонального использования Программного обеспечения. Персональным использованием считается использование Программного обеспечения индивидуумом, компанией, организацией или школой только на ее собственных компьютерах.
ПЕРЕДАЧА, ПРОДАЖА ИЛИ ВЗИМАНИЕ АРЕНДНОЙ ПЛАТЫ ЗА ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, ЛИБО "AS IS", ЛИБО КАК ЧАСТИ СВЯЗАННОГО ИЗДЕЛИЯ, ИЛИ ЕГО ИНСТАЛЛЯЦИЯ НА КОМПЬЮТЕРЕ, ПРИНАДЛЕЖАЩЕМ ТРЕТЬЕМУ ЛИЦУ ЗАПРЕЩЕНА, ЕСЛИ КОММЕРЧЕСКОЕ СОГЛАШЕНИЕ С АВТОРАМИ ИЛИ ИХ УПОЛНОМОЧЕННЫМ ПРЕДСТАВИТЕЛЕМ НЕ БЫЛО ЗАКЛЮЧЕНО.
Обратитесь к info@rembo.com для получения дополнительной информации. Мы предлагаем вполне приемлемые коммерческие лицензии.
2. Исключение гарантий
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "AS IS", БЕЗ ЛЮБЫХ ГАРАНТИЙ, ДВУСМЫСЛЕННОСТЕЙ ИЛИ ПОДРАЗУМЕВАНИЙЙ. ЭТО НИ ГАРАНТИРУЕТ, НИ ИСКЛЮЧАЕТ СВОБОДУ ОТ ОШИБОК.
ПОЛНЫЙ РИСК ОТНОСИТЕЛЬНО РЕЗУЛЬТАТОВ И ЭФФЕКТИВНОСТИ ИЗДЕЛИЯ ПРИНЯТ ВАМИ. В ЧАСТНОСТИ АВТОРЫ ПРЕДУПРЕЖДАЮТ ВАС, ЧТО ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИМЕЕТ СПОСОБНОСТЬ СТИРАТЬ СОДЕРЖИМОЕ ЖЕСТКОГО ДИСКА БЕЗ ВСЯКОГО ПРЕДУПРЕЖДЕНИЯ.
АВТОРЫ НИ ПРИ КАКИХ ОБСТОЯТЕЛЬТВАХ НЕ БУДУТ ОБЯЗАНЫ ВАМ, РАВНО ПО ПРАВУ ИЛИ ДОГОВОРУ ЗА ЭКОНОМИЧЕСКИЙ, ПРОИСТЕКАЮЩИЙ ИЛИ КОСВЕННЫЙ УЩЕРБ ЛЮБОГО ВИДА, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ПОТЕРЕЙ ДОХОДА ИЛИ ПРИБЫЛИ, УТРАТОЙ ИЛИ РАЗРУШЕНИЕМ ДАННЫХ ИЛИ ОСТАНОВКОЙ БИЗНЕСА, ВОЗНИКАЮЩИХ ВСЛЕДСТВИЕ ИЛИ В СВЯЗИ С ИСПОЛЬЗОВАНИЕМ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫМ СПОСОБОМ, ДАЖЕ ЕСЛИ БЫЛА ПРЕДСКАЗАНА ВОЗМОЖНОСТЬ ТАКОГО УЩЕРБА ИЛИ ТАКОЙ УЩЕРБ БЫЛ ПРЕДВИДИМ.
3. Авторское право
Программное обеспечение защищенно авторским правом и защищено в соответствии с национальными законами об авторском праве и условиями международных соглашений. Вы соглашаетесь предотвращать любое неправомочное копирование Программного обеспечения. Вы не должны удалять или искажать никакие замечания авторского права или другие составляющие собственность замечания этого Программного обеспечения.
Вы не должны декомпилировать, дизассемблировать или перепроектировать Программное обеспечение ни в каком виде.
4. Делимость.
Эти общие условия объявляются делимыми. Если любое ограничение или условие в этих условиях станут по любой причине недопустимы или неосуществимы, остающиеся ограничения и условия должны оставаться допустимы и осуществимы.
5. Законодательство.
ЭТИ ОБЩИЕ УСЛОВИЯ И ЛЮБЫЕ ПРАВА ИЛИ ОБЯЗАТЕЛЬСТВА СВЯЗАННЫЕ С ЭТИМ ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ДОЛЖНЫ УПРАВЛЯТЬСЯ И РАССМОТРИВАТЬСЯ В СООТВЕТСТВИИ С ЗАКОНАМИ ШВЕЙЦАРИИ, КАК ПРИМЕНИМЫЕ В КАНТОНЕ ЖЕНЕВЫ.
6. Исключительная юрисдикция
ЛЮБОЙ СПОР, ВОЗНИКАЮЩИЙ ОТНОСИТЕЛЬНО ИЛИ В СВЯЗИ С ДАННЫМ ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ
ДОЛЖЕН БЫТЬ ПРЕДСТАВЛЕН ИСКЛЮЧИТЕЛЬНОЙ ЮРИСДИКЦИИ СУДОВ ЖЕНЕВЫ, ШВЕЙЦАРИИ, АППЕЛЯЦИИ
ШВЕЙЦАРСКОМУ ФЕДЕРАЛЬНОМУ ВЕРХОВНОМУ СУДУ СОХРАНЯЮТСЯ.
Нет, потому что внутренний формат радикально отличается.
Но Вы можете легко сделать преобразование сами:
Несколько незначительных особенностей были добавлены с 3.01, такие как поддержка бездисковой загрузки Linux (с отключением кэша).
Версия 3.10 представила совместимость с Intel Wired for Management 1.1a NetPC стандартом. Этот инструмент теперь работает с любым PXE-совместимым Boot ROM (таким как большинство встроенных ПЗУ начальной загрузки) доступным сегодня. Благодарим Bootix GmbH за предоставленный нам PXE bootprom, который определил это развитие. Мы также успешно проверили этот инструмент с PXE Boot ROM (называемом LanDesk Service Agent), который я нашел мимоходом в моем Dell компьютере со встроенной сетевой платой.
В версиях от 3.11 до 3.12 были добавлены серверные инструменты UNIX (PXE Proxy DHCP сервер для Solaris и Linux, и усовершенствованный TFTP сервер для Linux), также как детализирована информация относительно установки серверной части и процесса PXE загрузки.
В версии 3.13 добавлена расширенная поддержка управления питанием (APM, команда PowerOff).
В версии 3.14 добавлены незначительные расширения и некоторые исправления. Мы устранили проблему с терминалом под RedHat 5.1, и другой проблемой в синтаксисе команды "if" . Мы добавили некоторые особенности, предложенные Вычислительной Лабораторией Факультета Информатики Барселоны (the Laboratori de Cаlcul de la Facultat d'Informаtica de Barcelona (LCFIB)):
В версии 3.16 устранены следующие ошибки:
В версии 3.19 устранена ошибка в обработке ошибок команды delete на ext2fs, также как неверная обработка имен, начинающихся с A: под Linux. Следующие новые особенности были также добавлены:
Версия 3.20: мы добавили ссылку к документации Питера Шмитта (Peter Schmitt).
Версия 3.21: мы изменили некоторые разделы этой документации, чтобы соответствовать изменениям, представленным спецификацией PXE 2.0. Наиболее важное изменение - то, что BpBatch опцией DHCP командной строки является теперь 135 вместо 155 (155 все еще поддерживается для обратной совместимости).
Версия 3.22 представляет новые условия лицензирования. Пожалуйста читайте эти условия очень тщательно перед использованием BpBatch.
Версия 3.24: Поддержка контрольной платы, добавленная Tellurian Pty Ltd, www.tellurian.com.au. Мы также изменили семантику имени загрузчика, чтобы позволить использование Intel и Bootware TFTP серверов. Подробности см., в файле "what's new".
Версия 3.25: Мы добавили несколько советов (фильтры для установки Windows 98 и как отключить кодирование пароля) присланные поклонниками BpBatch.
Версия 3.26: Много опечаток устранено, благодаря расширенному обзору,
пожертвованному Германом Брунинкксом (Herman Bruninckx). Мы также добавили раздел
по Solaris TFTP серверу.
Конфигурация, описанная здесь была разработана начиная с лета 1996 в CUI, Университете Женевы. Отдел Информатики использует несколько серверов и ряд PC, которые подразделяются на два класса:
http://developer.intel.com/ial/wfm/tools/index.htm
.
Bootprom существуют действительно давно, но до недавнего времени они использовались исключительно с бездисковыми компьютерами (с использованием сетевой эмуляции диска или загрузки ramdisk). Начиная с 1996, данный How-to утверждал, что bootprom даже более интересен для компьютеров, имеющих локальный жесткий диск, так как они позволяют получить преимущество с двух сторон:
Обратите внимание, что вы все еще можете использовать инструментальные средства, описанные ниже старомодным способом, таким, как простой kernel/ramdisk загрузчик, даже для компьютеров без диска. Однако, мы не приветствуем такое использование.
Университет Женевы имеет домен класса B , поделенный на несколько подсетей. CUI использует четыре подсети, среди них одна выделена студентам.
Первоначально, наши PC использовали два сетевых протокола: IPX и IP. В IPX части, мы использовали одиночный Novell Netware 3 сервер для совместного использования программного обеспечения и файлов пользователей для DOS и Windows. В IP части, мы использовали сервер SUN для совместного использования программного обеспечения и разделов пользователей для Linux, с NFS.
В нашей самой последней конфигурации, мы больше не используем IPX. Имеется одиночный Unix сервер (которым может быть как Linux, так и SUN), для совместного использования программного обеспечения и файлов пользователей, использующий NFS для Linux клиентов и SMB (NetBIOS) через TCP/IP для клиентов Windows и DOS. Таким образом, мы имеем один домашний каталог используемый всеми операционными системами.
bpbatch
,- наш загрузочный интерпретатор
пакетного файла. disk1
до disk4
) как SMB клиент. Microsoft LanManager поддерживает
динамическую конфигурацию, используя DHCP. После регистрации пользователь попадает
в DOS, и может запустить Windows 3.1, набрав традиционную команду win
. Обратите внимание,
что в этот момент, DOS и Windows 3.1, предстают установленными локально. Для
Windows 95/98 и Windows NT, мы также используем Microsoft SMB клиент
(называемый Клиентом для Сети Microsoft), который поддерживает динамическую конфигурацию,
используя DHCP. Мы уменьшаем сетевую загрузку, используя Shared LAN Cache,
хорошую и мощную программу кэширования "сети на диске".Для "безопасных" компьютеров (то есть для компьютеров сотрудников), если компьютер был загружен однажды через использование вышеописанной системы, сценарий начальной загрузки просто переназначает начальную загрузку на локальный жесткий диск, без того, чтобы очищать его снова. Это позволяет пользователям оставлять данные на их локальных жестких дисках. Но всякий раз, когда конфигурация разрушается, пользователь может просто выбрать из меню начальной загрузки, чтобы получить свежую инсталляцию.
Эта конфигурация была успешно воспроизведена в нескольких местах во всем мире.
Несколько людей написали некоторые подсказки и трюки, которые дополняют настоящий How-To.
Если вы делали то же самое, и если ваша страница еще не упомянута в этой документации, пожалуйста
пошлите электронную почту на mvuilleu@bpbatch.org
. И если Вы испытываете проблемы при
воспроизведении данной конфигурации, взглянете на эти страницы!
http://www.ph-ludwigsburg.de/nutzer/schmitt_peter/
,
сделано Питером Шмиттом (Peter Schmitt) из Carl-Schaefer-Schule в Ludwigsburg, Германия. Эта документация - хорошая ссылка
на BpBatch для пользователей, говорящих на немецком.
http://www.br.fgov.be/RESEARCH/INFORMATICS/info/bootp.html
,
сделано Аланом Ампэном (Alain Empain) из Бельгийского Национального Ботанического Сада.
Много полезных типовых сценариев, и хорошая программа на PERL для автоматической генерации
графических меню и сопроводительная HTML документация высокого уровня описания.
http://www.katedral.se/system/elevsyst
,
сделано Иоханом Карлстедом (Johan Carlstedt) из Кафедральной Школы Упсала (The Cathedral School of Uppsala),
Швеция. На этот день конфигурация, описанная в этом месте все еще основана на предыдущей версии инструментов удаленной
начальной загрузки. Однако почти все остается применимым, даны лишь некоторые изменения.
http://vitoria.upf.tche.br/~fred/
,
на португальском, сделано Фредериком Голдшмидтом (Frederico Goldschmidt) из Университета Пассо Фундо
(Passo Fundo University), Бразилия.
http://www.etse.urv.es/~larinyo
,
по-испански, сделано Луисом Арино (Lluis Arino), из Высшей инженерной технической школы
(Escola Tecnica Superio d'Enginyeria), Испания.Вы можете также послать мне ваш BpBatch сценарий, если Вы хотите, чтобы я включил его в коллекцию типовых сценариев.
Прежде всего, условимся иметь следующие две машины:
http://www.bootix.com
.
Эта дискета сделает ваш компьютер подобным компьютеру со встроенным TCP/IP BootProm.
Если вы уже имеете ПЗУ начальной загрузки, вам нужно включить эту возможность. Если вы используете Bootix TCP/IP Bootprom,вы можете сделать это с помощью специальной программы от производителя вашей сетевой карты. Если вы имеете PXE Bootrom, вы можете сделать это просто из BIOS-setup, изменяя загрузочное устройство.
Для студенческих компьютеров, мы конфигурировали сетевую загрузку первой, и дезактивировали загрузку с флоппи и жесткого диска. Для вспомогательных компьютеров, мы также конфигурировали сетевую начальную загрузку первой, но мы позволяем начальную загрузку с гибкого диска и с жесткого диска.
На сервере вам будут нужны следующие сервисы:
http://developer.intel.com/ial/wfm/tools/pxepdk20/index.htm
.
Назначение DHCP сервера - предоставить клиенту IP адрес и обеспечить ему загрузку файла,
именуемого bpbatch.P
с TFTP сервера. DHCP является расширением протокола BOOTP.
Если вы используете Bootix TCP/IP Bootprom, вы можете обойтись без DHCP
(используя любой старый BOOTP сервер).
В Windows NT, вы, вероятно, будете использовать "родной" DHCP сервер. Если вы используете
Bootix TCP/IP Bootprom, вы будете иметь возможность использовать специальный трюк,
определяя имя загрузочного файла (более подробную информацию получите с Bootix WWW сайта).
Если вы используете PXE Bootrom, вы должны будете определить имя загрузочного файла,
используя DHCP опцию 67. Также вы должны определить опции VendorClass (опция 60)
как "PXEClient" и VendorOptions (опция 43) как 01,04,00,00,00,00,ff
(см. ниже).
В Linux, лучший способ - стандартный DHCP сервер от Internet Software Consortium. Если вы используете PXE Bootrom, в дополнение к обычным опциям вы должны будете добавить следующие:
опция dhcp-class-identifier "PXEClient".
.опция vendor-encapsulated-options 01:04:00:00:00:00:ff;
.Если вы используете ISC DHCP 3.0, синтаксис слегка отличается. Здесь представлен пример DHCP 3.0-совместимой конфигурации:
option subnet-mask 255.255.255.0; default-lease-time -1; option space PXE; option PXE.mtftp-ip code 1 = ip-address; option PXE.mtftp-cport code 2 = unsigned integer 16; option PXE.mtftp-sport code 3 = unsigned integer 16; option PXE.mtftp-tmout code 4 = unsigned integer 8; option PXE.mtftp-delay code 5 = unsigned integer 8; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; host pctest { hardware ethernet 00:01:02:03:04:05; filename "bpbatch.P"; next-server 192.168.1.2; fixed-address 192.168.1.100; # BpBatch command-line argument : -i == interactive # You can also specify a script name (do not include the # trailing .bpb extension) option option-135 "-i"; # PXE specific options class "pxeclients" { match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; option vendor-class-identifier "PXEClient"; # At least one of the vendor-specific option must be set. We set # the MCAST IP address to 0.0.0.0 to tell the bootrom to still use # TFTP (address 0.0.0.0 is considered as "no address") option PXE.mtftp-ip 0.0.0.0; vendor-option-space PXE; } } }
В Solaris, вы можете использовать либо Internet Software Consortium DHCP сервер (доступный в Web), либо Solaris DHCP сервер (доступный с версии Solaris 2.5). Однако, поскольку Solaris DHCP сервер не предоставляет возможности вставить идентификатор класса клиента в его DHCP предложение, вы должны установить Proxy DHCP сервер. Более того, этот Proxy DHCP сервер должен располагаться на другом компьютере, так как Solaris DHCP сервер блокирует DHCP порт.
Мы подразумеваем предоставление неограниченного выделения времени клиенту удаленной загрузки. Не забывайте, что BOOTP/DHCP запрос связан подсетью. Если клиент и сервер не принадлежат одной и той же подсети, вы должны инсталлировать BOOTP/DHCP Relay агент на любой из компьютеров между двумя указанными. Далее подразумевается, что обе машины находятся в одной подсети.
Если вы используете PXE 2.0 bootrom, вы можете использовать только специфические для данной конфигурации опции, нумерованные с 128 по 135 для предоставления информации BpBatch. Опции с номерами, большими чем 135 игнорируются PXE 2.0 Bootrom. Опция 135 используется BpBatch для аргументов командной строки. Вы имеете 6 оставшихся опций для своих нужд
Назначение Proxy DHCP сервера - снятие ограничений некоторых DHCP серверов и предоставление специфических PXE расширений. Proxy DHCP сервер имеет смысл только для PXE Bootrom. Однако Proxy DHCP не является обязательным. Если ваш DHCP сервер посылает все запрашиваемые параметры, PXE Bootrom не будет искать Proxy DHCP (назывемый также BINL). Под "всеми запрашиваемыми параметрами" мы понимаем основные IP параметры (IP-адрес, шлюз, маска подсети, имя хоста) и специфические параметры поставщика PXE Bootrom (vendor-class - параметр 60 -- устанавливается в "PXEClient" и опции встроенные поставщиком устанвливаются в нечто значимое для PXE Bootrom. Вы можете использовать 01:04:00:00:00:00:ff, если не знаете что значимо для PXE Bootrom). Более полное описание дано ниже.
Поскольку BpBatch сам по себе достаточно мощный, вы не нуждаетесь в использовании киких-либо специфических DHCP расширений (меню и т.д.). Однако, если ваш DHCP сервер не способен оказывать минимальную PXE согласованность, вы нуждаетесь в Proxy DHCP сервере или ваш PXE Bootrom не будет поддерживаться в дальнейшем. Под минимальной PXE согласованностью мы понимаем установки опций VendorClass и VendorOptions (опции 60 и 43 соответственно).
В Linux и Solaris, вы можете запустить нашу Proxy DHCP программу, которая просто принимает
в качестве аргумента IP адрес TFTP сервера, имя загрузочного файла и необязательные аргументы,
и делает все за вас. Если соответсвующий порт DHCP на сервере уже был запрошен другим демоном,
proxy DHCP сервер будет настроен на порт 4011. В этом случае, необходимо , чтобы другой демон на
DHCP порту отвечал DHCP предложение с классом клиента PXEClient
так, чтобы PXE знал,
что он обязан перестроится на порт 4011.
Если вы хотите лучше понять PXE расширение для DHCP, имеется подробное описание, доступное на сайте Intel. Однако помните, что этот документ крайне путанный, поскольку этот протокол был расширен большим числом необязательных фаз, в целях предоставления максимальной гибкости. Ключом к понимнию этого может служить то, что все, в чем нуждается PXE клиент, это полный расширенный DHCP ответ. Если клиент получит только стандартное DHCP предложение, он будет ожидать дальнейшего, до получения:
PXEClient
.01:04:00:00:00:00
, это будет правильно интерпретироваться PXE Bootrom).TFTP сервер это очень простой файловый сервер. В своей основной версии TFTP использует 512-байтные блоки данных, которые крайне неэффективны. Bootix TCP/IP Bootprom и PXE Bootrom предоставляют использование расширенных блоков (1408 байт), которые значительно ускоряют передачу. Однако, это может работать только с расширенным TFTP сервером
В Windows NT мы подразумеваем использование Intel TFTP сервера, доступного из
Intel PXE Product Development Kit for Windows. Вы можете найти этот PDK на
http://developer.intel.com/ial/wfm/tools/pxepdk20/index.htm
.
Важное замечание: если вы планируете использовать Intel TFTP на Windows NT,
не забудьте переименовать ваш BpBatch загрузчик с bpbatch.P на bpbatch.B.
Это предпишет BpBatch использовать Intel-совместимые опции TFTP.
Intel PXE PDK также включает оценочный код PXE Bootrom для Intel EPRO100 серии сетевых адаптеров, вместе с необходимой флеш-утилитой для программирования bootrom с последним выпуском PXE.
В Linux, вы можете использовать tftp демон, включенный в большинство дистрибутивов,
но вы не будете иметь никакой поддержки для расширенного TFTP режима (1408 байтовые пакеты).
Мы советуем получить расширенный Bootix TFTP сервер, доступный в нашей дистрибутивной директории (
http://cuiwww.unige.ch/info/pc/remote-boot/soft/
),
имя файла incomtftpdlx.tar.gz
.
В Solaris, вы можете использовать расширенный Bootix TFTP сервер,
также доступный в нашей дистрибутивной директории (имя файла incomtftpdsun.tar.gz
).
Другой возможный выбор: Джон Мартин (John Martin) (j.martin@abdn.ac.uk
) портировал Linux
tftpd
для Solaris. Вы можете получить его из
http://www.csd.abdn.ac.uk/~jmartin/tftpd.tar.gz
.
Если вы предпочтете использование стандартного демона TFTP, удалите символ P
во всех расширениях
имен загрузочных образов, для того, чтобы указать Bootprom использовать только стандартный TFTP порт.
(Этот трюк был введен фирмой Bootix для TCP/IP Bootprom. Мы по-прежнему используем это как легкий способ
выбора порта TFTP по умолчанию для PXE Bootrom. )
Итак, если вы планируете использование стандартного TFTP сервера, удалите расширения имен файла
загрузчика BpBatch (например bpbatch). Если вы планируете использование Bootix TFTP сервера с поддержкой
1408 байтовых пакетов на порту 59, имя файла вашего загрузчика должно иметь расширение P
. И наконец,
если вы планируете использование Intel TFTP сервера (или один из Bootware), переименуйте ваш загрузчик
в bpbatch.B
.
В начале мы установим часть, общую для всех операционных систем, например интерпретатор пакетного файла. Затем, для каждой операционной системы мы пройдем следующие шаги:
Наши примеры подразумевают, что вы имеете жесткий диск объемом 1,4 Гб или более. Если вы имеете меньший диск, уменьшите размер разделов, но помните, что вы должны оставить несколько сотен мегабайт нераспределенного пространства (это означает, что последний раздел не должен доходить до последнего цилиндра) чтобы оставить место для специального кэш-раздела. Более того, этот кэш всегда начинается на цилиндре, следуещем за последним распределенным, так, если вы не используете один и тот же суммарный размер для всех ваших тестов, вы будете загружать несколько раз одни и те же файлы (кэш будет автоматически очищаться).
Не отчаивайтесь. Если вы не можете заставить это заработать, во-первых посмотрите в секции
Troubleshooting, возможно ваша проблема уже решена (получите последнюю версию из Web).
Затем, посмотрите на форуме BpBatch. Возможно, кто-то другой имел ту же проблему, и его ответ
может быть найден на этом форуме. URL форума :
http://cuiwww.unige.ch/info/pc/remote-boot/forum/
.
Если это все еще не работает, подумайте о наблюдении за сетевым траффиком для разрешения проблем
с сетью (используйте tcpdump
в Linux или snoop
в Solaris) Если вы действительно
не можете заставить это заработать, вы можете отправить E-mail на support@bpbatch.org
. Если ваша проблема
прямо относится к конфигурации удаленной загрузки, мы попытаемся решить вашу проблему.
Получите програмное обеспечение BpBatch
либо как .zip
, либо как tar.gz
.
Исполнимые файлы доступны на
http://cuiwww.unige.ch/info/pc/remote-boot/soft/bpb-exe.zip
.
http://cuiwww.unige.ch/info/pc/remote-boot/soft/bpb-exe.tar.gz
. В директории /tftpboot
на сервере, разместите следующие три специальных загрузочных
образа, которые вместе образуют наш предзагрузочный интерпретатор пакетных файлов (в следующих строках,
мы используем bpbatch.P
как имя загрузочного образа. Если вы не используете Bootix TFTP сервер,
переименуйте имя загрузчика либо в bpbatch
(стандартный TFTP), либо в bpbatch.B
(Intel/Bootware TFTP сервер)):
bpbatch.P
, динамический загрузчик (сохраните регистр и прочитайте секцию
о TFTP сервере для выбора соответствующего расширения). bpbatch.ovl
, перемещаемый загрузчик.bpbatch.hlp
, файл он-лайновой помощи."bpbatch.P"
. Определите опцию поставщика
155 (десятичное) со значением "-i"
(для стандартного DHCP сервера, это делается следующей командой: option option-155 "-i";
).
Это интерпретируется bpbatch
как командная строка, и -i
означает "интерактивный".
Загрузите клиентский компьютер. Вы должны на короткое время увидеть:
DHCP
, пока клиент ожидает ответ DHCP.TFTP
, пока клиент ожидает первый TFTP пакет.Loading BpBatch
пока загрузчик загружает интерпретаторhelp
.
Заметьте, что вы можете запустить тот же самый интерпретатор с DOS и Linux при помощи программы
MrBatch
. При этом имеется очень мало различий (Linux версия не имеет графической поддержки
и DOS версия может только отправлять BOOTP и TFTP запросы, если Bootrom не скрыт операционной системой).
Может быть хорошей идеей прочитать сейчас секцию о синтаксических правилах BpBatch и в особенности параграфы в File References и в The Cache Filesystem. Это поможет вам понять примеры.
Как только все операционные системы будут установлены, вы сможете сделать меню, дающее пользователям возможность выбора желаемой ОС. Вы должны быть способны обнаружить сами, как сделать такое меню. Все необходимые команды описаны в конце этого документа.
Попытайтесь напечатать LogVars
. Вы получите около тридцати перечисленных переменных.
Приближенно, первые - установки BpBatch, затем следуют все параметры, выделенные из ответа BOOTP/DHCP,
и последняя переменная - список размеров дисков, в мегабайтах.
Напечатайте GetPartitions part
, затем LogVars
снова. Появиться еще одна
переменная, содержащая список определенных разделов на вашем первом жестком диске. Подразумевается,
что первый раздел BIGDOS, FAT32 или LINUX-EXT2, попробуйте LogDir "{:1}"
чтобы
получить содержимое корневого каталога, затем LogDir "{:1}/usr"
если имеется
usr
каталог. Вы можете даже попытаться LogTree "{:1}/etc"
чтобы получить дерево каталогов.
Разместите GIF файл (формат GIF-87a, с чередованием, или нет, но НЕ GIF-89a) на вашем TFTP
сервере. Мы предполагаем, что этот файл называется image.gif
.
Вы можете копировать его откуда хотите с помощью следующей команды: Copy "image.gif" "{:1}/temp/image.gif"
. Или вы можете использовать его
непосредственно с сервера. Теперь напечатайте Logvars "V*"
и посмотрите
значение переменной VESA
. Если она установлена в On
, что
наиболее вероятно, это означает, что вы имеете VESA-совместимый видео адаптер.
Вы можете получить список возможных видеорежимов, используя команду Echo ""
.
Чтобы показать ваше изображение, попробуйте следующую команду: DrawGif "image.gif"
. Это изображение появится в верхнем левом углу экрана. Вы можете нарисовать это в другом месте,
определяя X и Y координаты после имени изображения. Вы можете нарисовать текст командой
DrawText 200 200 "Hello world" yellow
. Или нарисовать пустое окно командой
DrawWindow 200 200 300 150
. Чтобы вставить заголовок, когда вы создаете новое окно,
пробуйте DrawWindow 200 200 300 150 "My Window"
.
Когда вы устанете от графического режима, просто напечатайте CloseGraph
.
Замечание о графике: по умолчанию, все графические процедуры работают в VESA режиме 800x600 (с 256 цветами), который является первым полем в переменной VESA-Modes. Если вы хотите использовать другой видеорежим, измените эту переменную таким образом, чтобы требуемый видеорежим был первым полем в списке.
Теперь возьмите текстовый редактор, и создайте файл с именем test.bpb
в директории
tftpboot
со следующим содержанием:
:again
DrawWindow 150 200 400 160 "Identity check"
TextAttr Black LightGray
At 15,20 Print "Username : "
Input username 8
At 17,20 Print "Password : "
Getpasswd userpass 8
if "" != "smith" goto again
if not "" match-passwd "BpR8oiIlRR9bo" goto again
clear
DrawWindow 200 200 150 100 green blue "Congratulations"
DrawText 220 250 "You got it !" yellow
WaitForKey 3
CloseGraph
interact
В вашей конфигурации BOOTP/DHCP, измените опцию 155 с "-i"
на "test"
, и перегрузите клиентский компьютер. Этот небольшой скрипт запуститься
автоматически, и запросит у вас имя пользователя и пароль. Если вы не напечатаете
smith
и justdoit
, вы не сможете загрузить компьютер. Позднее вы узнаете,
как использовать Unix, NT или Radius сервер для проверки действительности пользовательского имени.
Для установки Linux, вы будете должны загрузится с дискеты, предоставляемой с дистрибутивом RedHat Linux.
BpBatch включает команду, которая может перенаправить загрузку на дискету: FloppyBoot
.
Установите RedHat Linux на вашего клиента, с сетевой поддержкой, и любыми желаемыми пакетами. Вы можете захотеть перекомпилировать ядро, чтобы улучшить взаимодействие с вашей аппаратурой, но в этом нет необходимости.
Вероятно, будет хорошей идеей включить поддержку BOOTP в ядро, так, чтобы не определять клиентский IP адрес вручную.
Чтобы уменьшать сетевую загрузку, Вы можете также захотеть установить файловый кэш для кэширования
на жестком диске файлов, загруженных посредством NFS. Прближенно, принцип файлового кэша - то, что всякий раз,
когда встречается символьная ссылка от подкаталога кэша, она заменяется своим адресатом. Если адресат -
самостоятельно подкаталог, каждый элемент подкаталога становится символьной ссылкой к исходному элементу
"чужой" файловой системы. Файловый кэш был написан Unifix GmbH, и - часть Unifix Linux 2.0. Он свободно
распространяется, и Вы можете получить необходимые файлы по адресу
http://cuiwww.unige.ch/info/pc/remote-boot/soft/filecache.tar.gz
.
Чтобы использовать файловый кэш, вы должны
patch-filecache
),
разрешите поддержку файлового кэша, через make config
или так, как Вы предпочитаете,
и перекомпилируйте ядро/sbin
./mnt/nfs
(используя mkdir
).filecache.conf
в /etc
. Этот файл содержит следующие строки:
Max 100 MB 50 % # Cache /mnt/nfs/usr /usr Cache /mnt/nfs/opt /opt
/usr
и /opt
на сервер, экспортируйте их только для чтения с anon=0
(для разрешения root доступа) и установите их под /mnt/nfs
(добавьте строку для этого /etc/fstab
)/usr
в /usr.orig
/usr
с /mnt/nfs/usr
/opt
в /opt.orig
/opt
с /mnt/nfs/opt
/usr
и /opt
не пусты и содержат правильные каталоги./usr.orig
и /opt.orig
.filecache.init
в /etc/rc.d/init.d
./etc/rc.d/rc3.d/S35filecache
с /etc/rc.d/init.d/filecache.init
.Копируйте ваш сжатый образ ядра (zImage
, bzImage
, vmlinuz
или так, как вы его назвали) в каталог /tftpboot
на сервере как linux.krn
.
Если вы должны были отключить bootprom от PC, можете теперь включать его снова.
Когда BpBatch
запуститься, напечатайте LinuxBoot "linux.krn" "root=/dev/hda1 BOOT_IMAGE=linux"
(предполагается, что корень ext2 файловой системы находится на первом разделе). Альтернативно, если
вы установили вашу конфигурацию на компьютере без bootrom, пусть он загружается при помощи загрузчика,
который вы установили (lilo, ...). Но в последнем случае, если вы хотите, чтобы файловый кэш работал,
вы должны иметь явно установленное ядро с поддержкой файлового кэша в правильном месте.
Ждите, пока система не будет готова. Если вы установили файловый кэш, можете отметить,
что /usr
раскрылся в каталог с некоторым символьными ссылками и некоторыми уже раскрытыми каталогами.
Теперь запустите программы, которые конечные пользователи будут использовать большую часть времени,
чтобы загрузить их раз и навсегда на жесткий диск.
Вы можете все еще делать добавления к вашей конфигурации, так же, как на любой автономной linux станции.
Когда вы удовлетворены вашей конфигурацией, войдите как root
,
перейдите к /tmp
каталогу, и выполните нашу mrzip
программу.
MrZip
- интерпретатор команд, подобный BpBatch
,
но он может понимать большее количество команд чем BpBatch
.
В частности он может понимать следующие команды:
showlog
filter -"tmp/*"
filter -"var/log/*"
fullzip "/" "/tmp/linux.imz"
Следующие команды создадут дисковый образ в /tmp/linux.imz
. Переместите его в каталог
/tftpboot
на сервере. Затем копируйте следующий пакетный файл в /tftpboot/linux.bpb
:
hidelog
setpartitions "linux-ext2:992 linux-swap:32"
fullunzip "linux.imz" 1
clean 2
linuxboot "linux.krn" "root=/dev/hda1 BOOT_IMAGE=linux"
Параметр BOOT_IMAGE
остается для совместимости с lilo
для
RedHat 5.1 и последующего rc.sysinit
.
Ваша конфигурация удаленной начальной загрузки linux готова! Вы можете теперь или устанавливать
BOOTP-OPTION-155 в "linux"
, или напечатать include "linux.bpb"
из BpBatch, чтобы проверить это.
Если Вы хотите позже модернизировать программное обеспечение, устанавливать исправления ошибок, исправления защиты, проделайте следующее:
На клиентском компьютере, загрузитесь с вашей первичной DOS дискеты (либо удалите bootrom, либо
напечатайте FloppyBoot
в BpBatch).
Форматируйте раздел dos на вашем жестком диске с опцией /S
для размещения операционной системы на нем. Размер этого раздела не важен, поскольку
дисковые архивы, создаваемые MrZip
файл-ориентированные, и поэтому не зависят от размера раздела.
Создайте DOS
директорию, копируйте DOS в нее. Установите ваш первичный сетевой клиент
(например Microsoft LanManager), Windows 3.1, и все остальное. Если вы используете Microsoft LanManager,
не используйте DHCP для IP конфигурации, поскольку это очень плохая реализация, которая почти наверняка
потерпит неудачу с реальной сетевой загрузкой. Чтобы сделать это, добавьте следующие строки в ваш файл
protocol.ref
в секцию, которая загружает tcptsr
(конечно, замените xxx
вашими реальными IP параметрами):
IPADDRESS0 = xxx xxx xxx xxx SUBNETMASK0 = 255 255 xxx xxx DEFAULTGATEWAY0 = xxx xxx xxx xxx DISABLEDHCP = 1
Не бойтесь использовать EMM386 для оптимизации использования памяти, и даже включить область,
занимаемую ПЗУ вашей сетевой карты, поскольку она не используется в это время. Но осторожно
исключите ОЗУ сетевой карты, иначе вы несможете соединится с вашим сервером. Используйте
NOEMS
параметр.
Если вы хотите быть уверены, что клиентский компьютер не сможет использоваться без
действительного имени пользователя, воспользуйтесь нашим nobreak
псевдо-драйвером, (доступным на
http://cuiwww.unige.ch/info/pc/remote-boot/soft/nobreak.zip
)
и запустите его в начале вашего
config.sys
. Затем добавьте что-то подобное этому в ваш autoexec.bat
:
rem -- Мы используем файл c:\logged как признак del c:\logged >nul
:loginneeded
cls
echo Please type in your login name and password
echo.
net logon *
rem -- Сценарий входа должен создавать файл c:\logged
if not exist c:\logged goto loginneeded
del c:\logged
rem -- теперь снова разрешим break echo Yes >NOBRK
Убедитесь, что ваш клиент загружается нормально, перегрузите клиента и оцените следующие команды
в интерактивном режиме BpBatch
:
HideBootprom HdBootПК загрузится с жесткого диска, как если бы BpBatch не был виден.
На сервере создайте разделяемый ресурс, называемый, для примера admin
, в который
вы будете помещать некоторые вещи для администрирования системы. Если сервер это Unix машина,
имеется удобная возможность разместить в admin
ссылку на директорию /tftpboot
так, что вы сможете размещать образы в ней прямо с клиента. В директории admin
, создайте поддиректорию /utils
и разместите в ней следующие
файлы:
mrbatch.exe
, DOS версию BpBatch
.mrzip.exe
, DOS версию программы для построения образа диска.bpbatch.hlp
, он-лайновый файл помощи.zipdos.mrz
, который содержит команды, необходимые для формирования образа
DOS, подобно этому:
showlog
filter -"lanman.dos/lmuser.ini"
filter -"temp/*"
filter -"*.swp"
fullzip "c:/" "L:/tftpboot/dos.imz"
Теперь возвратитесь к вашему клиенту, смонтируйте том admin
на диск
L:
, перейдите к вашему каталогу utils
и напечатайте следующую команду:
mrzip -b zipdos
Минутой позже, вы будете иметь новый файл в подкаталоге
/tftpboot
на сервере, называемый dos.imz
, который является сжатым образом
вашего жесткого диска. Копируйте следующий пакетный файл в /tftpboot/dos.bpb
:
hidelog
setpartitions "bigdos:1024"
setbootpart 1
fullunzip "dos.imz" 1
hidebootprom
hdboot :1
Ваша конфигурация с удаленной начальной загрузкой DOS готова! Вы можете теперь или устанавливать
BOOTP-OPTION-155 в "dos"
, или напечатать include "dos.bpb"
из BpBatch, чтобы проверить это.
Если вы хотите настроить некоторые установки в соответствии машине, обычно IP параметры настройки,
поскольку Micro DHCP насыщена ошибками, вы можете установить BpBatch
так, чтобы
изменять некоторые файлы перед загрузкой. Сначала перейдите в lanman.dos
каталог,
и дайте команду
copy *.ini *.refЗатем отредактируйте
.ref
файлы, и замените все фиксированные параметры с BOOTP
именами переменных, как в следующих примерах: computername = ipaddress0 = subnetmask0 = defaultgateway =Затем перестройте дисковый образ как указано ранее. Обратите внимание, что для параметров IP, мы не используем BOOTP переменные непосредственно, потому что в этом случае LanManager нуждается в числах, разделенных запятыми взамен чисел, разделенных точками. Измените
dos.bpb
в соответствии со следующим:
hidelog
setpartitions "bigdos:1024"
setbootpart 1
fullunzip "dos.imz" 1
set MS-IPAddress=""/.= /
set MS-IPSubnet=""/.= /
set MS-IPRouter=""/.= /
patch "{:1}lanman.dos/protocol.ref" "{:1}lanman.dos/protocol.ini"
patch "{:1}lanman.dos/tcpputils.ref" "{:1}lanman.dos/tcputils.ini"
patch "{:1}lanman.dos/lanman.ref" "{:1}lanman.dos/lanman.ini"
hidebootprom
hdboot :1
Если вы предпочитаете, вы можете также помещать .ref
файлы в каталог /tftpboot
на сервере вместо его помещения в дисковый образ.
Мы предпочитаем иметь возможность легко изменять конфигурацию компьютеров без перестройки
образа. Чтобы сделать это, копируйте ваш autoexec.bat
и config.sys
как autoexec.ref
и config.ref
в /tftpboot
на сервере, и добавьте следующий две строки к пакетному файлу выше:
patch "autoexec.ref" "{:1}autoexec.bat" patch "config.ref" "{:1}config.sys"Вы можете тогда свободно изменять файлы и даже настраивать их с машинно-зависимыми значениями, полученными от BOOTP.
После создания любых изменений в конфигурации клиентской машины, не забудьте восстанавливать
дисковый образ, используя mrzip
, если вы хотите сохранить ваши изменения.
Если вы позже хотите добавить новое программное обеспечение или изменять что - нибудь еще, проделайте следующее:
В предыдущей версии данного документа мы использовали серверную инсталляцию Windows 95/98 от Microsoft, но это было действительно большое страдание и небольшой выигрыш:
http://cuiwww.unige.ch/info/pc/remote-boot/win95old/win95old.html
)
и переключились на нашу новую концепцию диск-ориентированной удаленной загрузки. В основном, конфигурация
для Windows 95/98 теперь почти также проста, как конфигурация для DOS.
Установите обычного клиента Windows 95/98, либо стартовав с временного места как объяснено в конфигурации DOS клиента, либо стартовав из DOS клиента и инсталлируя через сеть (по вашему желанию). Вы также можете стартовать с предустановленной Windows машины, но вы вероятно будете иметь меньше информации о том, что находится на вашем жестком диске.
Проделайте все, что описано выше для DOS клиента. Обычно нет необходимости использовать EMM386 с
Windows 95/98. Если вы используете Windows 98 или Windows 95 OSR2 (псевдонимы: MSWIN 4.1, Windows 95
service pack 1, Windows 95 with Internet Explorer), вам нужно добавить следующую строку в секцию
[Options]
файла
MSDOS.SYS
(да, это текстовый файл):
AUTOSCAN=0
Это даст Windows знать, что вы не хотите автоматически запускать ScanDisk при загрузке.
Если вы хотите уменьшить загрузку сети и сервера (что повысит производительность вашей системы) пока
все программное обеспечение сохраняется на сервере, вы можете установить превосходный Shared LAN Cache
от Measurement Techniques, Inc (смотрите
http://www.lancache.com
). Это программное обеспечение запускается на каждом клиентском компьютере и кэширует на локальном жестком
диске все данные, получаемые из сети. Даже MS Office стартует быстрее , когда вы его запускаете во
второй раз. Вам нужна одна лицензия на клиентский компьютер, но это не очень дорого, и фирма предлагает
специальные цены для университетов и колледжей. Лучший способ сделать это - посетить их Web сайт и
загрузить свободную оценочную копию.
В этой точке, если вы используете сервер Samba, вам, возможно, придется отключить кодирование паролей,
чтобы иметь возможность смонтировать позже том admin
. Вы можете делать это, добавляя ключ
системного реестра EnablePlainTextPassword
формата DWORD со значением 1 в разделе
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
Ваш MrZip сценарий будет назван zipwin.mrz
и будет содержать:
showlog
filter -"windows/schedlog.txt"
filter -"windows/msimgsiz.dat"
filter -"*/index.dat"
filter -"*.swp"
filter -"*.tmp"
filter -"temp/*"
fullzip "c:/" "L:/tftpboot/win.imz"
Чтобы построить образ, смонтируйте том admin
как диск
L:
, перейдите в ваш каталог utils
и наберите следующую команду:
mrzip -b zipwin
Через несколько минут, вы будете иметь новый файл в подкаталоге /tftpboot
на сервере, названный win.imz
, который является сжатым образом вашего
жесткого диска. Если ваш сжатый образ был больше чем 87 МБ, вероятно, он будет разбит на два или
больше фрагмента. Эти фрагменты будут автоматически загружены один за другим когда необходимо. Обратите
внимание, что образ больше чем 87 МБ будет обычно требовать для загрузки больше одной минуты для распаковки
и может раздражать ваших пользователей. Наш образ Windows 95/98 - величиной только 70 МБ, потому что
большинство программных средств установлено на сервере и загружается только по требованию. Имеется
только небольшое количество программного обеспечения, которое вы действительно должны установить
локально. Если вы заботитесь об этом так же, как и мы, вы должны суметь распаковать образ и восстанавливать
весь диск меньше чем за одну минуту.
Копируйте следующий пакетный файл в /tftpboot/win.bpb
:
hidelog
setpartitions "bigdos:1024"
setbootpart 1
fullunzip "win.imz" 1
hidebootprom
hdboot :1
Ваша конфигурация Windows 95/98 с удаленной начальной загрузкой готова! Вы можете теперь либо
установить BOOTP-OPTION-155 в "win"
, либо набрать include "win.bpb"
из BpBatch, чтобы проверить это.
Большое различие между Windows 3.1 и Windows 95/98 - то, что последний включает код для Plug-and-play, то есть автоматического обнаружения ваших аппаратных средств. Это не плохая вещь сама по себе, но неприятность состоит в том, что она зачастую слишком чувствительна, и поэтому иногда приводит к ошибкам.
Если вы пытаетесь запустить другого клиента с точно таким же образом начальной загрузки, вероятно вы получите несколько сообщений в течение запуска, сообщающих о том, что Windows обнаружила новые аппаратные средства: новая звуковая плата, новый жесткий диск, новая сетевая плата, и даже новая мышь ... Для этого может быть две причины:
Сетевая плата - это тот элемент, которого вы не можете избежать в различиях между компьютерами. PCI платы обычно не мешают, проблемы возникают с ISA plug-and-play . Беда в том, что код plug-and-play для нашей SMC EtherEZ платы "подвешивает" компьютер. Единственное решение состоит в том, чтобы позволить Windows 95/98 считать, что она уже "знает" сетевую плату, и нет необходимоcти обращаться к plug-and-play. Уловка состоит в том, чтобы автоматически вставить элемент для сетевой платы в системный реестр Windows 95/98 перед ее стартом. Обратите внимание, что этот трюк больше не нужен с большинством PCI плат.
Переместите autoexec.bat
на сервер как описано выше для DOS. Отредактируйте его (на сервере)
и добавьте следующие строки:
rem --- Patch Windows registry in order to avoid plug-and-play detection regedit /L:c:\windows\system.dat /R:c:\windows\user.dat c:\temp\patch.reg
Regedit
- стандартная программа Windows, которая позволяет вам просматривать системный
реестр, если вы запускаете ее из Windows, или позволяет выполнять простые операции с системным реестром,
если Вы вызываете ее из DOS. Запустите regedit
под Windows, найдите вашу сетевую плату,
обычно под HKEY_LOCAL_MACHINE\Enum\ISAPNPИ экспортируйте эту ветвь, используя меню File. . Это создаст текстовый файл, который вы должны разместить как
patch.ref
в каталог /tftpboot
на сервере.
Отредактируйте этот файл, и выясните, где сохранен MAC-адрес платы (сделайте это на двух различных
машинах, и сравните файлы, если вы не можете найти его самостоятельно). Замените их образцом в форме
.
Затем добавьте строки в сценарий win.bpb
подобно этому:
set macid = "" patch "patch.ref" "{:1}temp/patch.reg"(проделайте все необходимые манипуляции со строками для установки MACID, если это не точно MAC-адрес клиента). Это - все, ваши клиенты больше не должны пытаться определять сетевую плату.
Отметим еще раз, в целом это не нужно при использовании PCI сетевых адаптеров. Кстати, мы можем
использовать тот же самый механизм для автоматически конфигурирования имени хоста, которое Windows,
по-видимому, не принимает во внимание при конфигурировании через DHCP. Мы только добавляем следующую
строку к нашему patch.ref
файлу:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
"ComputerName"=""
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP]
"HostName"=""
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ComputerName\ComputerName]
"ComputerName"=""
Используя этот несложный трюк с системным реестром, ваша конфигурация обычно должна быть переносима на все машины с подобными конфигурациями. Если Вы не можете избежать того, что Windows обнаруживает некоторые аппаратные средства как новые на одной из машин, попытайтесь перестроить дисковый образ с этой машины. Новый образ будет включать конфигурацию системного реестра, определенную для этой машины, что надежно решит проблему
Если вы позже захотите модернизировать программное обеспечение, установить исправления ошибок и исправления защиты, проделайте следующее:
Мы не используем Windows NT для клиентских компьютеров с удаленной начальной загрузкой, но мы проверили нашу систему, чтобы гарантировать, что это также работает. И это работает.
Поскольку наши утилиты в настоящее время не поддерживают NTFS (мы не имеем ни документации, ни времени, чтобы сделать это, но я был бы счастлив помочь любому, кто заинтересован в этом), вы должны будете установить NT на FAT16 (просто не конвертируйте ваши разделы в NTFS при установке)...
Скопируйте ваш сценарий начальной загрузки win.bpb
в winnt.bpb
.
Измените setpartitions
строку в winnt.bpb
следующим образом:
setpartitions "BIGDOS:512 BIGDOS:512"Затем загрузите Windows, используя этот сценарий, и установите вашего NT клиента на диске C. Не волнуйтесь пока относительно второго раздела. Не устанавливайте слишком много компонентов, иначе вы получите большой и медленно распаковывающийся образ. Удалите Windows с диска C, послольку вы не нуждаетесь в этом при использовании Windows NT образа (меню начальной загрузки обрабатывается bootrom, а не загрузчиком NT).
Перезагрузите ваш компьютер, не переписывая жесткий диск, то есть не выполняя winnt
сценарий, только
hidebootprom hdbootВаша NT станция должна стартовать правильно. Сделайте любую необходимую настройку.
Неприятность с Windows NT состоит в том, что прямой дисковый доступ запрещен ядром. Это означает,
что MrZip
даже не будет способен читать загрузочные секторы. Лучший способ построить
образ состоит в загрузке Windows 95/98 и выполнении MrZip
из окна DOS. Чтобы сделать это, измените winnt.bpb
сценарий так, чтобы образ Windows
был восстановлен не на первом, а на втором разделе:
hidelog
setpartitions "BIGDOS:512 BIGDOS:512"
setbootpart 2
fullunzip "win.imz" 2
hidebootprom
hdboot :2
(Если Вы имеете любую дополнительную заплату, замените "{:1}"
на
"{:2}"
). Загрузившись с этим сценарием, вы получите работающую Windows, но новый диск
D:
должен быть доступен, и содержать Windows NT.
Постройте ваш дисковый образ как обычно (но диска D:
, конечно), и сохраните его как
winnt.imz
в каталоге /tftpboot
на сервере.
Отредактируйте в последний раз winnt.bpb
сценарий подобно этому:
hidelog
setpartitions "BIGDOS:512 BIGDOS:512"
setbootpart 1
fullunzip "winnt.imz" 1
clean 2
hidebootprom
hdboot :1
Ваш конфигурация Windows NT с удаленной начальной загрузкой готова. Конечно, если Вы не хотите иметь
два раздела, Вы можете установить один раздел вместо этого. Но когда вы соберетесь перестроить образ,
вы будете должны будете снова установить второй раздел для загрузки Windows 95.
Если вы захотите позже модернизировать программное обеспечение, установить исправления ошибок и защиты, проделайте следующее:
winnt.bpb
: закомментируйте clean
и fullunzip
, "winnt.imz" снимите комментарий с fullunzip
"win.imz".Эта секция содержит наиболее часто встречающиеся проблемы.
Вероятно, вы используете стандартный TFTP сервер, и он не может обработать более чем 65535 пакетов по 512 байт (или даже 32767 пакетов для Solaris сервера) Если так , ваш образ должен быть фрагментирован на части не более 30 МБ (или 15 Мб для Solaris) Смотрите ниже CopyArchive для инструкций по фрагментации существующего образа. Если вы используете стандартный сервер, вы должны согласиться инсталлировать Bootix или Intel TFTP сервер. Смотрите следующий вопрос об этом сервере
Это проблема TFTP. Расширение имени файла вашего загрузчика должно быть соответственно установлено
(читает раздел относительно TFTP серверов). Если вы используете Bootix TFTP сервер с
-s 1408 59
опцией, ваш загрузчик должен быть назван bpbatch.P
.
Если вы используете Intel или Bootware TFTP сервер с поддержкой опции TFTP blksize, переименуйте
ваш загрузчик в bpbatch.B
. Наконец, если вы используете стандартный TFTP сервер, переименуйте
ваш загрузчик в bpbatch
(без расширения). В этом последнем случае BpBatch будет использовать
512-байтовые пакеты вместо 1408-байтовых. Это ограничит размер фрагментов до 32МБ (внутреннее TFTP
ограничение) вместо 87МБ. См. выше вопросы для проблем относительно 512-байтовых пакетов.
Имеются три возможных причины. Или образ действительно разрушен на сервере (попытайтесь использовать MrZip, чтобы видеть, имеет ли это место), или передача файла потерпела неудачу из-за TFTP таймаута, или из-за несовместимого протокола.
TFTP таймаут происходит, когда сеть сильно загружена (например, если ы пытаетесь загрузить
огромный образ более чем четырьмя клиентами одновременно). В этом случае, BpBatch
не делает бесконечных попыток, потому что это не помогло бы. Выключите несколько компьютеров и
попытайтесь снова с не более чем четырьмя компьютерами (или возможно даже тремя). Если вы часто должны
загружать образы на большое количество компьютеров, вы можете опробовать наш специальный Broadcast TFTP
сервер (см. раздел, посвещенный этому).
Ошибка несовместимости протоколов вызвана использованием стандартного TFTP сервера (обычно встроенного на вашем UNIX сервере) в то время как BpBatch запрашивает работу с расширенным TFTP. Если вы используете стандартный TFTP сервер, вы должны удалить .P расширение (см. объяснение в следующем вопросе).
Если вы используете Bootix TFTP сервер,
пробуете добавить -s 1408 59
к командной строке. Если Вы не используете расширенный TFTP
сервер, удалите .P
расширение из имени файла BpBatch на сервере и в файле bootptab
.
Детальное объяснение: эта проблема происходит, если вы не установили расширенный TFTP сервер, но
использовали bpbatch.P
как значение имени файла начальной загрузки DHCP/BOOTP. BpBatch
будет в действительности пытаться подключиться к Bootix TFTP серверу, когда имя файла начальной загрузки
заканчивается расширением .P
. Чтобы решить эту проблему, вы можете или удалить .P
расширение в конце имени файла начальной загрузки (это предпишет BpBatch использовать стандартный TFTP)
или устанавить расширенный TFTP сервер. Альтернативно, вы можете устанавить Intel TFTP сервер и
переименовать загрузчик в bpbatch.B
. Обратите внимание: для Bootix TFTP сервера, чтобы должным
образом работать с расширенными возможностями TFTP, вы должны добавить -s 1408 59
к
командной строке.
Возможно, ваш компьютер имеет плохую
поддержку VESA. Попробуйте дать параметр командной строки -v или устанавить VESA переменную в "OFF"
.
Мы используем VESA 1.1 функцию для прокрутки. Если ваш видеоадаптер не поддерживает 1.1 VESA, забудьте об этом. Если прокрутка выполняется для одной страницы, а затем воспроизводит странный рваный шаблон, не волнуйтесь. Это - известная ошибка, я буду устранять ее, как только буду иметь время для этого (VESA прокрутка не столь необходима ...).
Когда файл в кэше разрушается внешней программой,
он автоматически удаляется из кэша. Когда файл в кэше записан не полностью (если компьютер был выключен
в течение передачи файла), он также автоматически удаляется. Но если сервер передает разрушенный файл
или если передача прерывается со стороны сервера, возможно, что этот файл останется в кэше. Вы можете
очистить кэш просто держа обе клавиши SHIFT нажатыми в то время как BpBatch
обращается
к кэшу впервые. Альтернативно, вы можете испытать clean -1
в диалоговом режиме.
Это - не ошибка. Выход - не команда. Не имеется никакой команды выхода, потому что нет никакого смысла выйти из сценария начальной загрузки без загрузки. И MrBatch - действительно та же самая программа как BpBatch. Что Вы можете делать, так это вызывать HdBoot вместо этого. Это имеет смысл, и версия DOS чисто выйдет вместо перезагрузки. Обратите внимание, что Вы можете выйти из DOS в любое время, нажимая Ctrl-Break. Это восстановит все перехваченные прерывания перед оставлением.
Если вы пробуете напечатать что-то и немедленно перейти в
диалоговый режим, вы не сможете увидеть ваш текст. Это происходит потому, что ваш текст был написан на
runtime экране, а команда Interact
переключила дисплей на экран Log.
Достаточно поместить GetKey
после команд печати, и вы увидите напечатанный текст.
Malloc failed
MrZip нуждается в достаточном количестве
обычной памяти для выполнения. Если вы сталкиваетесь с этой проблемой, сначала убедитесь, что вы
выгрузили bootrom либо использовав команду HideBootprom
либо использовав Bootix's bputil
.
Если вы выполняете MrZip из чистого MS DOS (не из DOS-сессии Windows 95/98), вы должны использовать
EMM386, чтобы загрузить сетевые драйверы в верхнюю память, чтобы максимально возможный
объем обычной памяти. Из окна DOS-сессии Windows обычно не встречается никаких проблем (если вы не
оставили ваших старых 16-разрядных драйверов в вашем autoexec.bat
, когда устанавливали
Windows).
Эта ошибка уже была устранена однажды. Получите
самый последний выпуск MrZip
. Если проблема сохраняется, попытайтесь построить ваш образ с
переменной Trace
установленной в "ON"
(и обычно PauseLog
установленной в "OFF"
); это позволит вам обнаружить, какой файл вызывает эту проблему.
Пришлите детальное сообщение об ошибке.
MrZip вероятно пробует прочитать блокированный,
открытый или специальный файл, например файл подкачки Windows. Такие файлы не должны обычно включаться
в образ и должны быть отфильтрованы (использованием команды filter
).
Также возможно, что операционная система обманывает вас. Если MrZip не сообщает вам, какой файл вызывает
проблему, попытайтесь построить ваш образ с переменной Trace
установленной в "ON"
(и обычно PauseLog
установленной в "OFF"
).
Вы можете также попробовать использовать прямой дисковый доступ (то есть обращаться к исходному разделу не
как к "C:"
или "/"
, а как к "{:1}"
каким бы ни был этот раздел).
Использование прямого дискового доступа обычно медленнее, потому что мы имеем меньшее количество буферов
чем операционная система, но это может быть иногда более надежно.
Дисковые образы сохраняются в специальной области кэша и не должны быть перезагружены, если они не изменились на сервере. Однако, поскольку область кэша всегда начинается после последнего используемого раздела, изменение полного размера разделов переместит расположение кэша и таким образом уничтожит его содержимое. Другая возможная причина исчезновения файла из кэша - то, что предыдущий файл вырос больше чем в полтора раза от своего начального размера. Этот файл мог бы быть перезаписан и требует повторной загрузки. Это почти никогда не должно происходить. Третья возможная причина - слишком маленькая область кэша. Если свободное пространство, оставленное вне разделов - меньше чем в полтора раза превышает сумму размеров всех сжатых образов, только последние использовавшиеся образы будут присутствовать в кэше, а другие должны будут перезагружаться по требованию.
Этот дистрибутив предполагает, что
Linux был загружен используя lilo
и проверяет BOOT_IMAGE
параметр командной
строки (в /etc/rc.d/rc.sysinit
). Просто добавьте это в вызове linuxboot
или
измените ваш rc.sysinit
.
Linux DHCP клиент - программа, которая динамически изменяет адрес IP клиента в соответствии с предложением DHCP. Если адрес предоставляется навсегда (неограниченное время аренды), DHCP клиент только устанавливает адрес, и возвращается (это - то, что мы ожидаем). Однако, если время аренды ограничено, DHCP клиент должен остаться загруженным и просить о новых адресах каждые несколько минут. И если DHCP клиент не возвращается, MrBatch никогда не будет загружен ... Решение состоит в том, чтобы предоставить неограничное время аренды (иногда кодируется как -1).
Эта проблема проиходит на AMI BIOS датированной 94/07/25. Мы исследовали немного, и не нашли никакого решения. Кажется, что эта проблема из-за ошибки в этой BIOS (некоторый регистр, или расположение памяти должно быть разрушено).
Эта проблема была связана с PXE совместимостью, но теперь она устранена. Пожалуйста получите самую последнюю версию.
Эта проблема была устранена в версии MrBatch/MrZip от 9-ого августа. Имелась проблема с новой версией ncurses, которая была выпущена с RedHat 5.1.
MrZip был связан с
версией 3.0 libncurses. Вы можете использовать другие версии libncurses только, если они более новые
чем версия 3.0. Чтобы использовать более новый libncurses, все, что вы должны cделать - это создать
символьную ссылку от libncurses.so.3.0 до вашего libncurses.so.xx файла. С RedHat 5.1, вы можете
использовать следующую команду: cd /usr/lib ; ln -s libncurses.4.2 libncurses.3.0
Вы можете также загрузить последнюю версию mrzip/mrbatch. Начинаясь с выпуска 10/25/98, MrBatch
откомпилирован под RedHat 5.1.
Эта проблема - обратная предыдущей. Теперь, когда дистрибутив libc6 готов, он не может использоваться больше с libc5. Если вы сталкиваетесь с этой проблемой, просто модернизируете ваш Linux блок (Конечно, поскольку мы слышим слишком большое количество жалоб, мы могли бы попробовать сохранить два дистрибутива ...).
Вы должны сначала отобразить содержимое переменной VESA-Modes
, чтобы увидеть поддерживают
ли ваши аппаратные средства режим, который вы хотели бы использовать. Затем попробуйте один из этих
двух способов выбрать специальный режим VESA:
InitGraph "mode"
: Пробуйте InitGraph "1024x768", и затем выполните графический
примитив, который вас интересует (например DrawGif
).VESA-Modes
: первое поле переменной VESA-Modes
имя заданного
по умолчанию режима. Если вы изменяете переменную VESA-Modes, все графические примитивы будут
использовать режим, который вы определили.Мы исправили ошибку в функциях распределения памяти BpBatch. Вы должны удостовериться, что имеете версию BpBatch, которая была выпущен после 22-ого сентября 1998.
Мы исправили эту проблему в выпуске 09/22/1998.
Выпуск 10/25/98 исправлял проблему с большими образами. Пробуйте загрузить последнюю версию BpBatch.
Эта ошибка была исправлена в выпуске 10/25/98.
Эта ошибка была исправлена в выпуске 02/09/99.
Ваш DHCP сервер не посылает правильную опцию 135 клиенту. BpBatch использует опцию 135 как параметр командной строки. Вы можете определить "-i", если вы хотите перейти в диалоговый режим, или можете определить имя сценария, если хотите, чтобы BpBatch запустил выбранный сценарий (не включайте .bpb расширение). Если вы используете PXE Bootrom, удостоверитесь, что Вы используете опцию -135 для параметров командной строки. Опция -155 больше не поддерживается PXE 2.0 Bootrom.
Этот раздел обеспечивает детальную информацию относительно использования инструментальных средств, которые мы разработали в CUI, Университете Женевы для конфигурации удаленной начальной загрузки.
Эти три названия соответствуют трем вариантам одной той же самой программы, со следующими характеристиками:
BpBatch
- специальная программа, которая может быть выполнена с BootProm прежде,
чем операционная система загружена. Она состоит из двух частей: bpbatch.P
, динамический загрузчик, и
bpbatch.ovl
, сама программа. BpBatch
имеет собственные встроенные средства
полного дискового доступа к разделам FAT16, FAT32 и Ext2fs, а также удаленного сетевого доступа через
BootProm TFTP API.
BpBatch
был откомпилирован под DOS, с использованием Borland C 5.0 и Turbo Assembler 3.2.MrBatch
- DOS/LINUX версия BpBatch
.
Все команды, распознаваемые BpBatch
, распознаются и
MrBatch
и наоборот. Это очень полезно, если Вы хотите проверить ваши пакетные сценарии
из DOS/LINUX сеанса. Под DOS MrBatch
эмулирует удаленный ввод-вывод OS-ориентированным
файловым доступом, если bootprom не доступен. Под Linux, bootprom больше не может быть виден, но
MrBatch
может эмулировать его, используя Linux IP поддержку, или использовать
OS-ориентированным файловый доступ.
MrBatch
был откомпилирован под Linux с использованием GCC 2.7.2.1 и под DOS с
использованием Borland C 5.0 и Turbo Assembler 3.2.MrZip
- интерпретатор, который распознает расширенный набор MrBatch
языка, и
служит для того, чтобы строить дисковые образы. В MrZip
ограниченный удаленный файловый
ввод-вывод заменен полнофункциональным OS-ориентированным файловым доступом. MrZip
не
включает поддержку VESA. MrZip
был откомпилирован под Linux с использованием GCC 2.7.2.1
и под DOS с использованием Borland C 5.0 и Turbo Assembler 3.2.Все программы принимают один и тот же синтаксис параметров. MrBatch
и
MrZip
берут их из командной строки, в то время как BpBatch
ищет их в опции 155 BOOTP (десятичное число). Имеется следующий синтаксис параметров:
[-x] [-l] [-b] [-v] [-w] [-i] [script-basename]где:
-x
отключает использование расширенной памяти.-l
отключает использование ISO-LATIN-8859-1 как заданного по умолчанию набора
символов.-b
отменяет обнаружение bootprom (которое вызывает позиционирование флоппи-дисковода
под DOS).-v
отменяет обнаружение VESA (которое вызывает переключение к полному экрану под
Windows 95/98).-w
разрешает прямой дисковый доступ для записи (заблокированный по умолчанию под DOS
и Linux).-i
разрешает диалоговый режим, даже если имя сценария предоставляется.script-basename
не обязательно. Если предложено, MrBatch
и
BpBatch
загружают файл с расширением .bpb
, а MrZip
загружают файл с расширением .mrz
. Если не предложено
MrBatch
и MrZip
, выполненяются в диалоговом режиме, в то время как
BpBatch
загружает файл тем же самым basename, что и файл начальной загрузки
BOOTP и .bpb расширением.
Следующие правила применяются, когда BpBatch
анализирует входную строку.
\a
заменяется символом звукового сигнала (ASCII 7).\b
заменяется символом возврата на один символ (ASCII 8).\n
заменяется символом новой строки (ASCII 10).\r
заменяется символом возврата каретки (ASCII 13). \t
заменяется символом табулирования (ASCII 9).\v
заменяется символом вертикальной табуляции (ASCII ...).\nnn
где n - восьмеричное число с 3 цифрами между 000 и 377 заменяется символом с
указанным кодом ascii.\X
, где X - любой другой символ, не перечисленный выше, заменяется X непосредственно.
В частности \"
заменяется регулярной двойной кавычкой (не разделитель строки).\$
заменяется регулярным знаком доллара (не замена переменной).\\
заменяется регулярной обратной наклонной чертой (не специальный символ). Пустые строки игнорируются. Строки, начинающиеся с символа (#
) обрабатываются как комментарии и не
интерпретируются. Строки, начинающиеся с двоеточия (:
) обрабатываются как метки и не интерпретируются.
Строки разделяются открывающей и закрывающей кавычкой:
"Hello world"Чтобы включать двойные квычки в строку, укажите их, используя обратную наклонную черту:
"I said: \"Hello world\""Строки могут быть отредактированы несколькими операторами
"Hello world"/o=u/ == "Hellu wurld" "198.76.54.32"/.= / == "198 76 54 32"
"Hello world"{0} == "Hello" "198 76 54 32"{1-3} == "76 54 32"
"Hello world"[4] == "o" "Hello world"[4-7] == "o wo"
Числовые выражения выполняются над 32-битовых целыми числами (от -2,147,483,646 до 2,147,483,647). Шестнадцатеричные восьмеричные и двоичные числа не распознаются. Всякий раз, когда ожидается числовое выражение, понимается следующее:
%
(модуль)
и expr
- числовое выражение.
Обратите внимание, что КАЖДАЯ операция ДОЛЖНА быть заключена в круглые скобки: ((3 * 5)+2) == 17
@"Hello world" == 11
#"Hello world" == 2
Нескоторые команды ожидают интервал времени как параметр. Интервалы времени измеряются в секундах, с точностью до десятой части секунды:
Delay 3 задержка 3 секунды Delay 0.3 задержка 3/10 секунды
Всякий раз, когда цвет ожидается, вы можете использовать или числовое значение цвета или его символическое (независимое от регистра) имя. Следующие цвета распознаются:
Black 0 Blue 1 Green 2 Cyan 3 Red 4 Magenta 5 Brown 6 LightGray 7 DarkGray 8 LightBlue 9 LightGreen 10 LightCyan 11 LightRed 12 LightMagenta 13 Yellow 14 White 15
Имена файлов - строки. Поэтому они должны всегда заключаться в двойные кавычки. Имена файлов чувствительны к регистру на чувствительной к регистру файловой системе, нечувствительны к регистру на нечувствительной к регистру файловой системе. Наклонная черта вправо и наклонная черта влево могут свободно использоваться одна вместо другой. Не забудьте удваивать наклонную черту влево, так как одиночная наклонная черта влево - символ ESC.
Имеются два вида обращения к файлам:
Прямое обращение к файлам использует следующую запись:
"{disk:partition}/absolute/filename"Номер диска может быть опущен и по умолчанию равен нолю. Например,
"{:1}/usr/bin"
указывает на /usr/bin
,
поразумевается что такой каталог есть на первом разделе. Прямой файловый ввод-вывод является основанным
исключительно на наших собственных подпрограммах доступа к файлам (мы не используем операционную систему).
Имеются два специальных раздела. Раздел ноль соответствует блоку начальной загрузки жесткого диска (MBR), и имеет файловую псевдо-систему, которая позволяет Вам обращаться к коду начальной загрузки. Раздел "минус один" (-1) соответствует файловой системе кэша (см. ниже).
Под BpBatch/MrBatch, "чужие" файлы соответствуют удаленным файлам на TFTP сервере, когда BootProm доступен:
"help.bpb" файл help.bpb в /tftpboot каталоге "images/MyImage.pcx" файл в /tftpboot/imagesДругие TFTP серверы могут быть упомянуты:
"198.76.54.32:help.bpb"Если другой сервер - позади шлюза:
"198.70.0.1/198.76.54.31:help.bpb"Можно также определить конкретный порт для TFTP подключения:
"198.76.54.32@89:getpasswd/smith"Может иметься одновременно только один открытый удаленный файл . Если BootProm - не доступен, удаленные файлы эмулируются, используя файловый ввод-вывод операционной системы, но применяется то же самое ограничение.
Под MrZip, "чужие" файлы соответствуют файлам, "видимым" операционной системой. Не имеется никакого ограничения, и "чужие" файлы могут использоваться везде, где могут быть прямые дисковые файлы. "Чужие" файлы обычно быстрее чем прямые дисковые файлы, потому что операционная система имеет большее количество буферов. "Чужие" файлы могут обратиться к сетевым файлам, если это поддерживается операционной системой.
"C:\\autoexec.bat" "C:/config.sys" "/mnt/net/usr"
Чтобы уменьшить сетевую загрузку и ускорить процесс начальной загрузки, дисковый архив, linux ядра и возможно другие файлы кэшируются на жестком диске. Этот буфер системы ввода-вывода расположен в конце жесткого диска, между последним цилиндром, распределенным в таблице разделов и последним физическом цилиндром диска (вне любого распределенного раздела). ДОЛЖНО ИМЕТЬСЯ место между последним разделом и концом диска, если вы хотите, чтобы файловая система кэша работала. файловая система кэша ДОЛЖНА работать, если Вы хотите восстанавливать дисковый образ.
Этот дисковый кэш организован во временную, основанную на проверке CRC файловую систему: каждый элемент каталога и каждый блок данных объемом 32 кб подтверждаются 32-битовой циклической контрольной суммой. Всякий раз, когда элемент каталога или блок данных неожиданно изменяются, файл автоматически удаляется из кэша и загружается снова при следующем запросе.
Вы можете свободно обращаться к файловой системе кэша из BpBatch, MrBatch и MrZip использованием
прямого дискового доступа на специальном разделе "{:-1}"
.. Чтобы видеть содержимое кэша,
просто напечатайте:
logdir "{:-1}"Если даже кэш был разрушен и не очищен автоматически (что не должено происходить никогда), вы можете либо напечатать:
clean -1(в диалоговом режиме) или держать нажатыми обе клавиши SHIFT, когда BpBatch впервые обращается к кэшу.
Некоторые переменные первоначально установлены и/или имеют специальные значения. Некоторые из них существуют во всех программах, другие доступны только под MrZip, остальные доступны только при получении BOOTP/DHCP ответа.
$Program
установлена в "BpBatch" в программе BpBatch, в "MrBatch" в программе
MrBatch и в "MrZip" в программе MrZip.$Basename
установлена равной имени сценария, с которым стартовал пакетный интерпретатор.$HelpFile
имя загруженного файла, когда вызвана подсказка ( Help
). Значение по умолчанию: "${Basename}.hlp"
$BOOTP-...
набор переменных из ответа BOOTP/DHCP
(см. параграф на BOOTP/DHCP переменные для детальной информации).$DHCP-...
набор переменных из ответа DHCP (см. параграф на BOOTP/DHCP переменных
для детальной информации). $Disks
установлена в список размеров для каждого диска, разделенный пробелом.
Это означает, что #"$Disks"
представляет число дисков, и "$Disks"{0}
- размер
первого диска.$Keypressed
установлена в следующую готовую к чтению клавишу,
доступную в буфере клавиатуры (если он доступен).$LBA
управляет использованием LBA для обращения к дискам > 2Gb. Значение по
умолчанию: "ON".$FDA
управляет использованием быстрого дискового доступа
(запись поперек цилиндров). Значение по умолчанию: "ON".$VESA
управляет использованием VESA графики. Значение по умолчанию: "ON", если доступно.$VESA-Modes
дает список всех доступных режимов VESA. Первый элемент списка - заданный по
умолчанию режим, который используется, когда никакой параметр не дается в команде InitGraph. Обратите
внимание: если VESA = "OFF", эта переменная пуста.$APM
установлена в "ON", если ваш компьютер поддерживает Расширенное управление питанием
(Avanced Power Management). Если $APM "ON", вы можете использовать команду PowerOff, чтобы выключить
ваш компьютер. Значение по умолчанию: зависит от ваших аппаратных средств.$Trace
управляет дисплеем каждой команды перед выполнением. Это также управляет дисплеем
имен файла при создании нового архива. Значение по умолчанию: "OFF".$AutoShowLog
управляет автоматическим переключением к текстовому файлу регистрации
всякий раз, когда клавиша ESC нажата. Значение по умолчанию: "ON".$PauseLog
управляет паузой между каждой страницей файла регистрации, когда файл
регистрации видим. Значение по умолчанию: "ON".$CacheDisk
установлена как диск, используемый для кэширования файлов удаленной загрузки.
Значение по умолчанию: пусто == 0, означает первый жесткий диск.$CacheAlways
управляет автоматическим кэшированием файлов удаленной загрузки,
скопированных, исправленных или выведенных как образы. Значение по умолчанию: "OFF".$CacheNever
предотвращает любой файл от кэширования. Включите эту переменную для
начальной загрузки Linux без диска. Значение по умолчанию: "OFF".$CacheReserve
управляет предварительным распределением большего на 25 процентов количества места, чем необходимо в разделе кэша, предоставляя возможность роста файлам. Выключите эту
переменную, если у вас мало дискового пространства. Значение по умолчанию: "ON".$ExtMemory
управляет использованием расширенной памяти (или XMS). После того, как
дезактивирована, расширенная память не может быть включена. Значение по умолчанию: "OFF", если доступно.$IsoLatin
управляет интерпретацией верхних кодов ASCII во включенных и исправленных
файлах. IsoLatin параметры настройки обрабатываются, когда файл загружен, а не тогда, когда он в работе. Значение по умолчанию: "ON".$ProgressX
и $ProgressY
управляют позицией окна прогресса,
отображаемого в VESA графике в течение загрузки архива и декомпрессии. Значение по умолчанию: 200 200.$EXT2-Backup
управляет модификацией резервирования суперблока в Linux ext2 файловой
системе. Резервирование суперблока занимает несколько секунд и никогда не
используется текущими ядрами (только e2fsck).$WatchdogPort
определяет порт ввода-вывода (десятичное значение) используемый для обращения к контрольной плате. По умолчанию эта переменная установлена в 0, отключая таким образом
контрольную поддержку. Установка этой переменной к значению отличному от нуля будет
активизировать контрольную поддержку.$Security-Gateway
управляет шлюзом, используемым для идентификации пользователя.
Наш специальный опознавательный шлюз должен выполняться на целевом компьютере. Значение по умолчанию: "${BOOTP-Server-IP}@89"
(то есть TFTP сервер, порт 89)$Security-Check
содержит ответ сервера защиты для последней выполненной
проверки, либо PASSED либо FAILED. Значение по умолчанию: "FAILED".$Security-Passwd, $HelpTopic, $OnExit, $OnKey-...
- для внутреннего использования.См. также BOOTP переменные и специфические MrZip переменные.
Следующие переменные только используются в пределах MrZip.
$TempPath
управляет каталогом, где будут сохранены временные файлы. Значение
по умолчанию: пусто == текущий каталог$DumpFormat
управляет способом, которым архив будет сброшен в файл регистрации, когда потребуется. Содержащит строки
$FragmentSize
управляет размером частей архива. Если Вы не используете расширенный
TFTP Bootix сервер, вы должны установить ее в "30 MB". Значение по умолчанию: "87 MB".$SourceArchive, $DestArchive, $Filter...
- для внутреннего использования.Следующие BOOTP- ... и DHCP- ... переменные распознаются, когда ответ BOOTP/DHCP был получен (TCP/IP Bootprom должен сообщать об обнаружении):
$BOOTP-Client-ID $BOOTP-Your-IP $BOOTP-Server-IP $BOOTP-Gateway-IP $BOOTP-Bootfile $BOOTP-Server-Name $BOOTP-Subnet-Mask $BOOTP-Time-Offset $BOOTP-Routers $BOOTP-Time-Servers $BOOTP-Name-Servers $BOOTP-Domain-name-Servers $BOOTP-BOOTP-Log-Servers $BOOTP-Cookie-Servers $BOOTP-Lpr-Servers $BOOTP-Impress-Servers $BOOTP-Resource-Location-Servers $BOOTP-Host-Name $BOOTP-Boot-Size $BOOTP-Merit-Dump $BOOTP-Domain-Name $BOOTP-Swap-Servers $BOOTP-Root-Path $BOOTP-Extensions-Path $BOOTP-IP-Forwarding $BOOTP-Interface-MTU $BOOTP-All-Subnets-Are-Local $BOOTP-Broadcast-Address $BOOTP-NIS-Domain $BOOTP-NIS-Servers $BOOTP-NTP-Servers $BOOTP-Font-Servers $BOOTP-X-Display-Manager $DHCP-IP-Address-Lease-Time $DHCP-Message-Type $DHCP-Server-Identifier $DHCP-Message $DHCP-Renewal-Time $DHCP-Rebinding-Time $BOOTP-NIS+-Domain $BOOTP-NIS+-Servers $BOOTP-Server-Name $BOOTP-Bootfile $BOOTP-Mobile-IP-Agent $BOOTP-SMTP-Servers $BOOTP-POP3-Servers $BOOTP-NNTP-Servers $BOOTP-WWW-Servers $BOOTP-Finger-Servers $BOOTP-IRC-Servers $BOOTP-StreetTalk-Servers $BOOTP-STDA-Servers
Другие параметры BOOTP/DHCP могут использоваться под именем
$BOOTP-Option-nгде n - десятичное представление номера опции BOOTP.
Не смешивайте BOOTP-Gateway-IP
, который является шлюзом, чтобы
использовать для TFTP и должен быть 0.0.0.0, если TFTP сервер находится в той же самой подсети, и BOOTP-Routers
, который содержит значение IP шлюза по умолчанию. TCP/IP Bootprom
иногда, кажется, устанавливает значение BOOTP-Gateway-IP
из значения
BOOTP-Routers
, вызывая отсылку каждого подтверждающего TFTP пакета сначала на маршрутизатор. Чтобы избежать такого поведения, если ваш TFTP сервер находится в той же самой подсети, что и клиент,
установите принудительно BOOTP-Gateway-IP
в 0.0.0.0
(благодарность
Мачеку Ухлигу (Maciek Uhlig) за указание на эту проблему).
Этот раздел перечисляет команды для контроля системного состояния. Необязательные параметры перечислены между круглыми скобками (я предпочел бы квадратные скобки, но LaTeX не любит их в этом месте ...)
Показывает log файл и переключает в диалоговый режим пока не введено QUIT или EXIT. Напечатайте HideLog перед осуществлением выхода, если Вы хотите избежать раздражающих регистрационных сообщений при пакетном выполнении.
Загружает сетевой справочный файл (bpbatch.hlp), и отображает описание данной темы. Если никакая тема не предлагается, или если тема неизвестна, отображается индекс справки.
Отображает строку в log файле. Никакой return/linefeed неявно не добавляется.
Отображает строку в log файле, и переводит курсор на следующую строку. Эквивалентно
Log "text\r\n".
Регистрирует (то есть фиксирует в log файле) все переменные, соответствующие данному образцу. Образец может содержать подстановочные знаки (? И *).
Пример: LogVars "BOOTP-*" все BOOTP переменные
Регистрирует (то есть фиксирует в log файле) все файлы от заданного пути, которые соответствуют образцу. Образец может содержать подстановочные знаки (? И *).
Пример: LogDir "/usr/g*p" перечисляет имена файлов соответствующие g...p
Регистрирует дерево каталогов, начинающееся с данного пути как корень.
Регистрирует содержимое файла. Файл должен быть не больше, чем 64 КБ.
Делайте файл регистрации видимым, если он был скрыт. Автоматически выполняется, когда ESC нажат с "$AutoShowLog" == "ON" и при входе в диалоговый режим.
Предотвращает показ регистрационных сообщений на экране. Заданное по умолчанию состояние, когда BpBatch, MrBatch и MrZip стартуют из файла сценария.
Записывает весь log вывод в буфер 64 КБ, пока EndCapture не выполнен. Буфер заворачивается к началу, если log вывод больше чем 64 КБ. Эта команда может использоваться, чтобы создать текстовый файл с произвольным содержанием. EndCapture ДОЛЖЕН выполнится в пределах того же самого пакетного файла.
Заканчивает сбор данных log файла. Если имя файла дается, захваченный текст сохраняется в файле. В противном случае сбрасывается.
Производит звук. Эта команда эквивалентна Echo "\007".
Этот раздел перечисляет команды, управляющие пакетным выполнением. Необязательные параметры перечислены между круглыми скобками.
Загружает указанный файл, и запускает синтаксический анализатор. Возвращается к текущей точке, когда обработка включенного файла выполнена. Интерпретация символов выше ASCII 127 в пределах включенного файла зависит от значения $IsoLatin во время, когда файл включен.
Устанавливает выходной обработчик, который будет автоматически оценен в конце текущего пакетного файла.
Перемещает курсор выполнения на данную метку (то есть строку, начинающуюся с :label).
Выполняет все подстановки в "команде", и выполняет синтаксический разбор.
If (not) <expr1> (==|!=|<|>|>=|<=|=>|=<|<>) <expr2> <command> If (not) (ci) "str1" (==|!=|<|>|>=|<=|=>|=<|<>) "str2" <command> If (not) (ci) "str1" Match-Expr "pattern" <command> If (not) (ci) "str1" Match-Passwd "unix-passwd" <command> If (not) (ci) "str1" in "wordlist" <command> If (not) (ci) "str1" in-file "filename" <command> If (not) exist "filename" <command> If (not) valid <disk>:<partition> <command>
Эти команды выполняют команду command;, если проверка успешна. 1-ая форма сравнивает два числовых выражения. 2-ая форма сравнивает две строки, опционально независимо от регистра. 3-ья форма проверяет, соответствует ли "str1" данному образцу (подстановочные знаки разрешены). 4-ая форма проверяет, соответствует ли открытый пароль "str1" шифрованному паролю Unix. 5-ая форма проверяет, включен ли "str1" в список слов. 6-ая форма проверяет, включен ли "str1" в файл слов. 7-ая форма проверяет, существует ли данный файл. 8-ая форма проверяет, правилен ли данный раздел (то есть форматирован). Эта форма поддерживается только версиями BpBatch после февраля 1999.
Set variable = "string-value" Set variable = <expr>
Устанавливает значение данной переменной. Если данное значение - числовое выражение, оно будет неявно преобразовано в строку. Переменная может использоваться везде через ссылку $variable или ${variable}. Если результирующая ссылка должна интерпретироваться как строка, она должна быть заключена в двойные кавычки: "$variable" или "${variable}".
Ожидает, пока указанная длительность (выраженная в секундах) не истечет. См. также параграф по формату длительностей.
Получает CMOS время, и сохраняет его в переменной в форме HH:MM:SS. Получает дату CMOS, и сохраняет ее в переменной в форме YY/MM/DD. Это может использоваться, чтобы настроить поведение ваших сценариев начальной загрузки в зависимости от времени дня или даты.
Устанавливает CMOS время или дату компьютера на заданное значение. Если вы имеете шлюз защиты (наш специальный TFTP сервер), вы можете автоматически корректировать CMOS время и дату компьютеров клиента при каждой начальной загрузке, выполняя следующую команду:
include "$Security-Gateway:gettime"Если вы хотите понять, что эта команда делает, просто напечатайте:
logfile "$Security-Gateway:gettime"
Выключает компьютер. Эта команда работает, только если компьютер Advanced Power Management (APM) совместимый.
Этот раздел перечисляет команды, которые позволяют вам контролировать ввод с клавиатуры. Необязательные параметры перечислены между круглыми скобками. См. также National Language Support
Неопределенно ожидает, пока клавиша не нажата и сохраняет ее в переменной variable.
Ожидает, пока клавиша не нажата не больше, чем duration секунд. Если никакая клавиша не была нажата после данного времени, выполняет команду command. Иначе, оставляет клавишу в буфере клавиатуры. См. также параграф по формату продолжительностей.
Читает строку, завершенную символом возврата, с клавиатуры, и сохраняет результата строку в переменной variable(без завершающего возврата). Если максимальная длина max-length дается, не позволяет пользователю вводить больше заданного числа символов.
См. также GetPasswd
в разделе Security-related commands.
Устанавливает обработчик клавиши, который автоматически
выподнит данную команду command когда клавиша "c" нажата (кроме случаев явного ожидания командой
GetChar или командой Input). Если строка "default"
используется вместо одиночного символа,
команда выполняется, если любая другая клавиша нажата.
Этот раздел перечисляет команды используемые для выполнения регулярного текстового вывода. Все эти команды могут использоваться также в графическом режиме, с тем же самым поведением (за исключением того, что текстовый режим обеспечивает 80x25 символы, в то время как графический режим обеспечивает 100x37, потому что символы графического режима имеют размер 8x16). Необязательные параметры перечислены между круглыми скобками. См. также раздел National Language Support.
Печатает указанную строку/выражение в текущей позиции курсора с использованием текущих текстовых атрибутов, затем перемещает курсор. Добавьте "\r\n" к концу строки, чтобы перейти на следующую строку.
Устанавливает текстовые атрибуты. Можно также помещать одиночное числовое значение, представляющее оба цвета и определенный как 16*bg-color+fg-color.
Если вы нуждаетесь в большем количестве возможностей, можете использовать LoadFont. См. раздел National Language Support.
Перемещает курсора в указанную позицию, и выполняет команду, если она указана.
Пример: At 10,20 Print "Gnats and rats !"
Заполняет заданную текстовую область данным случайным символьным шаблоном pattern-char(или строкой, или десятичным кодом ascii). По умолчанию область соответствует полному экрану, символ шаблона по умолчанию соответствует заполненому блоку (десятичный код ASCII 219) и значения цвета по умолчанию - черный (очищает экран). Перемещает курсор в верхний левый угол очищенной области.
.ATT (<attribute>) .CLS (<attribute>) .DEF <key> (<timeout_val>) .KEY <key> <filename> .POS ((<x>) <y>) .PWD <key> <cpasswd> .WLN (<text>) .WRT <text>
См. руководство Bootix для подробной информации. Мы написали некоторое время назад программу для редактирования файлов меню, использующих этот синтаксис, но предпочтительно делать ваши меню используя новый явный синтаксис. Обратите внимание, что .PWD команда не осуществлена, потому что мы не знаем алгоритм шифрования пароля, используемый Bootix.
Этот раздел описывает команды используемые для выполнения вывода в графическом режиме. Для функций, перечисленных в этом разделе, координаты даются в пикселях. Вы можете также использовать все текстовые команды вывода (см. выше) в графическом режиме. Необязательные параметры перечислены между круглыми скобками.
Обратите внимание, что графический режим автоматически включается всякий раз, когда используется
графическая команда, если только переменная VESA
не установлена в "OFF"
.
Включает VESA графику. Начало координат находится в левом верхнем углу экрана (0 0). VESA графика может подвешивать некоторые компьютеры под Windows 95/98. Выполните MrBatch с опцией -v, чтобы избежать таких проблем.
Вы можете запрашивать определенный видеорежим, если вы используете параметр "mode". Этот параметр необязательный: если вы не определяете никакое значение, видеорежим будет определен из первого поля переменной VESA-Modes.
Допустимые режимы: :
Переменная VESA-Modes перечисляет режимы видео, поддерживаемые вашими аппаратными средствами.
Пример: InitGraph "640x480"
Закрывает VESA графический режим, и возвращает в текстовый режим.
VESA графика. Выводит заполненную полосу заданного размера и цвета.
VESA графика. Выводит окно заданного размера и цвета. Цвет фона по умолчанию LightGray и цвет области заголовка по умолчанию Blue. Если вы включаете строку заголовка и цвет, этот текст будет отображен в области заголовка.
VESA графика. Выводит текстовую строку в данной позиции с прозрачным фоном. Цвет по умолчанию соответствует цвету символов текста.
VESA графика. Загружает данный PCX 256-colors файл, и выводит его на экран. Значения по умолчанию позиции изображения соответствуют верхнему левому углу экрана (0 0).
Цветовая стратегия (color-strategy) определяет распределение цветов в палитре, когда необходимо больше чем 256 цветов (например, когда два 256-цветовых файла изображения отображаются одновременно):
Best-Colors
Использует наиболее подходящие цвета для самого последнего изображенияSpare-Colors
Пытается предупредить распределение цвета, изменяет существующие цветаShare-Colors
Пытается предупредить распределение цвета, и использует существующие цветаReuse-Colors
не распределяет никакого нового цвета, использует только существующие цветаBest-Colors
.
VESA графика. Загружает заданный GIF-87a файл, и выводит его на экран. Файл может быть с чередованием, но должен быть GIF-87A (не GIF-89a). Размер изображения должен соответствовать выбранному видеорежиму. Вы не можете загружать 1024x768 GIF файл, когда выбран 640x480 режим. По умолчанию позиции изображения - верхний левый угол экрана (0 0).
Из-за патента LZW, эта функция не доступна в коммерческой версии BpBatch/MrBatch. Вы можете использовать команду DrawPcx вместо этого.
Цветовая стратегия (color-strategy) определяет распределение цветов в палитре, когда необходимо больше чем 256 цветов (например, когда два 256-цветовых файла изображения отображаются одновременно):
Best-Colors
Использует наиболее подходящие цвета для самого последнего изображенияSpare-Colors
Пытается предупредить распределение цвета, изменяет существующие цветаShare-Colors
Пытается предупредить распределение цвета, ииспользует существующие цветаReuse-Colors
не распределяет никакого новог цвета, использует только существующие цветаBest-Colors
.
Этот раздел перечисляет команды, которые помогут вам проверить подлинность пользователя. Необязательные параметры перечислены между круглыми скобками.
Некоторые из этих функций работают совместно со шлюзом защиты (Security gateway), который вы должны сначала установить. См. раздел Special TFTP servers для подробной информации.
То же самое что и Input, но отображаются звездочки вместо напечатанных символов.
Применяет Unix функцию шифрования к заданному 8-символьному тексту, и сохраняет результирующую зашифрованную строку в переменной. "Salt" - обычно двухсимвольная строка, которая будет найдена как первые два символа зашифрованной строки.
Обратите внимание, что Unix шифрование - односторонняя функция. Невозможно декодировать зашифрованную строку. Можно только попытаться зашифровать другую строку с тем же самым salt и сравнить результирующую зашифрованную строку.
Эта функция использует BSD реализацию DES. Имеется заголовок из BSD дистрибутива:
Copyright (c) 1989 The Regents of the University of California.
This product includes software developed by the University of
California, Berkeley and its contributors.
Дешифрует заданный текст, используя заданный 8-символьный ключ, и сохраняет результат как шестнадцатеричную строку в переменной variable.
Эта функция использует BSD реализацию DES. Имеется заголовок из BSD дистрибутива:
Copyright (c) 1989 The Regents of the University of California.
This product includes software developed by the University of
California, Berkeley and its contributors.
Дешифрует заданную шестнадцатеричную строку, используя заданный 8-chars клавиша(ключ), и храните результат в переменной variable.
Эта функция использует BSD реализацию DES. Имеется заголовок из BSD дистрибутива:
Copyright (c) 1989 The Regents of the University of California.
This product includes software developed by the University of
California, Berkeley and its contributors.
Вычисляет MD5 контрольную сумму данного текста, и сохраняет ее как шестнадцатеричную строку в переменной variable. Может использоваться как альтернатива Unix функции шифрования для проверки паролей длинной более чем 8 символов.
Эта функция - реализация MD5 стандарта. Имеется заголовок авторского права: RSA Data Security, Inc. MD5 Message-Digest Algorithm
Соединяется с $Security-Gateway
и проверяет, существует ли данный пользователь в данном
домене Radius и использует указанный пароль. Если домен - "Unix"
, использует
Unix определение пользователя/пароля на шлюзе защиты. Для любого другого домена, использует
файл определения домена шлюза защиты, чтобы определить реальный Radius или NT домен
для проверки.
Устанавливает значение $Security-Check
в "PASSED" или "FAILED".
Пароль не передается открытым текстом по сети.
Этот раздел перечисляет команды для подготовки жесткого диска. Необязательные параметры перечислены между круглыми скобками.
Читает таблицу(ы) разделов для заданного диска, и сохраняет ее как строку в заданную переменную variable. Результирующая строка - разделенный пробелами список Type:Size, где
Устанавливает таблицу(ы) разделов к содержимому строки. Используемый формат - тот же самый,что и для GetPartitions. Эта команда также сбрасывает все флаги начальной загрузки (подсказка: используйте SetBootPart).
Основная таблица разделов в главном блоке начальной загрузки (MBR), имеет только четыре элемента. Кроме того, DOS и Windows принимают только ОДИН раздел FAT (называемый Первичным разделом, C:) в основной таблице разделов. Любой дополнительный раздел FAT должен быть расположен в расширенном разделе (и таким образом называется Логическим разделом). Если мы дадим номера 1-4 разделам, описанным в таблице разделов MBR и номера 5-8 разделам, описанным в первом расширенном разделе, определение двух разделов работало бы путем определения раздела 1 как FAT, раздела 2 как EXT и раздела 5 как FAT. Разделы 3,4,6,7, и 8 должны быть отмечены как UNUSED. Та же самая схема может использоваться рекурсивно, чтобы определить больше чем два FAT раздела: вложение другого расширенного раздела в разделе 6 и добавлении логического раздела FAT в разделе 9.
В наиболее строгой интерпретации спецификаций DOS определяется, что элементы 3 и 4 из таблицы разделов никогда не используются. Практически, некоторые версии DOS и некоторые другие OS способны использовать больше чем два раздела в таблице разделов, но не имеется никакого четкого правила. С этой точки зрения, BpBatch довольно гибок в интерпретации таблиц разделов, он часто может понимать вещи, которые OS не может.
Одно универсальное правило состоит в том, что никогда не должно быть больше одного расширенного раздела в таблице разделов, иначе схема нумерации разделов исказиться.
Если вы хотите опробовать забавные конфигурации, делайте ваши собственные эксперименты, но не жалуйтесь, если OS не признает ваши разделы. Единственный способ гарантировать работу состоит в использовании первичного раздела для хранения раздела начальной загрузки OS, и вкладывать все другие разделы, по одному, в расширенных разделах.
Пример расширенных разделов:
SetPartitions "BIGDOS:100 EXT:400 EMPTY EMPTY BIGDOS:400"
Получает номер раздела с включенным флагом загрузки, (DOS говорит: активный первичный раздел) и размещает его в переменной variable. Первый раздел имеет номер 1. Если никакие разделы не имеют включенного флага загрузки, выдается ноль.
Устанавливает флаг загрузки в данном разделе. Флаг загрузки позволяет главной загрузочной записи (MBR) выбирать, с какого раздела загрузиться. Первый раздел пронумерован 1.
Заполняет данный раздел нолями. Может занимать весьма много времени для
больших разделов. Не форматируйте раздел для любой операционной системы. См. также Clean
.
Быстрое форматирование данного раздела(ов) в соответствии с типом, объявленным в таблице разделов. Если
метка дается, и файловая система ее поддерживает, устанавливается метка раздела. Для параноидального полного
формата, сначала вызовите Blank
для этого раздела.
Clean поддерживается для (FAT16) BIGDOS, FAT32, EXT, LINUX-EXT2 и LINUX-SWAP разделов. Для очистки главной
загрузочной записи (MBR), используйте Clean 0
.
Clean должен использоваться на разделах с данными и на разделах MBR/EXT. Совершенно бесполезно очищать
раздел перед распаковкой файловой системы на него, используя FullUnzip
.
Распаковывает полный дисковый архив на данный раздел, записывая поверх любого существующего файла (очистка "на лету").
FullUnzip поддерживается для (FAT16) BIGDOS, FAT32 и LINUX-EXT2.
Эта команда включает VESA графику, чтобы отобразить полосу прогресса, если
VESA
не была установлена в OFF
.
Распаковывает инкрементный дисковый архив на заданный путь. Файлы из архива заменяют файлы с тем же самым именем на целевом пути, но другие файлы не удаляются.
IncrUnzip поддерживается для (FAT16) BIGDOS, FAT32 и LINUX-EXT2. Эта команда гораздо менее эффективна чем FullUnzip, так как существующая структура файловой системы должна сохраниться. Однако, это дает возможность избежать умножения числа различных дисковых образов, сохраняя только различия. IncrUnzip is supported for (FAT16) BIGDOS, FAT32 and LINUX-EXT2.
Распаковывает файл, предварительно сжатый командой FileZip MrZip
.
Файл подтверждается 32-битовой CRC.
Копирует исходный файл в целевой файл побайтно. Может использоваться после
FullUnzip, например, чтобы модифицировать файлы конфигурации с сервера без
восстановления всего образа. Лучше использовать FileUnzip
для больших и легкосжимаемых файлов.
Копирует первый, затем второй файл в файл назначения побайтно. Может использоваться на произвольно больших файлах. Файл назначения не может быть один из этих двух исходных файлов.
Читает исходный файл, и выполняет подстановку переменных перед записью в файл назначения.
Интерпретация символов выше ASCII 127 зависит от значения $IsoLatin
.
По умолчанию, переменные распознаются, когда предваряются символами "${" и заключаются символом "}". Это может быть заменено любой другой непустой строкой. Помните, что если вы хотите использовать знак доллара в пределах префикса или суффикса, вы должны избегать этого, или получите макро-выполнение. Например, если вы хотите явно использовать значения по умолчанию префикса и суффикса, используйте следующее:
Patch "source-file" "dest-file" "\${" "}"
Рекурсивно создает каталоги от корня до заданного полного пути. Если путь уже существует, эта команда не дает никакого эффекта.
Удаляет заданный файл. Файл должен существовать.
Рекурсивно удаляет все файлы и каталоги под заданным путем, и удаляет непосредственно заданный каталог.
Этот раздел перечисляет команды для продолжения процесса начальной загрузки. Необязательные параметры перечислены между круглыми скобками.
Восстанавливает память и векторы прерывания, распределенные bootprom. Все попытки делать передачу TFTP будут терпеть неудачу после вызова этой команды. Это обычно хорошая идея вызвать эту команду прежде HdBoot, иначе вы можете испытывать нехватку памяти под DOS/Windows. Эта команда неявно вызывается командой FloppyBoot.
Обратите внимание, что, хотя эта функция восстанавливает все векторы "официально" перехваченные BootProm, похоже, что восстанавливаются не все. Но это работает достаточно хорошо для DOS и Windows.
Загружает образ гибкого диска в расширенную память, и переназначает дисковый сервис BIOS так, чтобы запросы гибкого диска использовали вместо него этот образ. Эта команда неявно вызывается командой HideBootProm
. Вызовите FloppyBoot
,чтобы
загрузиться с виртуального диска, который вы только что загрузили.
Этот вид виртуального диска не может быть столь же устойчивым, как тот, что вы получаете, используя команду TFTPBoot. Единственное преимущество состоит в том, что при этом захватывается только несколько сотен байтов обычной памяти вместо объема резервируемого для TCP/IP BootPROM (до 64 КБ). Предупреждение: ничто не защищает расширенную память, в которой размещается виртуальный диск. Не имеется никакого средства для деинсталляции такого виртуального диска.
Делает то же самое, что и LoadRamDisk
, но для образа, который был сжат с использованием
команды FileZip MrZip
. Сжатый виртуальный диск защищен от нарушения целостности данных (и неполной
загрузки) подсчетом байт и 32-битовой CRC.
Связь с другим файлом начальной загрузки (например, образом гибкого диска, сделанным программой BpShell Bootix). См. соглашение по файловым ссылкам для доступа к файлу на другом TFTP сервере.
Скрывает BootROM, загружает загрузочный сектор гибкого диска и загружается с него.
Загружает заданный загрузочный сектор и выполняет начальную загрузку с него. По умолчанию - диск ноль, что соответствует первому жесткому диску, и значение по умолчанию раздела также ноль, то есть главная загрузочная запись. Вы можете загружаться с любого раздела, но предупреждаем, что Windows 95/98 не может загружаться с раздела, который не был установлен как загрузочный (подсказка: используйте SetBootPart).
Эта команда не вызывает неявно команду HideBootProm, так что вы можете вызвать ее заранее.
Загружает данное ядро и виртуальный диск в область верхней памяти, установливает командную строку, и стартует
ядро. Хорошая идея поместить по крайней мере минимальную командную строку с расположением корня
файловой системы (подобно "root=
dev/hda1" /). Если Вы используете linux систему, которая жестко
связана с lilo
(подобно RedHat Linux 5.1), может быть необходимо добавить к командной строке нечто подобное
BOOT_IMAGE=linux
. Обратите внимание, что ядро может быть загружено через TFTP (с автоматическим кэшированием на жестком диске) или непосредственно с целевого корневого раздела.
Эта команда работает для маленьких и больших ядер (zImage
and bzImage
).
Этот раздел перечисляет команды, связанные с поддержкой национального языка. Необязательные параметры перечислены между круглыми скобками.
Поддержка национальной клавиатуры. Переназначает данные клавиши на другие символы. Например, чтобы поменять клавиши Y и Z, используйте
Remapkeys "yzYZ" "zyZY"Хорошая идея использовать указанное восьмеричное значение при использовании символов, не включенных в минимальный набор символов ASCII, чтобы избежать зависимости от iso-latin модальных установок.
Для интернациональных клавиатур имеются две клавиши, которые порождают символ "backslash" в
непереназначанном режиме (US). Каждая из них может быть независимо переназначена благодаря тому факту, что BpBatch
видит одну из них как клавишу, соответствующую
ASCII коду 252(восьмеричный), или ASCII коду 335(восьмеричный) при нажатом "Shift".
Если вы пришлете мне типовой сценарий, который делает отображение для вашей национальной клавиатуры, я сделаю его доступным в
http://cuiwww.unige.ch/info/pc/remote-boot/soft/sample-scripts
Чтобы помочь вам сделать ваше собственное отображение клавиатуры, я советую нажимать все специальные
клавиши без переназначения клавиатуры и записывать символ, который они
производят. Это будут оригинальные клавиши
. Переназначенные клавиши
- это просто клавиши,
которые вы хотели бы видеть, в том же самом порядке. Если некоторые клавиши (оригинальные или
переназначенные) порождают символы выше ASCII 127(десятичное), используют указанное
восьмеричное значение. Вы можете легко получить восьмеричный код для любого данного символа например из
таблицы ASCII HelpPC (HelpPC - гипертекстовая онлайновая shareware программа
предоставления справочной информации от Дэвида Юргенса (David Jurgens)).
Поддержка национальной клавиатуры. Переназначает данные клавиши, когда ALT нажат. Например, чтобы переназначить Alt-2 на знак амперсанд, используйте
RemapAltKeys "2" "@"Обратите внимание, что мертвые клавиши не поддерживаются.
Загружает и активизирует заданный двоичный файл кодовой страницы. Кодовые страницы используются для трансляции символов Unicode (представленных, например, на VFAT томах) в 8-битовые символы. Если вы не загрузите правильную кодовую страницу, вы получите предупреждения FAT при доступе к той файловой системе, где встречаются специальные символы.
Все двоичные файлы кодовых страницы доступны в
http://cuiwww.unige.ch/info/pc/remote-boot/soft/codepage.zip
Заданная по умолчанию кодовая страница - 850, переупорядоченный супернабор ISO-Latin-1. Если вы
загружаете более экзотическую кодовую страницу, вы обычно должны переключить переменную $IsoLatin
в "off"
, иначе можете получить бессмысленные неявные преобразования. Кроме того, если вы хотите
отображать экзотические символы, вы должны также загрузить надлежащий экранный шрифт (используйте
"LoadFont"
).
Загружает и активизирует VGA/VESA шрифт, как в текстовом, так и в графическом режиме. Файл шрифта должен быть двоичный файл 16 байтов/символ (8x16 точечный рисунок). Эта команда может использоваться для поддержки национального языка также как для поддержки Fantasy.
Архив с несколькими шрифтами Fantasy доступен в
http://cuiwww.unige.ch/info/pc/remote-boot/soft/fonts.zip
.
Этот архив также содержит программу для извлечения шрифты для вашей кодовой страницы из DOS
.CPI
файла.
Source (i)archive "filename" Source path "path"
Устанавливает источник для манипуляции архива к данному (возрастающему) файлу архива или дисковому пути.
Dest (i)archive "filename" Dest (i)dump Dest path "path"
Устанавливает адресата для манипуляции архива к данному (возрастающему) файлу архива, дампу или дисковому пути. Чтобы управлять количеством данных, отображенных в течение дампа, используйте специальную переменную $DumpFormat.
Сжимает файл для дальнейшей декомпрессии с FileUnzip или для использования как ZRamDisk. Файл подтверждается 32-битовой CRC.
Filter -"pattern" Filter +"pattern"
Предотвращает/позволяет файлам и каталогам, соответствующие данному образцу (маски разрешены) быть включенным в архив. Образец согласован против полного имени пути. По умолчанию, все файлы включены в образ. Вы только должны явно разрешить файлы, которые отменены фильтром. Каждый отрицательный фильтр имеет свой собственный положительный фильтр (позволенный) подсписок.
Для образов DOS/Windows, вы будете обычно использовать
Filter -"*.swp" Filter -"temp/*"и для образов Unix, вы будете обычно использовать
Filter -"var/log/*" Filter -"tmp/*"
Запускает операцию создания архива, в соответствии с параметрами настройки источника, адресата, и фильтра. За исключением некоторых обстоятельств, вы будете вероятно использовать сокращение, приведенное ниже,
вместо явного вызова CopyArchive
. Обстоятельство, при котором вы будете использовать CopyArchive
явно - тот случай, когда вы захотите изменить фрагментацию образа, как здесь:
set FragmentSize="30 MB" Source archive "original.imz" Dest archive "refragmented.imz" CopyArchive
Сокращение для
Source path "path" Dest archive "full-archive" CopyArchiveОбычно сначала вы должны установить фильтры.
Сокращение для
Source path "path" Dest iarchive "incr-archive" CopyArchive
Сокращение для
Source archive "full-archive" Dest dump CopyArchive
Сокращение для
Source iarchive "incr-archive" Dest dump CopyArchive
Сокращение для
Source path "srcpath" Dest path "dstpath" CopyArchive
Nobreak.sys
очень маленький (приблизительно только 350 байтов) драйвер, который вы включаете в начале вашего
config.sys. Его цель состоит в том, чтобы гарантировать процесс начальной загрузки до момента
регистрации пользователя. DOS обеспечивает установку для этого (а именно BREAK=OFF), но этого
совершенно не достаточно, и не дает почти никакого эффекта в autoexec.bat. Наш драйвер работает,
изменяя скэн-код нажатой клавиши, когда запрашивается прерывание работы, непосредственно на уровне BIOS.
Таким образом, вообще никакая программа не может получать запрос прерывания работы, пока снова не будет
разрешено.
Драйвер должен быть загружен из config.sys (или использованием devlod
программы из
Undocumented DOS). Впоследствии, запрос прерывания можно разрешить, посылая Yes
на NOBRK
псевдо-устройство, и заблокировать снова посылая No
(фактически, только первый символ,
Y
или N
значим).
Поскольку этот драйвер полагается на BIOS, он работает только в DOS и Windows 3.1. Windows 95/98 имеет свою собственную процедуру низкого уровня, обслуживающую клавиатуру.
Исходный текст Ассемблера доступен..
Поскольку единственная поддержка сети, доступная в TCP/IP BootPROM - TFTP, имеется особый интерес в расширении TFTP серверов для обеспечения новых возможностей.
Bootix распространяет с TCP/IP BootPROM расширенный TFTP сервер, который может посылать пакеты до 1408 байтов вместо стандартных в 512 байтов. Это большое расширение, которое вы должны использовать. Этот сервер доступен на Сервисном диске TCP/IP Bootprom для Solaris, Windows и как Netware NLM.
Под Linux, получите TFTP сервер Bootix/Incom. Версия, откомпилированная для Linux доступна на
http://cuiwww.unige.ch/info/pc/remote-boot/soft/incomtftpdlx.tar.gz
.
Оригинальный Solaris TFTP сервер имеет серьезное ограничение на размеры файла, из-за использования подписанного 16-bits целого числа для подсчета пакетов. Bootix предоставляет расширенный TFTP сервер для Solaris, который решает эту проблему при обеспечении намного более высокой скорости передачи.
Однако, некоторые пользователи сообщили о проблемах (в особенности с SMC9432 платами) создания тупиков
на запуске. Поэтому, Джон Мартин (John Martin) (j.martin@abdn.ac.uk
) перенес Linux
tftpd
на Solaris. Вы можете получить это из
http://www.csd.abdn.ac.uk/~jmartin/tftpd.tar.gz
.
Мы написали специальный TFTP сервер, который служит как шлюз защиты для аутентификации
пользователей. Этот сервер запускается под Linux или Solaris, и может аутентифицировать
пользователей согласно базе данных паролей Unix (NIS, и теневые пароли поддерживаются), Windows NT
(или Самба) сервера или сервера Radius. Он доступен на
http://cuiwww.unige.ch/info/pc/remote-boot/soft/stdtpd.tar.gz
,
с источником и прекомпилированными двоичными файлами. Прекомпилированные двоичные файлы не включают
NT кодирование пароля, поскольку мы не можем распространять libdes
, но трансляция совершенно честная.
Чтобы использовать шлюз защиты, вы должны только установить тривиальный файл конфигурации
security domains, который описывает, к какому серверу аутентификации каждый логический
домен защиты отнесен (Unix
домен неявно отнесен на сервер базы данных паролей Unix).
Это - образец конфигурационного файла:
radius sec-dom-rad radiusserver testing123
winnt sec-dom-nt1 192.168.1.1 NTSERVER1
winnt sec-dom-smb samba SAMBA1
Обратите внимание, что если вы используете Samba, вы должны установить security = user
.
Вы можете также разместить на сервере защиты файл, содержащий список пользователей, которым не позволяют регистрироваться (для которых проверка будет терпеть неудачу в любом случае).
Мы написали специальный TFTP сервер, который представляет собой кустарный широковещательный вариант TFTP.
Используя этот сервер, мы были способны загружать образы к 25
клиентам на тяжело загруженной 10 МБ локальной сети со скоростью 6 Мб/сек
(это более эффективно чем обычный TFTP, поскольку не требуется подтверждения каждого пакета).
Этот сервер выполняется под Linux или Solaris. Он доступен на
http://cuiwww.unige.ch/info/pc/remote-boot/soft/btdtpd.tar.gz
,
с источником и прекомпилированными двоичными файлами.
Поскольку TCP/IP bootprom не поддерживает этот протокол, наше решение состоит в загрузке крошечной linux системы базирующейся на виртуальном диске, используя инструментальные средства, описанные в этом документе, и выполнении Linux версии MrBatch, которая имеет встроенную поддержку широковещательного TFTP. Простой пакетный файл может затем загрузить все файлы в кэш в течении нескольких минут, одновременно на всех компьютерах клиента. Вы не должны устанавливать Linux самостоятельно, чтобы использовать этот пакет, за исключением случая, когда вы имеете экзотические аппаратные средства и не можете непосредственно использовать ядро, предложенное в пакете.
Процесс осуществляется следующим образом. Сначала вы запускаете широковещательный сервер вручную, давая число ожидаемых клиентских компьютеров как параметр (помните, эта процедура должны использоваться не каждый день, но только когда вы изменили образ и хотите гарантировать, что это немедленно загрузится на все ваши клиентские компьютеры). Затем, вы включаете все клиентские компьютеры, которые выполнят следующий BpBatch сценарий:
setpartitions "BIGDOS:50"
clean 0
linuxboot "linux.krn" "" "bcastrd.gz"
Инициирующий виртуальный диск содержит: dhcpcd
, DHCP клиент, используемый для организации сети установки. mrbatch
.linuxrc
, небольшая упаковка, автоматически стартуемая initrd и стартующая
dhcpcd
, затем mrbatch
usr/lib/terminfo/l/linux
, используемый MrBatch.dev/*
, устройства, необходимые для выполнять Linux и MrBatch.libc.so
, который является действительно
огромным. Получающийся виртуальный диск сжат и занимает менее 300 КБ. Само ядро занимает
450 КБ (с многими сетевыми платами и поддержкой initrd). Когда Linux готов и выполняется, MrBatch
вызывается со следующим сценарием (который вы должны отредактировать для ваших потребностей):
showlog
set pauselog="OFF"
setpartitions "BIGDOS:1024"
clean -1
copy "$BOOTP-Server-IP@99:mblinux.imz" "{:-1}mblinux.imz"
Когда передача закончена, вы можете просто выключить все клиентские компьютеры и
изменить их инициирующий сценарий начальной загрузки к вашему любимому меню.
Этот документ описывает установку мощной и защищенной конфигурации для кластера ПК, предоставляющей
каждому клиенту выбор при загрузке, какую операционную систему запустить. Суть этой конфигурации -
программа, основанная на загрузочном ПЗУ, которая предоставляет пользователю возможность выбрать при загрузке один
из нескольких загрузочных образов. Эта конфигурация применима при использовании Bootix TCP/IP Bootprom
(существующего как дополнение к большинству сетевых карт) или любого PXE-совместимого Boot ROM (готового к
использованию в большинстве современных ПК со встроенными сетевыми картами). Большинство
обновленных версий данного документа, со ссылками на загружаемое программное обеспечение и другие связанные материалы, может быть найдено по адресу
http://cuiwww.unige.ch/info/pc/remote-boot/howto.html
.
Linuxdoc-SGML,
DVI,
PostScript и PDF
версии доступны в том же директории. Если вы заинтересованы в
получении информации о дальнейшем развитии, отправьте письмо по адресу
info@bpbatch.org
.