2004 г.
Автоматическая установка Windows
Юрий Гудзь,
«Издательский Дом «КОМИЗДАТ»
Переустановка Windows для многих является такой же обычной и будничной операцией, как и обновление антивирусных баз. Так почему бы не автоматизировать эту рутину?
Где-то за тридевять земель, в далекой стране Америке существуют огромные корпорации, обитающие в огромных сотниэтажных зданиях, где протянуты километры экранированных проводов и в больших кондиционированных залах за тысячами персональных компьютеров работают тысячи американцев. Где-то в глубинах этих зданий, в маленьких комнатках, сидят умные сисадмины, выехавшие на ПМЖ, нажимают на кнопочки и администрируют десятки и сотни мощных серверов, которые находятся в настоящих серверных - с централизованным охлаждением, электронными замками и проверкой сетчатки глаза…
Такие видения наверняка когда-нибудь да посещали каждого украинского сисадмина. И каждый из них в своих мечтах наверняка видел себя, в костюме и в галстуке входящего в одно из таких высотных зданий.
В Microsoft о таких зданиях не только знают - они сами имеют такие здания. И тысячи персоналок также. Поэтому вопрос об удобной инсталляции операционной системы на десятки и сотни ПК должен стоять перед админами Microsoft так же остро, как и перед всеми остальными.
Как бы оно ни было, но Microsoft разработала несколько способов облегчения жизни сисадминам крупных предприятий. Не обязательно просиживать по часу перед каждым ПК, чтобы за него потом можно было посадить пользователя. Имеется несколько вариантов ускоренной установки Windows:
-
Unattended Installation - установка без сопровождения;
-
Sysprep Installation - метод дублирования дисков;
-
Remote Installation - удаленная установка.
Unattended Installation
Windows можно устанавливать в автоматическом режиме на компьютеры с разными конфигурациями при помощи специальных файлов ответов. В этих файлах описываются все параметры, которые необходимы Windows для установки на новом ПК и которые при обычной установке она выясняет напрямую у пользователя. Таким образом, загодя имея ответы на все свои вопросы, Windows производит инсталляцию самой себя целиком и полностью без участия пользователя.
Хотя в данном случае существует одно "но". Во-первых, файл ответов должен быть сформирован правильно и должен содержать адекватные ответы. Если в этом файле будут ошибки, то автоматический процесс установки, в лучшем случае, остановится до получения правильного ответа. В худшем случае - он просто-напросто прервется, и все придется начинать заново.
Файл ответов можно подготовить вручную - в любом текстовом редакторе, взяв за основу шаблон, который находится на компакт-диске дистрибутива Windows 2000 в каталоге \I386\unattend.txt.
Но необходимости разбираться со структурой файла нет, так как в поставке Windows 2000 имеется специальная утилита для редактирования и создания файлов ответов (или, другими словами, сценариев установки). Эта программа называется Setup Manager. Она не устанавливается вместе с Windows, а дожидается своего часа на дистрибутивном CD.
Чтобы воспользоваться Setup Manager, необходимо распаковать программу из файла \support\tools\deploy.cab с дистрибутивного компакт-диска. Windows 2000 с cab'ами обращается свободно, так что нужно просто зайти проводником в deploy.cab и скопировать файлы… Да копируйте все - sysprep.exe и setupcl.exe тоже когда-нибудь пригодятся.
Берем в руки "автомат"
Теперь, не откладывая дело в долгий сисадминский ящик, сразу же возьмемся за создание сценария установки Windows 2000. После запуска Setup Manager (setupmgr.exe) можно приступить к созданию нового файла ответов (Create a new answer file), создать файл ответов текущего компьютера (Create an answer file that duplicates this computer's configuration), модифицировать существующий файл ответов (Modify an existing answer file).
В случае если стоит задача создать файл ответов для установки или переустановки Windows 2000 Professional на рабочих местах подопытных сотрудников компании, разумно предположить, что создание файла ответов удобно выполнить на базе текущего компьютера. Если этот компьютер является типичной рабочей станцией.
Создание новых файлов ответов будет полезно в случае, например, разношерстного оборудования, когда каждый компьютер сам по себе является реликтом давно ушедшего времени и полным набором антикварных компьютерных комплектующих. Или, например, в ситуации, когда все компьютеры в компании просто собираются по мере необходимости, а посему одинаковых запчастей в них не так уж и много. (Знакомая ситуация, не так ли?)
Так вот, в любом случае гораздо эффективнее один раз перед установкой создать файл ответов, а затем использовать его для банальной переустановки Windows, которую, когда пользователь сделает очередное "ачтонезнаю", проще переустановить, чем искать, что не в порядке.
Но, наверное, сразу стоит оговориться - Microsoft создавала автоматический режим установки Windows для обновления и переустановки Windows. Для установки же системы с нуля на голое железо предусмотрены другие режимы - удаленная установка по сети и метод дублирования дисков. Но на то она и Microsoft, чтобы предполагать. Ну а наши руки существуют для того, чтобы потом "располагать" программным обеспечением от Microsoft так, как оно удобнее, а не "как положено". Чай, не впервой.
Так вот, установить Windows 2000 на голый комп можно. Правда, существует один момент - обойти ввод серийного номера никак не удастся. Это, конечно, смазывает эффект от полностью автоматической установки Windows, но, согласитесь, ввод нескольких цифр - это все равно гораздо меньше многократного ввода запрашиваемых данных при обычной интерактивной установке Windows.
В любом случае, будь то обновление системы, ее переустановка или чистая инсталляция, структура файла ответов от этого не зависит. Так что готовый файл ответов можно использовать для всех случаев.
Взводим курок
Итак, определяемся - допустим, что есть мнение создать файл ответов на базе типового компьютера. После запуска Setup Manager указываем тип установки - Windows 2000 unattended installation. Это и есть автоматическая инсталляция. Как уже упоминалось, предусмотрены еще два типа развертывания Windows (метод дублирования дисков и удаленная установка по сети).
Далее указываем, что инсталлировать планируем Windows 2000 Professional (при желании можно и Windows 2000 Server установить).
Следующее окно очень интересное. Для полностью автоматической установки необходимо выбирать режим Fully automated (полностью автоматическая установка) - пользователь не сможет просматривать или изменять ответы, заданные сценарием.
В режиме Provide defaults (предоставление значений параметров по умолчанию) ответы, заданные в файле ответов, будут являться значениями по умолчанию, которые увидит пользователь. При этом он сможет их изменять в процессе установки.
В режиме Hide Pages (не отображать диалоговые окна) во время установки используются ответы сценария. Все окна, для которых применяются ответы сценария, скрыты от пользователя, который тем самым лишается возможности просматривать или изменять ответы.
В режиме Read Only (только чтение) пользователь может просматривать ответы на видимых страницах без возможности их изменять.
В режиме GUI Attended (полное взаимодействие с пользователем) текстовая часть установки выполняется автоматически, установку графической части пользователь выполняет вручную.
Каждый режим может пригодиться в работе. GUI Attended вполне подойдет, если компьютер передается в филиал. Тогда, имея заданные основные параметры (каталог установки, имя компьютера и т.д.) согласно корпоративному стандарту, пользователь на месте сможет установить необходимое оборудование и, по необходимости, настроить систему. Конечно же, если у него для этого будут соответствующие полномочия. Пароль администратора, например.
Дальнейший процесс указания параметров довольно прост - принятие условий лицензионного соглашения, имя пользователя, имя организации, имя компьютера… Стоп. Имен компьютера можно задать несколько. В таком случае будет создан файл различий (с расширением.udf), который можно будет использовать для установки системы на несколько компьютеров с одним файлом ответов. Кстати, список имен компьютеров можно создать в виде простого текстового файла. Каждое новое имя компьютера с новой строки. Например:
comp1
comp2
comp3
Задерживаем дыхание
Затем текстовый файл со списком можно импортировать в Setup Manager.
Идем дальше - пароль локального администратора системы, количество раз автоматического логона (можно и 0 указать), параметры экрана, настройки сети. Останавливаемся на присоединении компьютера к домену или рабочей группе. Есть нюанс. Так как файл ответов является простым текстовым файлом, то и все данные в нем хранятся в виде обычных букв из стандартного набора Windows. Соответственно, все пароли хранятся в том виде, в котором их "мать родила". Поэтому, если присоединять ПК к домену с одновременным созданием экаунта компьютера в домене, необходимо будет указать логин администратора домена, а также его пароль. Ясный перец, что из соображений безопасности этого делать не стоит. Можно просто указать домен, в который должен будет войти этот компьютер, а в домене загодя создать экаунт для него. Так проще и безопасней.
Дальше опять "ерунда" - регион, код города (для модема), тип телефонных линий, настройки Internet Explorer, наименование каталога, в который будет установлена Windows, имя принтера.
Далее следует очень интересное поле. Здесь можно задать команды, которые выполнятся при первом логоне пользователя. Это может быть или запуск патчей, для латания системы, или запуск инсталляции необходимого софта. В общем, очень полезная штука.
Далее, в окне Distribution Folder, можно создать дистрибутивную папку на локальном компьютере или в сети. В эту папку можно будет добавить любые дополнительные файлы, которые необходимы для полной установки системы, и запускать их на выполнение командами, которые будут исполняться в конце установки. Для этого нужно выбрать Yes, create or modify distribution folder. Полезная функция для установки рабочего места в локальной сети.
Если система будет устанавливаться на единичном компьютере, можно устанавливать ее с дистрибутивного компакт-диска. Тогда можно выбрать пункт No, this answer file will be used to install from a CD. Если выбран этот пункт, то создание файла ответов заканчивается следующим шагом. Если выбрано создание дистрибутивной папки, тогда процесс создания сценария установки продолжается - нужно ж все-таки определиться с дистрибутивной папкой. Можно указать существующий каталог (Modify an existing distribution folder) с размещенным дистрибутивом Windows 2000, или же создать новый.
Стоит отметить, что каталог может быть расположен как локально, так и на любом из доступных компьютеров в сети. При создании новой дистрибутивной папки (Create a new distribution folder) нужно задавать имя локальной папки. Затем можно указать драйверы для дополнительных запоминающих устройств. А также добавить другой HAL (hardware Abstraction Layer) - вместо заданного по умолчанию.
Далее следует еще одна возможность запуска необходимых команд в процессе установки. Команд здесь тоже можно добавить множество.
В следующем окне - OEM Branding - можно задать логотип (Logo), который будет отображаться во время инсталляции, а также рисунок для рабочего стола, который установится после инсталляции системы (Background). Вот здесь оттяг каждого целиком и полностью зависит от его личной выдумки и фантазии. Запросто можно вставить лого SamSobral, Inc. и картинку из DOOM III повеселее (если там вообще такие найдутся). Пусть новые пользователи ценят жизнь, покой и красоту девственно чистого рабочего стола Windows.
Но и это еще не все. Процесс создания сценария установки Windows 2000 не заканчивается на такой мажорной ноте. Почему? Вопрос к Microsoft.
Следующим шагом нужно указать, какие дополнительные файлы и папки следует включить в установку. Это, опять-таки, возможность добавить необходимые драйверы, патчи и прочее, необходимое для более полной автоматизации установки (кстати, можно ничего и не добавлять).
Ну и наконец-то конец, уж простите за тавтологию. Задаем имя файла ответов и жмем Далее. Как "не всё"?! Нужно еще скопировать файлы с CD? Ну да, ведь мы будем устанавливать Windows с использованием дистрибутивной папки. А там должен находиться сам дистрибутив. Так что эту процедуру нужно выполнить обязательно.
Вот теперь действительно все - файл ответов и дистрибутивная папка готовы. Можно приступать к инсталляции.
Огонь!
Что же, кроме дистрибутивной папки (к тому же, расшаренной с указанным именем win2000dist), мы имеем такого, что следует обязательно проверить? Setup Manager сформировал два файла - unattend.txt и unattend.bat. В текстовом файле хранятся все параметры, а bat-файл предназначен для запуска программы установки. Вот его рабочее содержание:
set AnswerFile=.\unattend.txt
set SetupFiles=\\HOME\win2000dist
\\HOME\win2000dist\winnt32 /s:%SetupFiles%
/unattend:%AnswerFile%
Здесь HOME - имя компьютера, на котором производилось создание файла ответов. Но ничто не мешает создать дистрибутивную папку вручную на любом из компьютеров сети, расшарить ее и указать в батнике вместо HOME. Привязки в unattend.txt к компьютеру с дистрибутивной папкой нет. Эта информация берется как раз из bat-файла. Есть только ссылка на название Шары (Win2000dist). Поэтому лучше расшаривать дистрибутивную папку с этим именем. Хотя если произвести изменения и в txt-файле и в батнике, установка будет работать с любого компьютера.
Если же создавать сценарий установки без дистрибутивной папки, предусматривая, что установка будет вестись с компакт-диска, то содержание bat-файла будет примерно следующим:
set AnswerFile=.\unattend.txt
set SetupFiles=H:\i386
H:\i386\winnt32 /s:%SetupFiles% /unattend:%AnswerFile%
То есть вместо UNC-имени будет использоваться прямой путь к файлу winnt32 на дистрибутивном компакт-диске. Здесь "H" - буква, присвоенная CD-ROM'у.
Если задать несколько имен компьютеров для использования одного файла ответов для многих компьютеров, то Setup Manager создаст дополнительный файл с расширением udf. bat-файл также будет изменен - примерно следующим образом:
set AnswerFile=.\unattend.txt
set UdfFile=.\unattend.udf
set ComputerName=%1
set SetupFiles=H:\i386
if "%ComputerName%" == "" goto USAGE
H:\i386\winnt32 /s:%SetupFiles% /unattend:%AnswerFile%
/udf:%ComputerName%,%UdfFile% /makelocalsource
goto DONE
:USAGE
echo.
echo Usage: unattend ^<computername^>
echo.
:DONE
Как видно, теперь имя компьютера, который следует установить, используется в качестве параметра при запуске bat-файла. Если имя пропущено, выдается строка блока USAGE с подсказкой о необходимости указания параметра. Командная строка ссылается прямо на компакт-диск, так как была выбрана установка с CD. Соответственно, в случае использования дистрибутивной папки вместо H:\i386 было бы UNC-имя компьютера, содержащего дистрибутивную папку. Также ново указание дополнительного параметра - использования файла отличий unattend.udf.
Для запуска автоматической установки достаточно запустить на работающей Windows bat-файл и оставить setup'у заниматься установкой самому. А тем временем можно реально "откинуться на спинку стула". Администраторы со стажем знают, что это значит.
"Русская рулетка"
Ну, конечно же, мы бы не были русскими людьми, если бы не попробовали все испортить. Спрашивается, зачем возиться с Sysprep и Ghost'ом, если уже есть готовые сценарии установки. Вот оно: протяни руку, нажми кнопку - и Windows 2000 Professional через 50 минут уже будет на новом компьютере. Ан нет. Ничего не получится. В батниках указан исполняемый файл установки Windows winnt32.exe, предназначенный для работы в работающей Windows.
Для установки Windows на голую систему нужно будет запускать установку из DOS-режима, используя файл winnt.exe. Мало того что нам потребуется загрузочная дискета, необходимо еще и изменить сам bat-файл - поскольку параметры winnt.exe отличаются от параметров winnt32.exe. Еще одна проблема - с буквой, присваиваемой CD-ROM'у.
Кроме всего прочего, необходимо будет полностью подготовить жесткий диск к установке Windows, так как мастер автоматической установки предполагает, что диск разбит и отформатирован - а посему заниматься этим в процессе инсталляции не намерен.
Начнем с загрузочной дискеты. Загрузочные диски Windows 95/98/ME не подойдут, так как на определенном этапе мастер установки осознает, что он устанавливается поверх старой версии Windows, и категорически потребует графический интерфейс для продолжения работы. На этом автоматическая установка и закончится. Поэтому использовать нужно только настоящий MS-DOS. Для того чтобы иметь возможность точно сослаться из bat-файла на CD-ROM, необходимо в параметрах запуска драйверов CD-ROM'а прямо указать букву, которая будет обозначать CD-ROM. Если используются стандартные драйверы mtmcdai.sys и mscdex.exe, то в строке запуска mscdex.exe нужно указать параметр /L:X (где Х - буква, присвоенная CD-ROM'у).
Следующий шаг - изменение bat-файла. Нужно изменить две строки.
В рассматриваемом случае заменить:
set SetupFiles=H:\i386
на
set SetupFiles=Х:\i386
и командную строку:
H:\i386\winnt32 /s:%SetupFiles% /unattend:%AnswerFile%
/udf:%ComputerName%,%UdfFile% /makelocalsource
на
Х:\i386\winnt /s:%SetupFiles% /u:%AnswerFile%
/udf:%ComputerName%,%UdfFile%
Рассмотрим это изменение внимательнее. Winnt32 заменен на winnt. Ключ /unattend заменен на /u. Параметр /makelocalsource удален, так как он не поддерживается winnt.exe.
Bat-файл готов к запуску. Теперь все unattend-файлы нужно переписать на загрузочный диск, чтобы запускать инсталляцию сразу после загрузки компьютера.
Стоит ли напоминать, что в BIOS нужно установить загрузку с флопа. Далее лучше установить загрузку с HDD, а уж затем с CD. Это нужно для того, чтобы после перезагрузок комп стартовал уже с жесткого диска.
Теперь нужно разбить и отформатировать HDD на целевом компьютере. Это можно сделать или на постороннем ПК, или сразу же - с загрузочной дискеты. Весь диск разбивать не обязательно, так как DOS-режим не позволит создать разделы более 2 Гб, а бить 80-гигабайтный диск на 40 разделов не эффективно. Одного раздела для установки Windows 2000 вполне достаточно. Минимальные системные требования предусматривают выделение 650 Мб для установки Windows 2000 Professional. Рекомендованные требования настаивают на 2 Гб. Остальное дисковое пространство, а также конвертацию файловой системы под NTFS можно оставить на потом.
После разбиения и форматирования диска можно переносить систему на HDD - и unattend-файлы туда же, чтобы дискета больше не требовалась. Теперь можно изменять порядок загрузки компьютера в BIOS - ставить первым HDD и грузиться с него. После успешной загрузки можно запускать unattend.bat (без параметров - если файл ответов создавался в расчете на один компьютер; с параметром - если файл ответов создавался для нескольких компьютеров).
Крэкс! Пэкс! Фэкс!
Нет. Закапывать возле компьютера пять золотых и колдовать над ними не надо. Просто имейте в виду, что в процессе автоматической установки Windows 2000 на голый компьютер один вопрос остается нерешенным - это лицензионный ключ продукта. Как уже указывалось, подразумевается, что Windows устанавливается на лицензионную систему, которая уже имеет свой лицензионный ключ, поэтому в Setup Manager данная информация не запрашивается. Так что во время инсталляции ее нужно будет ввести вручную. А посему наличие необходимого количества лицензий обязательно.
И еще об эффективности автоматической установки. Наибольшая отдача от нее будет в случае, когда все компоненты компьютера официально поддерживаются Microsoft и входят в Hardware Compatibility List - Hcl.txt (этот файл идет с каждым дистрибутивом в каталоге \Support дистрибутивного компакт-диска). Для всех компонент, представленных в списке, драйверы должны устанавливаться без сучка и задоринки. Конечно же, если какая-либо из компонент не поддерживается Microsoft официально, то к ней придется дополнительно устанавливать драйверы, скачав их с сайта производителя железяки.
Частично эта проблема решается путем полноценной работы Plug-and-Play во время автоматической установки, а также возможностью внедрения необходимых файлов в процесс установки и запуска их отдельными командами после окончания основного процесса установки. Но с сертифицированным оборудованием возни все же меньше.