В этом разделе размещаются статьи различной направленности.
Каждому системному администратору, даже не большой локальной сети, приходиться устанавливать или обновлять разнообразные операционные системы. Довольно часто конфигурация оборудования настолько разнообразна, что ни о какой установке ОС с заранее подготовленного образа установленной и настроенной системы, речи быть не может. Для компаний занимающихся разработками клиент-серверного программного обеспечения работа с СУБД Sybase SQL Anywhere [14], Oracle Database [13] и т.д. — список ОС для тестирования серверной части продукта может быть очень большим. Работы по созданию кроссплатформенных приложений тоже требуют наличия разнообразных платформ. В этот список могут входить как все версии серверных и десктопных ОС от Microsoft, так и целый зоопарк популярных операционных систем семейства Unix. Так же время от времени возникает необходимость решения таких «насущных» задач как восстановление систем, загрузчиков, удаление вирусов и т.д. и т.п. Для этого администратору удобно иметь под рукой как минимум два live-дистрибутива (Windows и Unix). Из всего выше сказанного следует, что администратору необходимы носители на которых располагаются все эти ОС, а это достаточно большое количество дисков. Тем более, что в разнообразные системы желательно интегрировать последние сервис-паки и обновления, которые выходят достаточно часто. Это приводит к тому, что носители периодически необходимо перезаписывать, что неэффективно с точки зрения затрат времени.
Следует также отметить, что, из соображений безопасности и по причине экономии при комплектовании рабочих станций не всегда устанавливается DVD привод, а многие системы инсталлируются с DVD дисков. В такой ситуации облегчить жизнь системному администратору поможет сервер сетевой загрузки и установки операционных систем. В интернете существует огромное количество статей и сайтов посвященных этой теме. Но во многих случаях описание процесса установки уже не соответствует новым реалиям, так как написаны достаточно давно. После недавнего внедрения системы сетевой установки на новом сервере, возникло желание поделиться этим опытом.
Существует два стандартных варианта решения этой задачи. Для установки операционных систем семейства Windows существуют всем известные WDS (Windows Deployment Services) и SMS (Microsoft System Management Server). У Unix-подобных систем с давних пор была возможность установки разнообразными методами, в том числе и по сети. Нет сомнения, что для развертывания и установки Windows систем WDS удобен и выполняет свои обязанности, но для инсталляции операционных систем семейства Unix он не очень подходит.
Как известно, основным компонентом сервера сетевой установки является TFTP сервер. Его расположение (IP - адрес) указывается при помощи параметров DHCP. Если DHCP-сервер в вашей сети один, то перенаправлять сетевой загрузчик то на один TFTP сервер, то на другой для загрузки не получится. Поэтому нельзя объявить сразу два источника установки – такой сервер должен быть один. Существует решение для установки Linux систем с помощью Windows WDS - проект WDSLINUX [1]. Его основной минус заключается в том, что не все дистрибутивы поддерживают подключение по smb и http протоколу к серверу установки (для примера http://www.openfiler.com). Обычно такие дистрибутивы требуют подключения по nfs. Мне хотелось получить универсальную схему для установки разных версий Microsoft Windows и Linux, а так же сетевую загрузку разнообразных «спасательных» систем.
Для начала немного теории. Принцип сетевой установки очень прост. При включении компьютера управление передается ПЗУ сетевой карты. Обычно используется среда PXE (Pre-Execution Environment). После распаковки в оперативную память, она активирует сетевую карту и начинает посылать широковещательный запрос в сеть для нахождения сервера DHCP. При ответе DHCP, PXE запрашивает у него IP адрес, который необходимо присвоить сетевой карте, маску сети, IP адрес сервера TFTP, имя файла для загрузки и т.д. Далее, если ответы на вопросы получены при помощи встроенного TFTP-клиента, PXE обращается к указанному серверу с запросом на получение указанного в параметрах файла. Если файл найден и получен то управление передается на него. Всеми последующими действиями будет руководить именно он.
Широкое распространение получил проект Питера Анвина (Peter Anvin) под названием — Syslinux [2]. Он имеет простые конфигурационные файлы и включен в поставку многих Linux дистрибутивов. На официальном сайте дается такое определение этому пакету: «SYSLINUX является загрузчиком для операционных системы Linux, который работает на MS-DOS/Windows FAT файловых системах. Он предназначен для простой загрузки и установки Linux. А также для создания спасательных и других специальных загрузочных конфигураций». В этот пакет входит PXELINUX, который является производной от SYSLINUX и используется для загрузки Linux с сетевого сервера. PXELINUX соответствует Intel PXE (Pre-Execution Environment) спецификации. Основой PXELINUX является файл «pxelinux.0» — это и есть загрузчик. Этот файл располагается в корне TFTP сервера. Его конфигурационные файлы размещаются в папке «/tftpboot/pxelinux.cfg/». После запуска на клиентской машине «pxelinux.0» скачивает с сервера и отображает файл «message». Это простой текстовый файл, в котором описаны доступные варианты загрузки. Затем он скачивает свой конфигурационный файл («/tftpboot/pxelinux.cfg/default») и переходит в режим ожидания ввода имени предоставленных конфигураций. Имя раздела пишется после метки label. В ответ на ввод имени варианта установки «pxelinux.0» начинает выполнять действия описанные в нем. Для создания простого текстового меню файл «/tftpboot/pxelinux.cfg/default» может выглядеть так:
default pe
label xpinstall # Установка Windows XP
kernel startrom.0
label win7 # Установка Windows 7
kernel sources/pxeboot.0label pe # Запуск Live-CD WindowsPE
pxe keep
kernel pe.0
append initrd=winpe.wim ramdisk_size=262144
label suse112 # Установка openSuSe11.2
kernel suse/suse112x32/linux
append initrd=suse/suse112x32/initrd ramdisk_size=65536 install=nfs://192.168.1.7/ srv/tftpboot/suse/suse112x32/CD1/
Так же возможно создание графического меню выбора операционных систем (рис.1-3).
Рисунок 2 Меню «спасательных» систем и утилит
Рисунок 3 Меню установки ОС
В связи с тем, что было много вопросов и обращений по поводу цикла статей посвященных установке и загрузке по сети различных сборок Windows XP и WinPE, под общим названием "Универсальный сервер сетевой загрузки и установки". Я решил: во первых выложить ВСЕ конфигурационные файлы используемые в статьях. Далее привожу список файлов и директорий (как они распологаются у меня) сервера установки. Во вторых попросить всех поделиться своими наработками в этом направлении с описанием "подводных камней" с которыми пришлось столкнуться на разных конфигурациях. И в третьих задать вопрос: "А оно было надо?".
Буду всем благодарен и признателен за ответы.
Содержание файлов в папках в корне tftpboot/
23.09.2010 12:22 4 952 bootfont.bin
23.09.2010 16:32 523 328 bootmgr.exe
27.01.2012 08:12 90 349 568 filesystem.squashfs
27.01.2012 08:12 9 765 456 initrd.img
23.01.2012 18:03 392 540 ipxe.lkn
27.09.2010 16:08 20 068 memdisk
23.09.2010 12:10 54 576 menu.c32
21.09.2012 12:53 3 545 new_winxp.sif
23.09.2010 12:24 47 564 ntdetect.com
13.12.2010 11:55 298 496 ntld1
13.12.2010 11:55 298 496 ntld2
24.01.2011 18:10 298 496 ntld7
29.06.2009 22:14 298 496 NTLDR
23.09.2010 11:51 14 646 pxelinux.0
21.09.2012 12:54 0 tt.txt
27.01.2012 08:12 2 651 200 vmlinuz
13.12.2010 12:08 168 winn1.sif
13.12.2010 12:10 173 winn2.sif
24.01.2011 18:07 166 winn7.sif
21.09.2012 12:51 3 571 winxp.sif
23.09.2010 12:18 241 664 xpldr
Содержание файлов в папках (от корня tftpboot/) и архивах.
Содержание tftpboot/pe/
01.11.2010 13:56 125 984 891 boot.wim
21.09.2012 12:37 0 dir.txt
12.09.2008 15:11 2 949 120 freedos.ima
21.06.2008 00:00 111 864 memtest
24.08.2009 12:28 22 454 startrom1.0
13.12.2010 11:51 22 454 startrom2.0
24.01.2011 18:06 22 454 startrom7.0
27.05.2012 22:14 306 489 726 wim_antivir.wim
27.05.2012 22:20 275 166 347 wim_hdd.wim
12.03.2010 16:07 22 454 xp0.0
Содержание tftpboot/pxelinux.cfg/
02.02.2012 14:12 660 default
26.11.2010 13:05 449 graphics.conf
15.02.2012 15:53 1я886 mini.menu
04.06.2012 10:17 3я851 setup.menu
18.03.2012 11:08 2я337 tools.menu
Содержание tftpboot/reminst/
26.01.2010 17:26 39 convert
21.09.2012 12:43 0 tt.txt
12.03.2010 16:07 22 454 xp0.0
12.03.2010 16:08 241 664 xpldr
Содержание tftpboot/sources/
19.10.2011 14:28 268 609 178 boot.wim
11.06.2009 01:15 25 772 pxeboot.0
Содержание tftpboot/ris
21.09.2012 12:59 0 binl.log
17.03.2007 06:38 12 308 binlsrv.c
23.09.2010 15:29 33 352 binlsrv.py
22.09.2006 09:19 318 contrib.txt
26.09.2007 11:49 1 614 decode.py
21.02.2012 15:37 1 353 523 devlist.cache
21.02.2012 15:37 <DIR> drv
22.09.2006 09:19 1 162 fixloader.py
22.09.2006 09:19 1 409 fixup-repository.sh
26.09.2007 11:49 1 040 hexdump.py
26.09.2007 11:49 1 136 infdump.py
27.04.2008 06:35 11 086 infparser.py
17.03.2007 06:50 5 292 modldr.py
21.02.2012 15:37 11 198 nics.txt
27.04.2008 07:04 <DIR> patches
21.09.2012 13:00 0 tt.txt
26.09.2007 11:45 1 151 wspaste.py
menu7.zip - файлы для установки Windows7: install_menu.cmd, install_menu.cmd install_menu.lst, Wselect.exe
Все файлы есть в архивах с названиями папок, прикрепленных к сообщению.
С разрешения редакции журнала "Системный администратор" публикую продолжение статьи.
В первой части статьи [1] были рассмотрены принципы работы, создание и конфигурирование сервера для инсталляции различных операционных систем в сети. Подготовили и настроили для установки в обычном режиме (вопрос–ответ) два дистрибутива: Microsoft Windows XP и Microsoft Windows 7.
Рассмотрим процесс автоматизации установки операционных систем. Автоматическая установка Windows XP подробно описана не только в официальной документации Microsoft [2], но и в огромном количество how-to разбросанным по интернету [3]. Поскольку Windows XP снята с поддержки, то перейдем к обзору автоматической установки флагманской операционной системы компании Microsoft Windows 7.
Автоматическая установка обеспечивается при наличии в дистрибутиве Microsoft Windows XP текстового файла настройки системы winnt.sif и диспетчер установки setupmgr.exe. В последующих версиях Windows (Microsoft Windows Vista и старше) эту роль играет файл ответов autounattend.xml. Как понятно из расширения он представляет собой простую XML-структуру (рис.1).
Рисунок 1. Структура файла autounattend.xml
В нем можно указать используемые по умолчанию параметры Internet Explorer, настройку сети, принадлежность к домену и т.д. В связи с тем, что теперь в Windows используется модульная архитектура, появилась возможность тонкой настройки каждого компонента устанавливаемой системы, за счет вложенных элементов структуры XML.
Создать файл ответов можно в любом текстовом редактором, но лучше все действия производить при помощи диспетчера установки Windows (Windows Automated Installation Kit или сокращенно WAIK) [4]. Кроме того WAIK проверяет корректность указанных значений и имеет очень удобно реализованную систему помощи. Подробные сведения о том или ином параметре настройки можно узнать из контекстного меню его интерфейса. Вместе с этим продуктом поставляется набор документации, включающий руководство пользователя пакета автоматической установки Windows, а так же средства миграции пользовательской среды и другие документы.
Для просмотра этих документов после установки Windows AIK нажмите кнопку Пуск, последовательно выберите Все программы | Microsoft Windows AIK | Документация, а затем откройте необходимый файл справки. По умолчанию все документы находятся в папке %ProgramFiles%\Windows AIK\Docs\CHMs. Дополнительно в папке C:\Program Files\Windows AIK\Samples обслуживающего компьютера [1] можно найти образец файла ответов (Corp_autounattended_sample.xml).
Рассмотрим пример развертывания образа Windows 7 используя WAIK .Для этого выполним следующие действия:
Врезка.
В данном примере не импортируются специальные драйверы устройств, а так же дополнительные приложения и пакеты. Производиться первоначальное конфигурирование и форматирование дисков, установка редакции и локали системы, а так же ввод ключа продукта.
После выполненных действий в области Файл ответов появится пустой файл с названием Untitled. Далее, выполняем добавление компонентов системы настройки, для этого в панели Образ Windows разворачиваем вкладку Components.
Таблица 1. Компоненты необходимые для создания базового образа Windows
Компонент | Этап настройки |
Microsoft Windows Deployment Reseal | oobeSystem |
Microsoft-Windows-International-Core-WinPE\SetupUILanguage | windowsPE |
Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition |
windows PE |
Microsoft-Windows-Setup\DiskConfiguration\Disk\ModifyPartitions\ModifyPartition |
windowsPE |
Microsoft-Windows-Setup\ImageInstall\OSImage\InstallTo |
windowsPE |
Microsoft-Windows-Setup\UserData |
windowsPE |
Microsoft-Windows-Shell-Setup\OOBE |
oobeSystem |
На основе данных, приведенных в таблице 1 выбираем необходимый параметр нажимаем на нем правой кнопкой мыши. Система предложит выбрать этап настройки, указываем сверяясь с таблицей 1. Приведенные компоненты взяты из официальной документации и являются минимально необходимыми. Присмотревшись внимательнее к названиям в большинстве случаев можно определить за что отвечает каждый компонент. Вопрос который может возникнуть: «Что такое этап настройки?». Этап настройки это момент времени в которое будет производиться описанное действие. Этапы по своей сути очень похожи на «шаги инсталляции» Windows XP. Настройки автоматической установки могут быть применены в одном или нескольких этапах. Нам необходимо использовать этап под названием WindowsPE. Вот как он описан в документации: «...параметры могут включать определение образа ОС Windows для установки и настройки диска на компьютере назначения. На этом этапе настройки, образ Windows копируется на целевой целевой компьютер применяя конфигурацию указанную в WindowsPE.
Если ваша установка Windows PE требует загрузки драйверов для доступа к локальному жесткому диску или сети, используйте этот этап настройки для добавления драйверов в хранилище драйверов Windows PE.»
Все просто и понятно - это самый главный этап для сетевой установки.
Итак, закончив добавление, переходим к редактированию свойств компонентов (рис.2).
Рисунок 2. Редактирование свойств компонента
В области Параметры панели Свойства выбираем нужный параметр и в правом столбце вводим соответствующее значение, как указано в таблице 2. Названия и значения свойств интуитивно понятны и не должны вызвать вопросов.
Таблица 2. Параметры свойств компонента
Этап настройки |
Компонент |
Значение |
WindowsPE |
Microsoft-Windows-International-Core-WinPE |
<язык ввода> |
WindowsPE |
Microsoft-Windows-International-Core-WinPE\SetupUILanguage |
<язык интерфейса> |
WindowsPE |
Microsoft-Windows-Setup\DiskConfiguration |
WillShowUI = OnError |
WindowsPE |
Microsoft-Windows-Setup\DiskConfiguration\Disk |
DiskID = 0 WillWipeDisk = true |
WindowsPE |
Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition |
Order = 1 Size = 100 Type = Primary |
WindowsPE |
Microsoft-Windows-Setup\DiskConfiguration\Disk\ModifyPartitions\ModifyPartition |
Active = true Format = NTFS Label = System Order = 1 PartitionID = 1 |
WindowsPE |
Microsoft-Windows-Setup\ImageInstall\OSImage |
InstallToAvailablePartition = false WillShowUI = OnError
|
WindowsPE |
Microsoft-Windows-Setup\ImageInstall\OSImage\InstallTo |
DiskID = 0 PartitionID = 1 |
WindowsPE |
Microsoft-Windows-Setup\UserData |
AcceptEula = true |
WindowsPE |
Microsoft-Windows-Setup\UserData\ProductKey |
Key = <ключ продукта> WillShowUI = OnError |
Со списком минимально необходимых компонентов, а так же с подробным описанием каждого можно познакомиться в документе под названием «Пошаговое руководство создания файла ответов» — файл stepbystep_itpro.htm дистрибутива [4].
После добавления всех необходимых параметров и компонентов в меню Сервис выбираем Проверка файла ответов. Все значения сравниваются с доступными параметрами выбранного образа Windows. Если проверка прошла успешно, в области Сообщения в нижней части окна Диспетчер установки Windows появляется сообщение Ошибок и предупреждений нет. В противном случае в области Сообщения появляется сообщение об ошибке. Для исправления обнаруженной ошибки, необходимо дважды кликнуть по соответствующему сообщению, чтобы перейти к неверному параметру. Исправляем ошибку, используя встроенную систему помощи и снова выполняем проверку. Повторяем это действие, пока файл ответов не будет годным к эксплуатации. И только после этого сохраняем файл под именем autounattend.xml. Осталось скопировать этот файл в корневую папку сервера сетевой загрузки и исправить вызов setup.exe в файле install_menu.cmd [1] с указанием его имени: setup.exe /unattend: autounattend.xml. Теперь установка системы будет происходить в автоматическом режиме с указанными параметрами.
После создания базового файла ответов его можно изменить, включив дополнительные настройки, автоматизировать части процесса инсталляции путем создания сценариев. Дополнительно интегрировать в загружаемый образ разнообразные драйвера устройств и необходимые приложения. Много информации о настройке и развертывании образа Windows содержаться в разделе Сценарии пакета автоматической установки Windows справки Waik.chm и документации к WAIK [4], а так же по адресу [5].
Добавить в загрузку Linux-дистрибутив не составляет большого труда. Обычно сборщики популярных дистрибутивов таких как CentOS, Ubuntu, openSuSe и т.д. Включают в поставку текстовый файл с описанием установки ОС с сетевого ресурса.
Общий принцип одинаков: загрузка ядра системы установки и передача ему параметров с указанием пути по которому располагается дистрибутив. Так как этот вопрос подробно рассматривался в первой части статьи , то останавливаться на нем не будем. Дополнительную информацию можно найти по адресу [6].
Citrix XenServer является одной из самых популярных платформ виртуализации инфраструктуры масштаба предприятия. Популярность ей обеспечивает отличное средство управления и настройки - Citrix XenCenter, а так же возможность использовать редакцию Free XenServer бесплатно. Рассмотрим установку этой операционной системы в качестве первого примера.
В документации к дистрибутиву в файле installation.pdf [8] приведен пример, готовый к использованию совместно с PXE. Для использования в созданной нами сетевой конфигурации его необходимо немного изменить:
После всех изменений содержимое должно принять такой вид:
#default xenserver # Эта директива установки по умолчанию. Нам она не нужна - есть меню выбора установок
label xenserver # наименование загрузки (на ваш выбор)
menu label Install - ^Citrix XenServer # Название пункта меню
kernel xensrv/mboot.c32 # Ядро-загрузчик установки (xensrv/ - директория на сервере установки)
append xensrv/xen.gz dom0_mem=752M com1=115200,8n1 console=com1,tty --- xensrv/vmlinuz console=ttyS0,115200n8 console=tty0 --- xensrv/install.img # параметры установки рекомендованные Citrix
Рассмотрим за что отвечает каждый параметр:
xen.gz — сжатая файловая система инсталлятора;
dom0_mem=752M — использование памяти хост-машиной;
com1=115200 — виртуальный com-порт;
n1 console=com1 — «привязка» порта к терминалу 8 бит с проверкой четности;
vmlinuz — ядро системы;
console=ttyS0,115200n8 console=tty0 — параметры загрузки ядра ;
install.img — образ установочного диска.
Меню создано, осталось скопировать файлы. Для этого последовательно выполняем:
# mount /media/dvd /mnt # Монтируем DVD или
# mount -o loop /distrib/CitrixXS56.iso /mnt # iso-образ Citrix XenServer 5.6.0
Далее создаем папку /tftpboot/xensrv на сервере и скопируем в нее из /mnt/boot/ файлы ядра vmlinuz и xen.gz. Затем скопируем из /mnt/boot/isolinux папку packages.main и файл install.img. В папке packages.main находятся: dom0fs.tar.bz2 он содержит корневую файловую систему и архивы дополнительных пакетов, разработанных в Citrix, необходимые серверу. Можно включить в установку пакеты которые вам нужны, достаточно просто добавить их в dom0fs.tar.bz2, взяв из соответсвующего репозитория CentOS.
В Citrix XenServer так же предусмотрена возможность автоматической установки. Такой вариант удобен при создании большого количества однотипных серверов, например фермы Citrix App. В этом случае необходимо использовать предварительно созданный файл ответов, путь к которому указываем в параметрах /tftboot/pxelinux.cfg/default перед указанием параметра install.img:
answerfile=http://myhost.ru/5.6.0-answerfile \
install --- /tftpboot/xenserver/install.img
В приведенном листинге myhost.ru — адрес сервера установки (в частном случае это IP-адрес 192.168.1.7); 5.6.0-answerfile — имя файла. Необходимо обратить внимание на то, что обращение к файлу идет по протоколу HTTP (answerfile=http://...).
Для создания файла 5.6.0-answerfile обратимся к инструкции по установке XenServer [8], где приведены готовые примеры. Структура этого XML файла проста и интуитивно понятна (Рис. 3), поэтому не вызовет никаких затруднений при заполнении.
Рисунок 3. Структура файла 5.6.0-answerfile
На этом подготовка закончена и можно проверить установку выбрав в загрузочном меню [1] пункт “Citrix XenServer” (Рис.4).
Рисунок 4. Начало загрузки Citrix XenServer 5.6.0
Все шаги которые были производены для Citrix XenServer, полностью справедливы для дистрибутива Ubuntu. В этом примере использовалась версия Ubuntu — 10.10 x64 и стандартная установка режима cloud. Исключение составляют файлы ответов. Они располагаются в каталоге /preseed/ инсталляционного диска. Небольшая тонкость – они запрашиваются и передаются установщиком по протоколу http (так же как у XenServer, см. выше). Следовательно необходимо установить и настроить HTTP-сервер, например apache, ligth-http, nginx – любой на ваш выбор, указав для него корневую директорию /srv/tftpboot/. Для прямых обращений к HTTP желательно прописать алиасы на директории содержащие файлы систем. Добавляем в /etc/apache2/conf.d/ две конфигурации (еще одну для CentOS). Соотвественно для Ubuntu10.10 файл ubuntu.conf с таким содержанием:
Alias /ubuntu "/tftpboot/ubuntu/"
<Directory "/backup/ubuntu/">
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Для CentOS файл "centos.conf" с таким:
Alias /centos "/tftpboot/centos/"
<Directory "/tftpboot/centos/">
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
В дистрибутиве поставляется несколько вариантов установки конечных систем. Вы можете выбрать подходящий вам и указать соответсвующий ему файл ответов. Мне необходим вариант Cloud и поэтому в моей конфигурации указан /preseed/cloud.seed.
Добавляем в pxelinux.cfg/default описание раздела:
label ubuntu # наименование загрузки (на ваш выбор)
menu label Install - ^Ubuntu-10.10 x64 cloud # наименование пункта меню
kernel ubuntu/linux # ядро установщика
append vga=normal # включить графический режим установщика
initrd=ubuntu/initrd.gz # сжатая файловая система preseed/url=http://192.168.1.7/ubuntu/preseed/cloud.seed – quiet # путь к файлу ответов, параметр “– quiet” - установка с вводом параметров в ручном режиме (необходимо уазывать если не все параметры описаны в файле ответов)
Затем создаем папку /ubuntu/, монтируем iso-образ и копируем все файлы дистрибутива в нее. Проверяем установку выбрав в загрузочном меню пункт Ubuntu-10.10 x64 cloud.
Так как в параметрах указано – quiet, то на вопрос Выбор зеркала архива необходимо выбрать самую верхнюю строку — Ввести информацию вручную. И указать URL папки на сервере установки (Рис. 5,6).
Рисунок 5. Установка Ubuntu- Выбор зеркала архива.
Рисунок 6. Установка Ubuntu- Наше зеркало.
Установка этой операционной системы практически ни чем не отличается от предыдущего примера, наверное сказываются общие корни. Интерес вызывает возможность не распаковывать ISO-образ в папку на сервере, а просто скопировать его в корень HTTP-сервера и указать путь к нему. Итак:
добавляем в pxelinux.cfg/default описание раздела для CentOS-6.0:
label CentOS
menu label Install - ^CentOS-6.0
kernel centos/vmlinuz
append initrd=centos/initrd.img text
В таком варианте после загрузки ядра системы получим стандартное меню инсталлятора и уже с его помощью производите установку системы. При появлении запроса о дистрибутивном устройстве указываете полный путь URI к файлу ISO на сервере (рис.7). О возможностях автоматизации этого процесса можно прочитать в документации к дистрибутиву и по адресу [9].
Рисунок 7. Установка "CentOS 6.0".
В следующей части будут рассмотрены вопросы создания дистрибутивов «спасательных» систем, загружаемых по сети, на базе Windows PE и FreeDOS.
Литература
Итак продолжим тему сетевой загрузки. Полный комплект необходимых (готовых) конфигурационных файлов можно загрузить отсюда - ris-linux.zip. В случае графического меню структура каталогов на TFTP сервере будет выглядеть так:
/tftpboot/
/tftpboot/pxelinux.0 - загрузчик
/tftpboot/menu.c32 - модуль syslinux для создания меню на экране
/tftpboot/pxelinux.cfg/
/tftpboot/pxelinux.cfg/default — описание разделов основного меню
/tftpboot/pxelinux.cfg/graphics.conf — параметры меню: цвет, высота и т.д.
/tftpboot/pxelinux.cfg/fixes.menu - описание дополнительного меню (инструменты)
/tftpboot/pxelinux.cfg/setup.menu - описание дополнительного меню (установки)
Рассмотрим как происходит загрузка и установка Linux на примере openSuSe11.2. При выборе пункта «suse112» загрузчик сначала скачивает ядро («kernel suse/suse112x32/linux»), затем файл сжатой временной файловой системы «initrd» («initrd=suse/suse112x32/initrd»). Как только загрузка завершена «pxelinux.0» запускает на выполнение ядро, передав в качестве аргументов запуска параметры считанные из конфигурационного файла. Запустившись, уже само ядро подключает (монтирует) каталог с дистрибутивом («install=nfs://192.168.1.7/srv/tftpboot/suse/suse112x32/CD1/»), продолжая установку. Следует упомянуть о том, что ядро в этом случае обязательно должно содержать в себе (не как модули) драйвера сетевых карт установленных в компьютерах.
Теперь поговорим о том, как происходит загрузка Windows XP, а так же Windows Server 2003(R2). Для начального старта системы используется файл «startrom.n12». Он находится в архиве «STARTROM.N1_» на дистрибутивном диске Windows XP. Этот файл и запускается на выполнение при выборе пункта меню «label xpinstall» (строка «kernel startrom.0» в конфигурационном файле). Для использования совместно с «pxelinux.0» файл «startrom.n12» необходимо переименовать в «startrom.0».
Загрузившись, «startrom.0» потребует от TFTP сервера файл «ntldr» (сокращение от NT Loader) — загрузчик для операционных систем Windows NT и более поздних (2000/XP/Server 2003). Тот в свою очередь «ntdetect.com», который собирает информацию о составе оборудования. Как только информация собрана, «ntdetect.com» запрашивает файл ответов «winnt.sif». В нем и должны быть описаны пути подключения к серверу и параметры загрузки («OriSrc = "\\192.168.1.7\reminstall\i386"»). Все дальнейшие действия установки будут происходить по этому сценарию.
Для установки ОС от Microsoft я давно использую известный проект RIS for Linux [4]. Он представляет собой набор скриптов на Python [5], которые эмулируют часть работы WDS. Так как ядро Windows не имеет в себе драйверов сетевых карт, они должны загрузиться по сети. Это осуществляется файлом «ntdetect.com», который определяет код оборудования сетевой карты и запрашивает необходимый sys-файл у сервера установки. Здесь в установку включается скрипт «binsrv.py» (эмулятор WDS), который находит требуемый файл и передает его запросившей системе. После загрузки и инициализации устройств подключаются сетевые файловые системы описанные в файле ответов «winnt.sif» и продолжается установка ОС.
В случае Microsoft Vista, Windows 7 и Windows Server 2008 сценарий установки будет выглядеть немного по другому (пункт меню «label win7»). Загружаемым файлом является «pxeboot.0» (переименованный «pxeboot.n12»). Он в свою очередь загружает «bootmgr.exe» – Windows Boot Manager (диспетчер загрузки) и запускает его на выполнение. Тот запрашивает у сервера файл BCD – boot configuration data (хранилище параметров запуска) и на основе полученных данных «bootmgr.exe» производит загрузку «boot.sdi» и «boot.wim» – образа Windows PE. Все выше перечисленные необходимые файлы можно взять из комплекта Windows Automated Installation Kit (AIK) [ссылка].
Настройка
1. Windows-домен с основным контроллером pdc.company.local с IP адресом 192.168.1.1. Операционная система Windows Standart Server 2003 R2 x64, службы AD, DNS, DHCP.
Установку начинаем с сервера DHCP. Открываем оснастку DHCP сервера и в пункте меню «Параметры области» устанавливаем галочки напротив параметров:
Если у вас сервер DHCP на Linux сервере, то в его конфигурационный файл «/etc/dhcpd.conf» необходимо внести поправки добавив директивы:
allow bootp - сообщает серверу dhcp обрабатывать или нет bootp-запросы
allow booting - сообщает серверу обрабатывать ли запрос конкретного клиента.
filename - указывает имя файла, используемого для начальной загрузки клиента
Подробнее об этих опциях можно прочитать в документации к вашему DHCP серверу или по ссылке [15].
Переходим к серверу 192.168.1.7. Устанавливаем, если еще не установлены, необходимые пакеты: tftp, syslinux, convmv, samba, cabextract и интерпретатор python. Для openSuse11.1 можно так:
# yast -i tftp syslinux convmv samba python cabextract.
Настройку TFTP начинаем с создания корневой директории сервера установки:
# mkdir /srv/tftpboot
При установке Windows с использованием Linux возникают известные всем сложности обращения к папкам на сервере: символ «\» надо замещать на «/». Так же есть проблемы с чувствительностью к регистру. Все это решается при помощи опции «remap» tftp сервера. Создаем файл «rules» в «/srv/tftpboot» с таким содержанием (естественно вместо многоточия должны быть остальные буквы для замены):
rg \\ /
rg A a
….....
rg Z z
Добавляем в строку запуска сервера (файл «/etc/xinet.d/tftp») информацию о remap-файле (путь к remap-файлу с ключом -m) и путь корневой директории сервера. Она должна выглядеть так:
tftp -s /srv/tftpboot -m /srv/tftpboot/rules
Перезапускаем xinetd:
# /etc/init.d/xinetd restart
Теперь сервер будет переводить имена всех файлов и директорий в нижний регистр. Соответственно во всех директориях tftp сервера их необходимо привести к этому виду. Эту операцию придется производить каждый раз при изменении файлов в дистрибутивах. Проще всего сделать это при помощи утилиты convmv, установленной ранее:
# convmv --lower -r --notest --replace /srv/ftpboot/*
Создаем в корневой папке tftp сервера каталог с конфигурационными файлами:
# mkdir /srv/tftpboot/pxelinux.cfg
и копируем туда загруженные конфигурационные файлы [3] для создания графического меню. В файле «/tftpboot/pxelinux.cfg/setup.menu» исправляем IP адрес сервера установки («nfs://192.168.1.7/») на IP вашего сервера (где будут располагаться распакованные дистрибутивы). Для текстового меню достаточно создать файл default из примера выше.
Примеры конфигураций можно посмотреть в каталоге /usr/share/doc/packages/syslinux/. В корень сервера копируем файлы самого загрузчика «menu.c32» и «pxelinux.0». Они находятся в директории /usr/share/syslinux/ сервера. С настройкой самого сервера все закончено, переходим к подготовке дистрибутивов.
Продолжение следует...
Начнем с подготовки фалов для установки Windows XP. Монтируем образ диска с системой:
mount -o loop /home/iso/winxpsp3.iso /home/temp/xp
Распаковываем и переименовываем файлы для загрузки:
cd /srv/tftpboot/
cabextract /home/temp/xp/I386/SETUPLDR.EX_
mv /home/temp/xp/I386/setupldr.exe ntldr
cabextract /home/temp/xp/I386/STARTROM.N1_
mv /home/temp/xp/I386/startrom.n12 startrom.0
cp /home/temp/xp/I386/NTDETECT.COM ntdetect.com
cp /home/temp/xp/BOOTFONT.BIN bootfont.bin
Копируем сам дистрибутив и переводим имена всех файлов в нижний регистр:
mkdir /srv/tftpboot/winxp
cp /home/temp/xp/* /srv/tftpboot/winxp/
convmv --lower -r --notest --replace *
Разрешим доступ к дистрибутиву через Windows network добавив в файл
«/etc/samba/smb.conf» секцию (сразу добавим секцию и для установки Windows 7):
[reminstall]
path = /srv/tftpboot/winxp/
public = yes
browsable = yes
read only = yes
guest ok = yes
[win7]
path =/srv/tftpboot/win7
public = yes
browsable = yes
read only = yes
guest ok = yes
Перезапускаем samba:
/etc/init.d/samba restart
Для настройки ris-linux понадобиться сам дистрибутив [4] и пакет драйверов сетевых карт. Готовый архив можно скачать отсюда [7], а можно изготовить самостоятельно (это позволит разобраться как в дальнейшем добавлять новые сетевые карты и обновлять их драйвера).
RIS сервер хранит информацию о драйверах в файле «nics.txt», туда она попадает при помощи скрипта «infparser.py». Скрипт выполняет поиск в указанной ему директории файлов *.inf, считывает информацию о «Vendor Id» (уникальный идентификатор производителя оборудования) производителя и записывает в файл «nics.txt» строку вида:
8086 4227 w39n50.sys w39n50
Создаем папки ris, ris/drv и ris/drv/sys в корне TFTP сервера:
mkdir /srv/tftpboot/ris
mkdir /srv/tftpboot/ris/drv
mkdir /srv/tftpboot/ris/drv/sys
Затем необходимо скопировать и распаковать в папку /srv/tftpboot/ris/drv файлы net*.in_ (из папки i386 дистрибутивного диска). Туда же следует скопировать дополнительно *.inf файлы необходимых для добавления сетевых драйверов. Файлы *.sy_ и *.sys копируем в /srv/tftpboot/ris/drv/sys. После этого составляем список доступных драйверов:
vmhost:/srv/tftpboot/ris # python infparser.py drv/
Compiled 6384 drivers
generated devlist.cache
generated nics.txt
Все, набор драйверов готов. Осталось скопировать содержимое каталогов drv/ и drv/sys/ в директорию с дистрибутивом Windows XP - /srv/tftpboot/winxp/i386/. В итоге в этой папке должны расположиться ВСЕ *.inf и *.sys файлы сетевых карточек. На сайте [10] есть немного другой способ, также пригодный для подготовки пакета драйверов в Windows XP.
Продолжаем настройку ris-linux.
Скачиваем и распаковываем ris-linux в папку с именем /srv/tftpboot/ris :
cd /srv/tftpboot/
wget http://oss.netfarm.it/guides/ris-linux-0.4.tar.gz
tar -xvf ris-linux-0.4.tar.gz
mv ris-linux-0.4 ris
Теперь необходимо указать путь по которому располагается дистрибутив. Для этого открываем файл «binlsrv.py» и правим там строку:
BASEPATH = /srv/tftpboot/winxp/
Запускаем WDS в режиме логирования для проверки :
./binlsrv.py -l binl.log
Succesfully loaded 6384 devices
Binlserver started... pid 7385
Уже сейчас можно проверить работу сервера загрузив тестовый компьютер по сети и выбрав пункт «xpinstall». Если что-то не так проверяйте логи на предмет запрашиваемых у TFTP сервера файлов, они должны присутствовать на сервере в таком виде, как и запрашиваются. Наиболее часто встречающаяся ошибка это: «Выбранный образ операционной системы не содержит необходимых драйверов для имеющегося сетевого адаптера...»(рис.5).
Рисунок 5 Отсутствие необходимых драйверов
- server_args = -s /srv/tftpboot -m /srv/tftpboot/rules -v
Про файл ответов для автоматической установки «winnt.sif» написано очень много. Подробное описание всех параметров «winnt.sif» находиться на сайте Microsoft [9], а так же здесь [10]. В этом файле описываются параметры устанавливаемой системы, которые используются на разных этапах (уровнях) установки. Создать его можно с помощью программ из архива «deploy.cab» находящегося в папке /support/tools/ дистрибутивного диска Windows XP, просто ответив на вопросы конфигуратора. Там же находиться подробная документация в виде chm-файлов по использованию и конфигурации файлов автоматической установки. Для теста можно взять готовый файл моей конфигурации и просто исправить некоторые строки [8]. В начале необходимо исправить следующие параметры: «OriScr» в секции «[data]» (это тот самый путь который мы сделали доступным посредством Samba):
- OriSrc = "\\192.168.1.7\reminstall\i386"
и «SetupSourceDevice» в секции «[SetupData]» (это указание устройства с которого идёт установка):
- SetupSourceDevice = "\Device\LanmanRedirector\192.168.1.7\reminstall"
DriverSigningPolicy=Ignore ; устанавливать драйверы без подписи
UpdateInstalledDrivers=Yes ; Для установки не подписанных драйверовRepartition=Yes ; удалить ВСЕ существующие разделы на диске и создать один для установки и использования системой
; путь поиска дополнительных драйверов во время установки Windows
OemPnPDriversPath="windows\drv\chipset\intel;windows\drv\net\intel;
windows\drv\net\marvell;windows\drv\net\realtek;windows\drv\video\intel;
windows\drv\video\nvidia;windows\drv\video\ati;windows\drv\audio\realtek"
Когда на графическом этапе инсталляции ОС выполняется поиск файлов INF, содержащих нужные идентификаторы Plug and Play устройств, программа просматривает все пути, указанные в переменной OemPnPDriversPath. Это дает возможность правильно инициализировать устройства. Файл «winnt.sif» имеет большое количество параметров, которые позволяют произвести не только основную настройку системы, но и инсталляцию необходимого программного обеспечения.
Установка будет происходить по такому сценарию:
Загрузка по сети образа Windows7 PE (без графической оболочки)
Вызов меню выбора системы для установки («install_menu.cmd»)
Монтирование необходимого сетевого устройстваЗапуск setup.exe с указанием файла ответов
Для создания загрузочного образа Windows7 PE («boot.wim») обязательно понадобиться компьютер с установленной системой Windows 7, Windows Vista, Windows Server 2003 или Windows Server 2008 (я использовал виртуальную машину c Windows 7 — далее обслуживающий компьютер). Устанавливаем Windows Automated Installation Kit (WAIK) (См. Рис.7-9.).
Рисунок 8 Выбор компонентов настройки
Запускаем Windows PE Tools Command Prompt (Пуск-> Программы-> Microsoft Windows AIK -> Windows PE Tools Command Prompt). В действительности это обычное окно программы командного процессора Cmd.exe, только с добавленными дополнительными переменными окружения. Создаем копию загрузочного образа с необходимой архитектурой (параметр x86):
copype.cmd x86 c:\windowspe-x86\
монтируем образовавшийся образ:
Dism /Mount-WIM /WimFile:c:\windowspe-x86\winpe.wim /Index:1 /MountDir:c:\windowspe-x86\mount
Открываем на редактирование файл «startnet.cmd» из каталога c:\windows7pe-x86\mount\windows\system32. Этот файл запускается первым после загрузки и старта системы. Вот в нем и надо прописать вызов скрипта «install_menu.cmd», который будет отвечать за выбор ОС для установки.
Содержание «startnet.cmd»:
Wpeinit # Окончательная инициализация системы ipconfig renew # Инициализируем сетевые интерфейсы call install_menu.cmd
Зачем использовать ipconfig renew? Как показала практика, по неизвестной причине не все сетевые карты инициализируются после выполнения Wpinit. Поэтому еще раз вызываем настройку интерфейса (рис.10).
Рисунок 10 Ошибка инициализации сети
Продолжение следует...
В файле «install_menu.cmd» реализован выбор операционных систем для установки:
@ECHO OFF CD /D "%~dp0" SETLOCAL COLOR 1E wselect.exe install_menu.lst "Выбор системы для установки" /menu /cmdCenter /oemlist /fixedfont /fs=20 CALL :M%ERRORLEVEL% ENDLOCAL GOTO :EOF :M0 :M1 ::Тело скрипта при отказе ECHO Cancel EXIT :M2 :: Тело скрипта запуска X86 ECHO Выбрана система X86 NET USE Z: \\192.168.1.7\win7 IF EXIST Z:\SOURCES\setup.exe ( CD /D Z:\SOURCES setup.exe /unattend:Z:\autounattend.xml ) GOTO :EOF :M3 :: Тело скрипта запуска X64 ECHO Выбрана система X64 NET USE Z: \\192.168.1.7\win7x64 IF EXIST Z:\SOURCES\setup.exe ( CD /D Z:\SOURCES setup.exe /unattend:Z:\autounattendX64.xml ) GOTO :EOF
Скачать архив с этим файлом можно по адресу [12]. Содержание этого архива так же необходимо скопировать в c:\windows7pe-x86\mount\windows\system32. Далее добавляем необходимые вам драйвера (сетевых карт) с помощью команды Dism с параметром /Add-Driver. Эта программа командной строки, доступна в пакете Windows Automated Installation Kit 2.0 (Windows AIK).
Dism /image:c:\windowspe-x86\mount /Add-Driver /driver:c:\mydriver\video\myvideo.inf
Dism /image:c:\windowspe-x86\mount /Add-Driver /driver:c:\mydriver\net\vboxdrv.inf
Заканчиваем редактирование, переходим в каталог c:\windowspe-x86\. Выполняем запись и размонтирование исправленного образа:
Dism /Unmount-WIM /MountDir:c:\windowspe-x86\mount /Commit
Этими нехитрыми действиями получается простейший загрузочный диск Microsoft Windows PE с необходимыми нам драйверами без графического интерфейса.
Переходим к нашему серверу. Создаем в /srv/tftpboot/ папку boot и sources копируем из c:\windowspe-x86\ISO\boot файлы «bcd», «boot.sdi» и папку «fonts» в /srv/tftpboot/boot/. Из c:\windowspe-x86\ файл «winpe.wim» под именем «boot.wim» в /srv/tftpboot/sources/.
Из папки c:\windowspe-x86\ISO\ в корень tftp помещаем файл «bootmgr.exe», а файл «pxeboot.0» в /srv/tftpboot/sources/. Создаем папку /srv/tftpboot/win7, монтируем образ iso с Microsoft Windows 7 и копируем содержимое диска в win7/. Эту операцию (если нужно) повторяем для 64-х разрядной системы. Проверяем загрузку. В случае успеха вы увидите такую картину как на рис.11.
1.Проект WDSLINUX (http://syslinux.zytor.com/wiki/index.php/WDSLINUX )
2.Проект Syslinux (http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project )
3.Комплект конфигурационных файлов для графического меню (http://win.infin.ru/ftp/distrib/risserver/pxelinux.cfg.zip )
4.RIS for Linux (http://oss.netfarm.it/guides/pxe.php )
5.Язык программирования Python (http://www.python.ru )
6.Набор автоматической установки Windows® (AIK) для Windows® 7
(http://www.microsoft.com/downloads/details.aspx?familyid=696DD665-9F76-4... )
7.Набор драйверов сетевых карт (http://win.infin.ru/ftp/distrib/risserver/lan-drivers.zip )
8.Файл winnt.sif (http://win.infin.ru/ftp/distrib/risserver/winnt_sif.zip )
9.Описание параметров файла winnt.sif от Microsoft (http://unattended.msfn.org/unattended.xp/view/web/19/ )
10.Описание автоматической установки XP (http://unattendedxp.com/ )
11.Хорошее описание WAIK (http://www.windowsfaq.ru/content/view/624/90/ )
12.Скрипт выбора ОС (ftp://infin.ru/distrib/risserver/menu7.zip )
13.СУБД Oracle (http://ru.wikipedia.org/wiki/Oracle_ (СУБД))
14.Sybase Adaptive Server Anywhere (ASA) (http://www.sybase.ru )
15.Настройка DHCP (http://lantan.chat.ru/dhcpd.conf.5.html )
16.Проект Whireshark (http://www.wireshark.org/ )
Внимание! Все используемые в статье конфигурационные файлы можно скачать по этой ссылке
http://www.winpe.ru/content/universalnyy_server_setevoy_zagruzki_i_ustanovki_fayly1. Форматируем USB MSD при помощи "1_Форматирование_и_установка_BOOT-сектора\RMPREP21706\RMPREPUSB.exe".
2. Далее можно или setupldr.bin или grldr из GRUB4DOS скопировать на отформатированный USB MSD под именем "ntldr"
3. Настраиваете меню и прочие плюшки под себя.
Как вариант возможного применеия привожу усеченный вариант своей структуры загрузочного диска в папке 2_Структура_загрузочного_диска_USB установочного комплекта.
Ссылка на скачку установочного комплекта: Полный установочный комплект USB со структурой загрузочного диска
Привожу описание установочного комплекта для понимания общих принципов построения структуры загрузки:
\ntldr - загрузчик GRUB4DOS со встроенным меню
\BOOT\GRUB4DOS\866.PSF и \BOOT\GRUB4DOS\TEXTFONT - модули поддержки кириллической кодовой страницы(CP866) в ТЕКСТОВОМ меню GRUB4DOS
\BOOT\LOADER\ldr_av.bin - загрузчик антивирусной WIM-сборки со встроенным NTDETECT.COM, обрабатывает WINNT.SIF под именем \BOOT\nt.a
\BOOT\LOADER\ldr_cd.bin - загрузчик CD-сборкисо встроенным NTDETECT.COM, обрабатывает WINNT.SIF под именем \BOOT\nt.y - естественно, что такой файл отсутствует в комплекте для предотвращения случайных совпадений.
\BOOT\LOADER\ldr_hd.bin - загрузчик HDD-tools WIM-сборки со встроенным NTDETECT.COM, обрабатывает WINNT.SIF под именем \BOOT\nt.h
\BOOT\PLOP\PLPBT.BIN - загрузчик модуля PLOP для ускорения при использовании USB MSD
\BOOT\nt.a - SIF-файлы для загрузчиков \BOOT\LOADER\ldr_av.bin - именно в нем прописана ссылка на загружаемый WIM
\BOOT\nt.h - SIF-файлы для загрузчиков \BOOT\LOADER\ldr_hd.bin - именно в нем прописана ссылка на загружаемый WIM
\BOOTWIM\ - папка для размещения загрузочных WIM-файлов antivir.wim и hdd.wim
\MININY\ - папка для файлов системной папки CD-сборки - из \Y386\ все копируем сюда. При этом существующий \Y386\setupldr.bin абсолютно игнорируется.
\PROGRAMS\ - папка для файлов программ CD-сборки - из \PROGRAMS\ все копируем сюда.
В папке установочного комплекта \3_Решение_проблем\ находятся добавочные материалы и утилиты:
3_Решение_проблем\GRUB4DOS\Работа_со_встроенным_меню - выгрузка и загрузка встроенного меню GRUB4DOS
3_Решение_проблем\Patch_NTDETECT_for_USB - патч NTDETECT.COM для USB-загрузки
3_Решение_проблем\Загрузчики_SETUPLDR - различные варианты загрузчиков и скрипт для их модификации.
PS: Ссылки для ознакомления и самостоятельного изучения:
- Руководство по Grub4dos на русском языке
1. Создаем в корне загрузочного раздела пустой файл с именем "System Volume Information".
2. В свойствах этого файла на вкладке безопасность отключаем наследование прав и добавляем имена "SYSTEM" и "Все" ("All" для англоязычной системы). Все остальные имена убираем. На именах "SYSTEM" и "Все" выставляем запрет на все.
3. Поочередно:
- выделяем все оставшиеся файлы в корне диска и отключаем наследование прав;
- выделяем все папки в корне диска и отключаем наследование прав.
4. На уровне прав безопасности диска добавляем имя "Все" ("All" для англоязычной системы) и убираем все остальные имена. Для имени "Все" убираем права на изменение и запись(именно убрать права, а не поставить запрет!)
На этом все готово - корень защищен, во внутренние папки писать можем, точку восстановления система создать не сможет.
При желании можно дополнить файлами: '$RECYCLE.BIN", "Recycled", "Recycler" и папкой "Autorun.inf". Права на эти добавочные обекты выставляются аналогично правам на файл "System Volume Information".
Мне очень понравилась вот эта статья. Приведу начало и ссылку на источник.
Автор: Игорь Осколков Дата: 15.09.2011
Многие наверняка уже давно знакомы с такой штукой, как Live CD, — воткнул диск в привод, подождал, пока загрузится ОС, и всё, компьютер готов к использованию за считаные минуты. Конечно, для полноценной работы Live CD не очень подходит, но в некоторых случаях он очень полезен.
Так почему бы самостоятельно не сделать «живую» сборку под свои нужды? Напоминаем, что попытки повторить действия автора могут привести к потере гарантии на оборудование и даже к выходу его из строя. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз.
Десять лет назад из недр Microsoft появилась новая ОС Windows XP, а вместе с ней увидела свет очередная среда WinPE, Windows Preinstallation Environment — фактически урезанная донельзя ОС Windows, в которой запускались служебные программы для установки самой системы на компьютер. На базе этой среды уже можно было без особых трудозатрат создавать собственные Live-сборки XP — практически полноценные системы, которые загружались с CD на любом (ну почти любом) ПК и служили для относительно узких задач вроде восстановления системы, антивирусного сканирования, выуживания данных, а то и просто для сверхбыстрой организации рабочего места.
С появлением BartPE создание собственного Live CD стало совсем уж простым делом. Увы, этот продукт уже очень давно не обновлялся, и для работы c Windows Vista или 7 он не подходит. На смену ему пришёл WinBuilder, с которым мы и познакомимся исключительно в учебных целях в этом материале...
Оригинальный текст: http://www.3dnews.ru/workshop/616791/
WinPE был первоначально предназначен, чтобы использоваться только как прединсталяционная платформа для запуска Microsoft Windows, заменяя DOS. Но позже он стал использоваться крупными компаниями для предустановки Windows. Для восстановления работоспособности операционной системы для запуска 32-битных или 64-битных программ, таких как Paragon Drive Backup или Symantec Ghost. Также этот продукт может быть использован разработчиками для тестирования. Много людей в интернете создают собственные WinPE загрузочные CD с помощью BartPE. Изначально для создания образов WinPE необходимо было обладать подпиской SA (Software Assurance), OEM или ISV-лицензией. В версии 2.0 это ограничение было снято. Текущая версия (3.0) основана на Windows 7.
- 1. Windows PE 1.0 Собрана на первой версии Windows XP Professional.
- 2. Windows PE 1.1 Собран на основе Windows XP Professional с сервис паком 1 (SP1).
- 3. Windows PE 1.2 Собран на основе Windows Server 2003 семейства.
- 4. Windows PE 2004 (1.5) Собран на основе Windows XP Professional с сервис паком 2 (SP2).
- 5. Windows PE 2005 (1.6) Собран на основе Windows Server 2003 с сервис паком 1 (SP1).
- 6. Windows PE 2.0 Основана на Microsoft Windows Vista
- 7. Windows PE 2.1 Собран на Windows Server 2008, с Windows Vista SP1.
- 8. Windows PE 2.2 Собран на Windows Server 2008 SP1, с Windows Vista SP2.
- 9. Windows PE 3.0 Собран на основе Windows 7.
@ECHO OFF :: Установка плагинов из списков в конце скрипта при первом запуске. Потом их надо будет включить. :: Установка вида браузера :: SET "BROWSER=EDGE" SET "BROWSER=CHROME" :: Установка разрядности браузера ::SET "BROWSER_ARCH=X86" SET "BROWSER_ARCH=X64" CALL :%BROWSER%_%BROWSER_ARCH% FOR /F "usebackq tokens=1 delims=:" %%a IN (`FINDSTR /N /B /C:":BEGIN_%BROWSER%" "%~0"`) DO SET "SKIP_LINE=%%a" CALL :WORK "%SKIP_LINE%" ":END_%BROWSER%" "%~0" GOTO :EOF :WORK FOR /F "usebackq skip=%~1 tokens=1,2 eol=; delims=|" %%a IN (`TYPE "%~3"`) DO IF NOT "%%a"=="%~2" (CALL :INSTALL_PROCEDURE "%%a" "%%b") ELSE (GOTO :EOF) GOTO :EOF :INSTALL_PROCEDURE ( REG add "%INSTALL_PATH%\%~1" /v update_url /t REG_SZ /d "%~2" /f ) GOTO :EOF :EDGE_X64 SET "INSTALL_PATH=HKLM\Software\Wow6432Node\Microsoft\Edge\Extensions" GOTO :EOF :EDGE_X86 SET "INSTALL_PATH=HKLM\Software\Microsoft\Edge\Extensions" GOTO :EOF :CHROME_X64 SET "INSTALL_PATH=HKLM\Software\Wow6432Node\Google\Chrome\Extensions" GOTO :EOF :CHROME_X86 SET "INSTALL_PATH=HKLM\Software\Google\Chrome\Extensions" GOTO :EOF ;Идентификатор расширения;Путь откуда выполняется установка - специфичен для каждого магазина;Наименование расширения ; Символ ";" в начале строки - признак коментария и такая строка игнорируется :BEGIN_CHROME ; Общие расширения dlnpfhfhmkiebpnlllpehlmklgdggbhn|https://clients2.google.com/service/update2/crx|Don't Close Window With Last Tab cjpalhdlnbpafiamejdnhcphjbkeiagm|https://clients2.google.com/service/update2/crx|uBlock Origin npgcnondjocldhldegnakemclmfkngch|https://clients2.google.com/service/update2/crx|Обход блокировок Рунета ; "Ключевые" расширения iifchhfnnmpdbibifmljnfjhpififfog|https://clients2.google.com/service/update2/crx|CryptoPro Extension for CAdES Browser Plug-in ohedcglhbbfdgaogjhcclacoccbagkjg|https://clients2.google.com/service/update2/crx|Адаптер Рутокен Плагин momffihklfhkoakghidmkdocdkbfmoac|https://clients2.google.com/service/update2/crx|Контур.Расширение pbefkdcndngodfeigfdgiodgnmbgcfha|https://clients2.google.com/service/update2/crx|Расширение для плагина Госуслуг. :END_CHROME ;Идентификатор расширения;Путь откуда выполняется установка - специфичен для каждого магазина;Наименование расширения ; Символ ";" в начале строки - признак коментария и такая строка игнорируется :BEGIN_EDGE ; Общие расширения feebepaidmpgnkpngmeldoooofaacbhi|https://edge.microsoft.com/extensionwebstorebase/v1/crx|Don't Close Window With Last Tab odfafepnkmbhccpbejgmiehpchacaeak|https://edge.microsoft.com/extensionwebstorebase/v1/crx|uBlock Origin ajgpnodjpffiagcfmifildjpoaeiobfh|https://edge.microsoft.com/extensionwebstorebase/v1/crx|Обход блокировок Рунета ; "Ключевые" расширения iifchhfnnmpdbibifmljnfjhpififfog|https://clients2.google.com/service/update2/crx|CryptoPro Extension for CAdES Browser Plug-in ohedcglhbbfdgaogjhcclacoccbagkjg|https://clients2.google.com/service/update2/crx|Адаптер Рутокен Плагин nhbmmgegnhdhkcclaandbaipceebnckc|https://edge.microsoft.com/extensionwebstorebase/v1/crx|Контур.Расширение pbefkdcndngodfeigfdgiodgnmbgcfha|https://clients2.google.com/service/update2/crx|Расширение для плагина Госуслуг. :END_EDGE
Достаточно старая статья с сайта www.thg.ru , но зерна смысла еще остались. Рекомендуется к прочтению.
Любой хороший рецепт начинается со списка ингредиентов. Вот что вам понадобится для создания загрузочной "флэшки" WinPE/WinRE (предполагается использование Windows Vista с пакетом обновления SP1 или выше).
Без учёта времени скачивания на выполнение этой задачи уйдёт около часа. Далее представляем вам последовательные шаги, которые нужно выполнить для создания тех файлов, которые необходимо будет скопировать на UFD:
Вот и всё, что нужно для создания образа Windows PE, который вы, в конечном счёте, скопируете на свою USB-"флэшку". Дальнейшие команды показаны на следующем скриншоте.
В качестве загрузочного USB-диска мы решили использовать "флэшку" десятилетней давности - FujiFilm ёмкостью 256 Мбайт.
В командной строке окна PETools вызывается утилита "diskpart", затем выполняется последовательность команд (см. скриншоты ниже). Только будьте очень внимательны, выбирая номер диска, соответствующий вашей USB-"флэшке". На самом деле всё легче, чем может показаться.
4. Для создания загрузочного образа Windows PE на USB-диске вам нужно скопировать папку ISO внутри c:\winpe_x86 на свой чистый флэш-накопитель. Сделать это можно с помощью команды xcopy (обратите внимание, что в конце команды мы указали диск J:, у вас же USB-диск может быть обозначен другой буквой).
Мы показали только начальный и конечный фрагменты результатов выполнения команды xcopy, поскольку целиком это заняло бы слишком много места. Запомните, что файл под названием boot.wim хранится в папке \sources\ (потом нам это очень пригодится). А пока обратите внимание, что это образ Windows, который вы создали с помощью команды copype.cmd в самом начале. Он содержит всю среду WinPE 2.0, но не включает в себя опции восстановления системы (System Recovery Options), которые мы упоминали в начале статьи.
Что делать, если Vista "слетела", и на компьютере больше не загружается операционная система? Оказывается, спасти положение может USB-"флэшка". Вы можете использовать USB-флэш-накопители (Microsoft называет их UFD) с файлом образа Windows (.wim) для окружения Windows Preinstallation Environment, которое предоставляет быстрый доступ к опциям восстановления системы (System Recovery Options).
Однако помимо помощи в ситуации, когда компьютер перестаёт запускаться, эта загрузочная "флэшка" может выполнять ещё много интересных функций. В данной статье мы опишем процесс создания такого загрузочного устройства, а также расскажем о некоторых его полезных функциях. Каждая копия Windows Vista поставляется с установочными дисками или файлами, содержащими специальную урезанную версию операционной системы, которую Microsoft называет Windows Preinstallation Environment 2.0 (более известна как Windows PE, или WinPE).
Вам может показаться, что вы никогда не пользовались WinPE, но это не так. Например, когда вы устанавливаете Windows Vista, то код, который позволяет загружать командную строку или среду восстановления Windows Recovery Environment (известную также как Windows RE, или WinRE), берётся как раз из WinPE. Хотя публично Microsoft этого не признает, именно Windows Preinstallation Environment (WinPE) позволяет создавать загрузочные USB-"флэшки" вместо того, чтобы использовать более трудоёмкую среду Windows Recovery Environment (WinRE). Готовый рецепт для создания загрузочной "флэшки" WinPE/WinRE Любой хороший рецепт начинается со списка ингредиентов. Вот что вам понадобится для создания загрузочной "флэшки" WinPE/WinRE (предполагается использование Windows Vista с пакетом обновления SP1 или выше).
Эта утилита предлагается в виде ISO-образа для записи на DVD (ISO - формат загрузочного диска, принятый Международной организацией по стандартизации (International Organization for Standardization)). Если у вас есть Nero Burning ROM, Easy DVD Creator или какая-нибудь другая программа для прожига DVD, то используйте их. Если нет, тогда воспользуйтесь свободно распространяемой утилитой "ISO Recorder v3" от Alex Feinman.
Если вы хотите создать загрузочную среду восстановления Vista WinRE (с теми же функциями восстановления, описанными выше), вам понадобится установочный DVD для Vista, с которого вы сможете взять эту утилиту. USB-"флэшка" (UFD) размером как минимум 256 Мбайт.
Гигабайтная модель подойдёт больше, если вы решите переключаться между загрузочными образами Windows PE и Windows RE. Если на вашей "флэшке" что-то записано, то скопируйте это куда-нибудь, потому что вам придётся стереть "флэшку" на этапе подготовки к созданию загрузочного образа WinPE или WinRE. Создание образа WinPE Без учёта времени скачивания на выполнение этой задачи уйдёт около часа.
Далее представляем вам последовательные шаги, которые нужно выполнить для создания тех файлов, которые необходимо будет скопировать на UFD: 1. Скачайте Windows AIK и ISO Recorder v3 (ссылки приведены выше). 2. Запишите ISO-образ на DVD-диск, затем запустите файл под названием startcd.exe для запуска Windows AIK. Вот что должно появиться на экране. 3. Выберите опцию "Windows AIK Setup" (обратите внимание на технические требования к компьютеру, на который устанавливается AIK: это должен быть ПК с операционной системой Vista, приводом CD/DVD, с программным обеспечением для записи образов, .NET Framework 2.0 и сетевым доступом. Оперативной памяти должно быть минимум 512 Мбайт, хотя рекомендуется 1 Гбайт и больше. Подробную информацию о сборке такого технического компьютера можно найти здесь). Далее следуйте шагам установки. 4. В меню "Start/Пуск" последовательно щёлкните "All Programs/Все программы", "Windows AIK", "Windows PE Tools Command Prompt/Утилиты командной строки Windows PE". В результате появится такое окно (все последующие команды будут вводиться в это окно командной строки; приглашение на ввод команды мы заменили на PETools>). 5. Базовый набор файлов создаётся командой Copype.cmd x86 C:\winpe_x86. Для 32-битной системы используйте x86, а для 64-битной версии - x64. Все исполняемые файлы WinPE, дополнительные компоненты и папки будут располагаться в вашем компьютере в каталоге C:\winpe_x86. 6.
Далее вы можете скопировать любые программы и утилиты, которые вы хотите использовать, из папки WAIK "Tools" в соответствии с нужной архитектурой (x86 для 32-битной Vista и x64 для 64-битной Vista) в папку ISO внутри C:\winpe_x86. Мы выбрали Imagex.exe и Package Manager (команды приведены ниже). Вот и всё, что нужно для создания образа Windows PE, который вы, в конечном счёте, скопируете на свою USB-"флэшку".
Дальнейшие команды показаны на следующем скриншоте. Создание загрузочного USB-диска с WinPE В качестве загрузочного USB-диска мы решили использовать "флэшку" десятилетней давности - FujiFilm ёмкостью 256 Мбайт. В командной строке окна PETools вызывается утилита "diskpart", затем выполняется последовательность команд (см. скриншоты ниже). Только будьте очень внимательны, выбирая номер диска, соответствующий вашей USB-"флэшке". На самом деле всё легче, чем может показаться. 1. После того, как вы вставите USB-"флэшку", и она отобразится в проводнике, введите команду "diskpart" в командной строке. После этого введите команду "list disk", чтобы отобразить список дисков по номерам и размерам. Обратите внимание, что Disk 4 имеет размер всего 244 Мбайт, а значит, это и есть наш USB-диск. Вы так же легко сможете вычислить свою "флэшку" по её размеру. Если возникнут сомнения, отключите все другие USB-накопители, чтобы в списке остался только один диск небольшой ёмкости. Выберите нужный диск, указав его номер.
В нашем случае мы выполнили команду "select disk 4". 2. Затем нужно очистить диск, создать основной раздел (его размер не должен превышать число, указанное в колонке "Size"), выбрать этот раздел и сделать его активным. 3. Отформатируйте диск в файловой системе Fat32, инициализируйте назначение буквы и завершите работу утилиты "diskpart". Внимание! Даже на USB-накопителях маленькой ёмкости операция форматирования занимает какое-то время (чем больше ёмкость диска, тем дольше процесс форматирования). 4. Для создания загрузочного образа Windows PE на USB-диске вам нужно скопировать папку ISO внутри c:\winpe_x86 на свой чистый флэш-накопитель. Сделать это можно с помощью команды xcopy (обратите внимание, что в конце команды мы указали диск J:, у вас же USB-диск может быть обозначен другой буквой).
Мы показали только начальный и конечный фрагменты результатов выполнения команды xcopy, поскольку целиком это заняло бы слишком много места. Запомните, что файл под названием boot.wim хранится в папке \sources\ (потом нам это очень пригодится). А пока обратите внимание, что это образ Windows, который вы создали с помощью команды copype.cmd в самом начале. Он содержит всю среду WinPE 2.0, но не включает в себя опции восстановления системы (System Recovery Options), которые мы упоминали в начале статьи.
Модули mod_cache и mod_disk_cache
Теперь включить:
a2enmod cache
a2enmod disk_cache
/etc/init.d/apache2 restart
Чтобы каталог для кеша /var/cache/apache2/mod_disk_cache не переполнится через какое-то время, придется чистить его командой htcacheclean.
Эта команда часть пакета apache2-utils,
После можно запустить htcacheclean как демон:
htcacheclean -d30 -n -t -p /var/cache/apache2/mod_disk_cache -l 100M -i
Это позволит чистить каталог с кешем каждые 30 минут и удостовериться, что он не превысит 100MB.
mod_mem_cache
Конфигурация mod_mem_cache в mem_cache.conf
CacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
Это конфигурация по умолчанию. Список директив для mod_mem_cache досотупен в ман.
Включим mod_cache и mod_mem_cache:
a2enmod cache
a2enmod mem_cache
/etc/init.d/apache2 restart
Описание настройки собственного PXE сервера на основе TFTPD32 для загрузки WinPE или BartPE.
PXE и процесс загрузки по сети
Стандарт PXE (Preboot Execution Environment) позволяет превратить сетевую карту в одно из устройств, с которого может загрузиться компьютер. Разработку данного стандарта начала компания Intel, еще 1999 году, а потом к разработке присоединились такие гиганты компьютерной индустрии, как 3Com, HP, Dell, Compaq. Стандарт прижился. И сейчас, пожалуй, не возможно, найти современной сетевой платы без поддержки PXE.
Конечно для того, чтобы компьютер смог загрузиться по сети одного PXE не достаточно. Нужно еще наличие в сети серверов TFTP и DHCP.
Процесс загрузки по сети можно упрощенно описать примерно так.
При включении компьютера, начинает работать PXE загрузчик, который находится в памяти (boot ROM) сетевого адаптера. Сетевая карта отправляет запрос к серверу DHCP для получения IP адреса. Получив запрос, DHCP сообщает сетевой плате IP адрес, маску сети, адрес TFTP сервера и имя загрузочного файла. После обработке полученных данных PXE обращается к серверу TFTP и загружает файл. Получив файл, PXE прекращает свою работу и передает управление загруженной программе.
Подготовка файлов
Создадим каталог для сетевой установки C:\PXE. Внутри создадим каталог, например WinPE.
Сетевая загрузка WinPE делится на два этапа. На первом этапе происходит загрузка файлов по протоколу TFTP. А на втором этапе файлы загружаются по протоколу CIFS (старое название SMB). Протокол CIFS более известен, как общий доступ к файлам и принтерам сети.
Поэтому для второго этапа загрузки нужно:
Для этого нажимаем, правую клавишу мыши на "My Computer (Мой компьютер)" и выбираем "Manage (Управление)". Раскрываем "System Tools (Служебные программы)", "Local Users and Groups (Локальные пользователи и группы)". Выбираем "Users (Пользователи)". В правой части экрана нажимаем правую клавишу мыши на "Guest (Гость)" и выбираем "Properties (Свойства)". В появившемся окне убираем флажок с "Account is disabled (Отключить учетную запись)" и нажимаем кнопку OK
Для этого нажимаем "Start (Пуск)", выбираем "Control Panel (Панель управление)", "Administrative Tools (Администрирование)". В появившемся окне выбираем "Local Security Policy (Локальная политика безопасности)". После загрузки оснастки "Local Security Settings (Локальные параметры безопасности)", разворачиваем "Local Policies (Локальные политики)" и выбираем "User Rights Assignments (Назначение прав пользователя)". В правой части нажимаем дважды левую клавишу мыши на "Deny access to this computer from the network (Отказ в доступе к компьютеру по сети)". В появившемся списке отмечаем "Guest (Гость)" и нажимаем кнопку "Remove (Удалить)". Для подтверждения изменений нажимаем кнопку удалить.
Подготовка сборки WinPE для загрузки по сети
Копируем содержимое сборки(каталоги I386 и Programs) в каталог C:\PXE\WinPE
Копируем из каталога C:\PXE\WinPE\I386 файл ntdetect.com в каталог C:\PXE
Разархивируем файлы (из дистрибутива Windows XP/Windows 2003) setupldr.ex_ и startrom.n1_ в каталог C:\PXE. Сделать это можно с помощью архиватора 7-zip или команд:
expand D:\WINXP\I386\setupldr.ex_ С:\PXE\WinPE\ntldr
expand D:\WINXP\I386\startrom.n1_ С:\PXE\WinPE\startrom.n12
Следует переименовать startrom.n12 в startrom.0
При работе с локализированной сборкой рекомендуется копировать файл bootfont.bin из каталога C:\PXE\WinPE в C:\PXE.
Распаковываем каталоги tftpd32, infparser и файл binlsrv.exe в C:\PXE
Настройка TFTP сервера (TFTPD32)
Сначала для удобства следует отключить не нужные сервисы, оставив только "TFTP Server" и "DHCP Server". Затем следует указать каталог, в котором TFTP сервер будет искать файлы. За это отвечает параметр "Base Directory". В нашем случае это C:\PXE. Также следует включить "Option negotiation", "Allow '\' As virtual root" и "Translate Unix file names". Остальные опции выключены.
Настройке DHCP сервера (TFTPD32)
Для загрузки по сети DHCP должен присвоить IP адрес и указать имя загружаемого файла.
Предположим на компьютере, который выступает в роли PXE сервера, присвоен IP адрес 192.168.0.1 с маской сети 255.255.255.0. Параметр "IP Pool starting address" указывает начальный IP адрес, с которого DHCP будет начинаться выдавать адреса. Установим значение в 192.168.0.10. Параметр "Size of pool" указывает, сколько компьютеров могут получить IP адреса от TFTPD32. Установим значение в 10. Параметр "Boot File" указывает, какой файл необходимо загрузить. В нашем случае это startrom.0. Если на компьютере несколько сетевых подключений, тогда рекомендуется включить опцию "Bind DHCP to this address" и указать наш IP 192.168.0.1.
Настройка программы RIS-LINUX от Sherpya
Во время загрузки WinPE должна получить информацию, какой драйвер для сетевой платы она должна использовать. Эту информация предоставляет служба BINL. В качестве службы BINL будет использоватся программа ris-linux. Эта программа написана на языке Python, но мы будем использовать портированную под Windows версию.
Для работы BINL требуется создать базу данных сетевых драйверов следующей командой:
C:\PXE\infparser\infparser.exe C:\PXE\WinPE\I386\inf
Подготовка файла winnt.sif
Для загрузки WinPE также потребуется файл C:\PXE\winnt.sif такого содержимого:
[SetupData]
OsLoadOptions = "/noguiboot /fastdetect /minint"
SetupSourceDevice = "\Device\LanmanRedirector\192.168.0.1\PXE\WinPE"
[UserData]
ComputerName = *
Завершение
Чтобы наконец заработал наш PXE сервер, достаточно запустить binlsrv.exe и перезапустить tftpd32.
В ходе написание статьи были использованы материалы с сайта http://unattendedxp.com/ , а также собственные наработки. Вроде ничего не забыл. Сильно не пинайте.
Описание настройки собственного PXE сервера на основе TFTPD32 для загрузки WinPE или BartPE.(WIM Загрузка)
Это продолжение статьи "Сетевая загрузка PXE на основе TFTPD32", поэтому я не буду описывать краткое изложение предыдущей части, а напишу ключевые особенности загрузки WIM сборок по сети.
Подготовка файлов
Создадим каталог для сетевой установки C:\PXE. Внутри создадим каталог, например WinPE.
При сетевой загрузке WinPE WIM будет происходить передача файлов только по протоколу TFTP. А не в два этапа как в предыдущей статье.
Подготовка сборки WinPE для загрузки по сети
Копируем WIM файл сборки(BootSDI.wim или WinPE.wim) в каталог C:\PXE\WinPE
Копируем из сборки файл ntdetect.com (если он присутствует) в каталог C:\PXE
Разархивируем файл (из дистрибутива Windows XP/Windows 2003) startrom.n1_ в каталог C:\PXE. Сделать это можно с помощью архиватора 7-zip или команды:
expand D:\WINXP\I386\startrom.n1_ С:\PXE\WinPE\startrom.n12
Следует переименовать startrom.n12 в startrom.0
Также потребуется специальный загрузчик PXELDR-WIM-291 или PXELDR-WIM-337, последний отличается встроенный ntdetect.com. Поэтому не расстраивайтесь если не найдете его в сборке. Загрузчик следует переименовать в NTLDR и положить в каталог C:\PXE
При работе с локализированной сборкой рекомендуется копировать файл bootfont.bin из сборки в каталог C:\PXE.
Распаковываем каталог tftpd32 в C:\PXE
Настройка TFTP сервера (TFTPD32)
Сначала для удобства следует отключить не нужные сервисы, оставив только "TFTP Server" и "DHCP Server". Затем следует указать каталог, в котором TFTP сервер будет искать файлы. За это отвечает параметр "Base Directory". В нашем случае это C:\PXE. Также следует включить "Option negotiation", "Allow '\' As virtual root" и "Translate Unix file names". Остальные опции выключены.
Настройке DHCP сервера (TFTPD32)
Для загрузки по сети DHCP должен присвоить IP адрес и указать имя загружаемого файла.
Предположим на компьютере, который выступает в роли PXE сервера, присвоен IP адрес 192.168.0.1 с маской сети 255.255.255.0. Параметр "IP Pool starting address" указывает начальный IP адрес, с которого DHCP будет начинаться выдавать адреса. Установим значение в 192.168.0.10. Параметр "Size of pool" указывает, сколько компьютеров могут получить IP адреса от TFTPD32. Установим значение в 10. Параметр "Boot File" указывает, какой файл необходимо загрузить. В нашем случае это startrom.0. Если на компьютере несколько сетевых подключений, тогда рекомендуется включить опцию "Bind DHCP to this address" и указать наш IP 192.168.0.1.
Подготовка файла winnt.sif
Для загрузки WinPE также потребуется файл C:\PXE\winnt.sif который можно взять или из сборки или написать самостоятельно с таки содержимым:
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\i386\System32\"
OsLoadOptions="/fastdetect /minint /noguiboot /rdimageoffset=8192 /rdimagelength=3161088 /rdpath=WinPE\winpe.wim"[UserData]
ComputerName = *
Заключение
В этой части я опишу особенности с которыми Вы можете столкнутся при создании сетевой загрузки.
Дело в том что многие авторы используют нестандартные имена каталогов и это может стать настоящей проблемой.
Итак, файл:
startrom.0 имеет ссылку на файл NTLDR, и если у вас файлов несколько или файл NTLDR имеет другое имя это нужно учесть.(Имеет значение только при мультизагрузке)
NTLDR содержит I386, ntdetect.com и winnt.sif (при загрузке россыпи имеет значение только I386, при мультизагрузке ntdetect.com и winnt.sif, при WIM загузке ничего менять не нужно)
Чтобы произвести нужные модификации нужно иметь HEX редактор или следующие утилиты:
rep.vbs: cscript rep.vbs c:\pxe\startrom.0 ntldr c:\pxe\startrom.0 ntldm /force (замена ntldr на ntldm в файле startrom.0)
gsar: gsar -o "-sI386" "-rY386" "C:\pxe\NTLDR" (Утилита регистрочувствительна, поэтому требует замену дважды, один раз в верхенм регистре и один раз в нижнем)
gsar -o "-si386" "-ry386" "C:\pxe\NTLDR"
Обе утилиты, два загрузчика PXELDR-WIM, также TFTPD32 Вы сможете найти во вложении ниже.
“Мы строили строили и наконец построили..."
Чебурашка.
Первая и вторая части статьи были посвящены установке и конфигурированию сервера для загрузки и инсталляции с сети разнообразных дистрибутивов операционных систем. Будем считать, что все настроено и работает. Из поставленных задач, остается только один вопрос: “Как это может помочь лечить от вирусов компьютеры, восстанавливать ОС и загрузчики и т.д.?". Ответу на этот вопрос и посвящается эта часть.
Во времена, когда операционная система Windows XP только начинала свое победное шествие по десктопам пользователей, с ней происходили разные необъяснимые вещи, вроде синих экранов смерти (BSOD), испорченных загрузчиков и т.д. В связи с этим компания Microsoft разработала волшебный инструмент, позволяющий быстро и просто восстановить работоспособность операционной системы. Его название —Preinstallation Environment for Windows XP и WinPE [1].
WinPE представляла собой упрощенную версию Windows XP с возможностью установки и запуска с любого носителя достаточной ёмкости. Изначально система предназначалась для подготовки компьютера к инсталляции полноценной операционной системы и позволяла осуществлять предустановку ОС в автоматическом режиме. В поставку включался пакет драйверов сетевых карт и дисковых подсистем, которые поддерживаются Windows XP или Windows Server 2003. Обеспечивала доступ к общим сетевым папкам, включая доступ к Distributed File System (DFS). Включала в себя утилиты для форматирования и работы с разделами жесткого диска, позволяя получить доступ к его существующим разделам.
Отметим, что полный доступ возможно было получить и к разделам имеющим формат NTFS. Это, во многом, предопределило успех WinPE, так как кроме Windows XP и Windows Server 2000–2003, с этой файловой системой ни одна из операционных систем в полном объеме не работала.
Так же применив стандартные команды и утилиты Windows можно было восстановить работу системы и спасти данные. На этом возможности стандартной поставки Microsoft заканчивались, но ларчик который был открыт, оказался очень интересен многим.
Прошло немного времени после выхода WinPE для Windows XP и голландец Барт Лагервей (Bart Lagerweij) предложил для использования вместо нее свою альтернативу — BartPE [2]. Эта сборка операционной системы отличалась от WinPE возможностью расширения функций за счёт системы плагинов [3].
Плагины предлагалось использовать для интеграции самого различного программного обеспечения, изменения внешнего вида и работы операционной системы. Также была предложена возможность использовать собственноручно написаные плагины. Архитектура сборки оказалась настолько удачной, что количество расширений стало безудержно расти. Это позволило сборкам на BartPE вплотную приблизиться и внешне и функционально к традиционной Windows XP (Рис.1), выведя дистрибутив на первое место по популярности среди сборок Windows Live CD.
Рисунок 1. Внешний вид сборки BartPE с плагином XPE.
С появлением BartPE создание собственного Live CD стало совсем простым делом. Вокруг BartPE образовалось большое количество сообществ разнообразных сборок, разрабатывающих плагины и улучшающих систему. Из основных, которые развиваются и обновляются до сих пор, можно отметить Ieshua's Live CD и (Y)PE by Yurkesha (CD) [4].
К сожалению, сам продукт уже очень давно не обновлялся. Существуют проблемы с созданием версий на основе Windows XP SP3. Но основной недостаток — для создания сборки основанной на Windows Vista или Windows 7 он не подходит, а необходимость в этом была . И вот на смену BartPE пришёл конструктор WinBuilder [5].
WinBuilder — это приложение для создания и полуавтоматической сборки Live-CD. Позволяет использовать в качестве исходной системы проекта дистрибутивы, начиная с Windows XP и заканчивая Windows 7 . Разрабатывается и поддерживается Питером Шлангом (Peter Schlang). До не давнего времени официальный сайт проекта был доступен по адресу [6], всю необходимую информацию возможно найти на указанном сайте .
В проекте для сборки используются специальные сценарии, которые выполняются последовательно один за другим, добавляя или изменяя компоненты и настройки будущей сборки операционной системы. За счет того, что система собирается с нуля, можно получить минимальный размер дистрибутива. Этот подход прямо противоположен BartPE, где сначала собирается полная система, а потом выкидывается все лишнее. Учитывая указанные недостатки BartPE, для создания системы воспользуемся конструктором WinBuilder.
Рассмотрим, что должен содержать дистрибутив “спасательной" системы, с учетом минимально необходимых задач администрирования:
- Возможность загрузки с сетевого сервера, USB, CD-ROM;
- Работа с разделами жесткого диска;
- Подключение к сетевым дискам для сохранения информации;
- Антивирусные утилиты;
- Работа с загрузчиками операционных систем;
- Восстановление данных;
- Сброс пароля Windows.
Существует огромное количество готовых к использованию сборок на все случаи жизни. Для поставленной задачи можно выбрать понравившуюся. Но используя сторонний дистрибутив, конечно нельзя на сто процентов гарантировать целостность и сохранность ваших данных. В связи с этим, собранный лично, дистрибутив системы будет более безопасен.
Для самостоятельной подготовки сборки понадобится дистрибутив Windows 7 с интегрированным с пакетом исправления, полный комплект WAIK for Windows 7 and Windows 2008, дистрибутив WinBuilder и, конечно, комплект необходимых драйверов [7]. WinBuilder может сам запустить виртуальную машину с созданным live–CD образом системы во встроенном QEMU. Для полного тестирования готовых сборок рекомендуется установить VirtualBox [8]. Все действия можно проводить на компьютере с установленной Windows Vista и более поздними версиями операционных систем. Загрузим из сети Интернет все необходимые компоненты, а затем выполним последовательно следующие действия:
- Копируем все файлы с установочного диска или образа в папку на жесткий диск, например c:\win7lv;
- Установим WAIK;
- Распакуем WinBuilder в папку c:\winbuilder. Внимание: при распаковке многие антивирусы, например Антивирус Касперского и Microsoft Essential, начинают подавать сигналы тревоги проверяя сам сборщик или его сценарии, поэтому рекомендуется добавить эту папку в исключения или отключить их на время;
- Распакуем комплект драйверов в папку c:\x86\drivers. Архивы самих драйверов 7z распаковывать не надо. При необходимости добавить недостающие драйвера, просто скопируйте наборы *.inf, *.sys, *.dll и *.exe в эту папку. EXE-файлы инсталляторов копировать не надо.
Конструктор готов к работе: остается загрузить сценарии. Для этого запустим файл c:\winbuilder\winbuilder.exe и выберем для обновления два пункта: updates.boot-land.net и win7pe.winbuilder.net/SE. Что они означают ? Updates.boot-land.net — проект, содержащий только проверенные сценарии и свободные программы, готовые к интегрированию в winpe7. Win7pe.winbuilder.net — содержит основные программы и сценарии использующиеся в сборках (Рис.2).
Затем нажмем на кнопку Download и дождёмся завершения процесса загрузки (Рис.3).
Рисунок 2. Выбор скриптов для установки.
Рисунок 3. Загрузка и обновление скриптов для сборщика Wibuilder.
Обычно процесс загрузки занимает не очень много времени. Об окончаним загрузки сигнализируют включенные галочки в панели слева главного окна программы. Если все сценарии скрипты, то можно переходить к сборке дистрибутива. В противном случае придётся удалить из папки с утилитой (c:\winbuilder) всё, кроме неё самой, и заново повторить загрузку. Можно попробовать еще раз повторить загрузку, но без очистки папки. Это позволит сэкономить время и трафик, но не гарантирует дальнейшей правильной работы. Так же необходимо обратить внимание на то, что если в Вашей системе включен UAC, запускать WinBuilder необходимо исключительно с правами администратора. Еще один важный момент — во время работы конструктору потребуется вызывать консольные утилиты из комплекта WAIK. Чтобы обеспечить ему эту возможность есть два пути.
Первый путь. Добавить в переменные окружения рабочие пути WAIK:
- Скопировать из папки C:\Program Files\Windows AIK\Tools\PETools\ файл pesetenv.cmd в папку c:\winbuilder;
- Заменить в нём относительные пути к утилитам (%~dp0) на полные;
- Добавить в конец файла вызов winbuilder.exe;
- Переименовать pesetenv.cmd в startbuild.cmd;
- Запускать при работе файл startbuild.cmd.
Второй путь. Скопировать необходимые файлы:
- Из папки C:\Program Files\Windows AIK\Tools\x86\ файлы bcdboot.exe, imagex.exe, wimgapi.dll, wimmount.inf, wimmount.sys и wimserv.exe в папку C:\winbuilder\Projects\Tools\Win7PE_SE\x86\;
- Из папки C:\Windows\System32 файл bcdedit.exe в папку C:\winbuilder\Projects\Tools\Win7PE_SE\x86\. Внимание: если файла bcdedit.exe нет по этому пути, его необходимо искать в папке C:\Windows\winsfx\.
Перейдем к настройке WinBuilder. Запустим приложение, нажимаем кнопку Tools-Language и переключаем на русский язык. Интерфейс приложения, к сожалению, переведен не полностью. Закрываем эту вкладку и нажимаем на кнопку Ресурс, расположенную в правой части окна. В разделе Рабочие каталоги указываем путь к папке с файлами дистрибутива Windows 7 — c:\win7lv, целевой каталог и iso файл. Затем выбираем пункт меню Drivers-Driver Integration и нажимаем на кнопку Explore. В появившемся диалоговом окне выберем папку с драйверами. Ею, в данном случае, является папка c:\x86\drivers. В VirtualTest устанавливаем флаг в пункте VirtualBox Emulation, это позволит вызвать установленный VirtualBox. Если сборка происходит на системе Microsoft Vista, то необходимо в разделе Images Configuration отметить пункт Always use WIMMount Driver (very slow). Это позволит использовать старую утилиту монтирования файлов imagex.exe, которая входит состав Microsoft Vista.
На этом подготовка окончена, перейдем к созданию пробной сборки дистрибутива.
Перед тем как начать добавлять дополнительные приложения рекомендуется на данном этапе проверить работу сборщика. Для этого нажмем кнопку Play .
Рисунок 4. Внешний вид системы по умолчанию.
Если все сценарии выполнились корректно , то WinBuilder запустит виртуальную машину с созданным образом. В противном случае программа выдаст сообщение об ошибке, сделает соответствующую запись в журнале и предложит вариант решения проблемы. После запуска в виртуальной машине и проверки работоспособности, можно перейти к созданию реальной сборки операционной системы. Для этого в главном меню приложения нажмем на кнопку Download. В панели, расположенной в правой части экрана, необходимо выбрать необходимые для загрузки компоненты системы. В разделе Win7PE_SE выбираем пункты:
- Apps-HD Task . Используется для работы с разделами жесткими дисками восстановление данных и восстановление загрузки операционных систем;
- Apps-Security. Обеспечивает защиту от вирусов и сброс пароля пользователей Windows в случае необходимости;
Наконец, нажмем на кнопку Загрузить. После завершения процесса загрузки перейдем в главное меню приложения и выберем, доступные теперь компоненты и снова запускаем сборку образа. Далее выполним проверку и убедившись, в правильной работе всех приложений перейдем к размещению на сервере установки. Заметим, что полученный iso-образ можно использовать по назначению – записать CD диск.
В первой части статьи [10] дано подробное описание технологии загрузки wim-образов систем. Кратко напомню. При загрузке по сети файл pxelinux.0 создает и отбражает меню доступных для загрузки систем. Меню описывается файлом конфигурации pxelinux.cfg. Для систем Window Vista и старше загружаемым файлом является «pxeboot.0» (переименованный «pxeboot.n12»). Он в свою очередь загружает «bootmgr.exe» – Windows Boot Manager (диспетчер загрузки) и запускает его на выполнение.Тот запрашивает у сервера файл BCD – boot configuration data (хранилище параметров запуска) и на основе полученных данных «bootmgr.exe» производит загрузку «boot.sdi» и «boot.wim» – образа Windows PE2.0. Все выше перечисленные необходимые файлы необходимо взять из созданного дистрибутива winpe7.iso.
Для настройки выполним последовательно:
1.Создадим новую секцию winpe7 в файле конфигурации меню /srv/tftpboot/pxelinux.cfg.
label winpe7
menu label ^WinPE WIN7
kernel sources/pxeboot.0
2.Монтируем созданный iso с WinPE7.
mount -o loop /home/iso/winpe7.iso /home/temp/pe7
3.Копируем файл /home/temp/pe7/sources/boot.wim в /srv/tftpboot/sources/.
Если сервер уже был настроен на сетевую загрузку Windows 7 [10], файлы pxeboot.0, bootmgr.exe и boot.sdi копировать нет необходимости. В противном случае для более подробного разъяснения обратитесь к [9-10]. Загружаемся с сети и проверяем созданный образ.
Существует большое количество «загрузочных» дискет для выполнения разнообразных операций с компьютером. К их числу относятся дискеты для перепрошивки BIOS, HDD и т.д. Обычно они распространяются в виде файла формата IMA. Это ни что иное, как расширение дискетного образа, стандартной загрузочной дискеты Windows 98.
Специально для этого формата в комплекте syslinux существует сетевой загрузчик memdisk, который по умолчанию располагается в /usr/share/syslinux/.
Его можно использовать для загрузки любого образа ima.
Приведем пример использования этой утилиты. Для этого добавим в загрузку образ ima содержащий FreeDos:
1.В секцию freedos в файл конфигурации /srv/tftpboot/pxelinux.cfg добавим следующий текст:
label freedos
menu label ^FreeDOS+MHDD util
kernel memdisk
append initrd=pe/freedos.ima
2.Копируем файл /usr/share/syslinux/memdisk в корень tftp сервера (/srv/tftpboot/).
3.Скачиваем базовый образ FreeDOS по ссылке [12].
4.Создаем папку /srv/tftpboot/pe/ и копируем туда файл freedos.ima.
Теперь можно проверить загрузку выбрав в меню пункт FreeDOS+MHDD util (Рис.5).
Рисунок 5. Загрузка Freedos.
Полученная сборка Windows 7 PE будет неплохо справляться с поставленными задачами:очистить компьютер от вирусов, восстановить загрузчик операционной системы или информацию.
Но, как показывает практика, скорее всего понадобиться добавить в сборку свои собственные файлы и приложения. Это можно сделать также при помощи сценарие. Большой набор готовых скриптов располагается по адресу [4] и [9]. Там же, на форуме можно найти различные дополнения к WinBuilder и методы работы с ними. Дополнять и улучшать созданную систему можно постоянно.
Windows Preinstallation Environment (PE) 2.0 - это, так сказать, урезанная версия Windows. Microsoft приняла весьма разумное решение, включив WinPE в состав Windows AIK. Что ж, в данном мануале мы создадим свой собственный дистрибутив Windows, доступный с USB-драйва.
Объединив распространенные флэш-драйвы с возможностями WinPE, вы получите мощный инструмент для устранения проблем и восстановления данных. Мануал же достаточно прост. И вот, что требуется:
1. Взять USB-драйв. Нам потребуется устройство спецификации USB 2.0 с объемом, как минимум, 512Мб, но если вы планируете добавить в установщик PE еще что-то или желаете его использовать для хранения и обмена данными, то лучше обратить внимание на его более вместительных собратьев (2-4Гб).
2. Скачать и установить Windows Automated Installation Kit (Windows AIK). Данный набор инструментов для развертывания как раз и содержит нужный нам Windows PE 2.0.
3. Отформатировать USB-драйв. Обратите внимание, что форматирование должно быть выполнено из Windows Vista. Открываем консоль и делаем следующее. В нашем примере USB-драйв называется disk 1. Вы должны дважды проверить, потому как вы рискуете затереть нужные вам данные.
Diskpart
select disk 1
clean
create partition primary
select partition 1
active
format fs=fat32
assign
exit
4. Установить Windows PE. На этом этапе мы создадим и настроим WinPE для нашего драйва. На компьютере с установленным Windows AIK идем в меню Start и выбираем "Windows PE Tools Command Prompt" из папки Windows AIK.
Выполняем команду Copype.cmd x86 c:\winpe_x86
Можно создать и 64-битную версию, сменив архитектуру с x86 на amd64.
Настраиваем WinPE.
Копируем нужные утилиты в папку C:\winpe_x86\iso (к примеру, утилиты для создания образов - imagex, wimscript.ini)
5. Скопировать Windows PE на USB-драйв. Подключаем наш USB-драйв в компьютер, на который вы скопировали WinPE и для копирования выполняем следующую команду:
Меняем диск с c: на тот, на котором хранятся файлы WinPE, а диск e: на имя вашего USB-драйва.
Вот и все - теперь у вас есть удобная USB-версия WinPE, которую можно брать с собой куда угодно. Наше решение можно использовать на большинстве современных компьютеров, поддерживающих загрузку с USB-устройств. С более подробной информацией о WinPE можно позакомиться тут .