Clonezilla Server Edition: Клонируй меня! Клонируй меня полностью!

 

Напоминаем, что попытки повторить действия автора могут привести к потере гарантии на оборудование и даже к выходу его из строя. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция Servernews не несет никакой ответственности за любые возможные последствия.

Предположим, что у нас есть несколько десятков однотипных машин. На каждую из них надо поставить Windows 7, установить драйвера и необходимые программы, произвести базовую настройку ОС и прочая, и прочая. В общем, подготовить машины к работе. Ситуация не такая уж частая, но довольно типичная при подготовке нового офиса, компьютерного класса, LAN-party и так далее. Можно, конечно, носиться с установочными дисками между машинами. Более разумный вариант при небольшом числе компьютеров — подготовка образа системы на одном из них с последующим ручным клонированием на оставшихся.

Однако когда ПК больше десятка, а то и двух десятков, этот способ становится несколько утомительным. Вот тогда-то лучше организовать разворачивание образа или установку и настройку по сети. Для этого в Microsoft уже разработали хорошие решения вроде RIS или WDS. Но они требуют для своей работы Windows Server. В качестве альтернативы можно использовать бесплатное и открытое решение Clonezilla Server Edition — связку из DRBL и Clonezilla Live. Именно этот вариант мы и рассмотрим. Разберём пример простейшей настройки серверной части, подготовку образа Windows 7 и его установку по сети.

Что нам понадобится? Машина с установленной Ubuntu Server 11.10 и как минимум двумя сетевыми картами — одна будет смотреть в Интернет, а другая — в локальную сеть. Все машины также должны быть объединены в изолированную локальную сеть. Для нас достаточно того, чтобы все были подключены к одному свитчу, причём, кроме них и установочного сервера, в ней не должно быть ничего другого. Все компьютеры должны уметь работать с PXE. Подавляющее большинство современных материнских плат имеет такую возможность. В BIOS она обычно обозначена как LAN Boot Rom, PXE Boot или что-нибудь в таком духе. В списке загрузочных носителей эта опция должна быть выставлена первой.

Теперь что касается однотипности машин. В принципе, необязательно, хотя и рекомендуется, чтобы они обладали абсолютно одинаковой конфигурацией. Windows 7 “из коробки” поддерживает множество устройств, однако драйвера для части из них всё равно придётся устанавливать. Будет не очень хорошо, когда обнаружатся различные конфликты. Ну и самое главное. Мы будем делать образ целого диска со всеми разделами. Поэтому объём винчестера на каждой из машин должен быть не меньше, чем на эталонном ПК, с которого и будет сниматься образ.

Схема работы в общих чертах такова. Устанавливаем и настраиваем Clonezilla Server на сервере. Попутно на одном из клиентских компьютеров устанавливаем Windows 7 с софтом и драйверами, а потом готовим её к клонированию. Затем загружаемся на ней через PXE, копируем образ диска на сервер и отключаем её от сети. Включаем все остальные машины и с сервера “раскатываем” клонированный образ. После всех этих операций доводим до ума Windows 7. Фактически надо будет только задать имя пользователя и пароль на каждой из машин. Всё просто, не правда ли? Тогда приступим!

Установка и настройка серверной части

Итак, у нас есть компьютер с установленной Ubuntu Server 11.10 и двумя сетевыми картами. Первый сетевой интерфейс — eth0 — получает адрес по DHCP от роутера и имеет доступ в Интернет. Второй интерфейс — eth1 — будет иметь статический адрес 192.168.0.1 и опционально являться шлюзом для локальной сети. Отредактируем сетевые настройки.

sudo nano /etc/network/interfaces

Добавим в конец параметры для eth1 и сохраним файл (F2, Y, Enter).

iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

Добавим репозиторий DRBL и ключи для него. Первым делом надо отредактировать список источников.

sudo nano /etc/apt/sources.list

В конец этого файла добавляем нижеследующую строчку и сохраняем его.

deb http://drbl.sourceforge.net/drbl-core drbl stable

Скачиваем и устанавливаем ключи, обновляем список пакетов и инсталлируем DRBL.

wget -q http://drbl.org/GPG-KEY-DRBL -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install drbl

Теперь произведём базовую настройку DRBL.

sudo /opt/drbl/sbin/drblsrv -i

На первые два вопроса мастера настройки отвечаем отрицательно, так как мы не планируем устанавливать Linux по сети, да и ещё один консольный вывод нам тоже не нужен. Затем будут загружены и инсталлированы необходимые пакеты. С предложением обновить систему надо согласиться. В конце потребуется выбрать версию ядра. Если не уверены, то выбирайте ядро из APT, а не DRBL. Весь этот процесс займёт некоторое время.

Осталось сконфигурировать сетевые параметры DRBL. Тут тоже всё просто. Надо лишь ответить на несколько вопросов.

sudo /opt/drbl/sbin/drblpush -i

Перво-наперво нас спросят про доменные имена и префиксы. Для нас это не очень принципиально, поэтому выбирайте любые понравившиеся. У нас также поинтересуются, какой интерфейс куда смотрит. Мы условились, что eth0 — внешняя сеть, а eth1 — локальная. От сбора MAC-адресов клиентских машин и привязки их к заданным заранее IP-адресам можно отказаться. После этого надо указать диапазон (последний октет) выдаваемых IP-адресов. В нашем примере стартовый адрес будет 192.168.0.2 (так как в настройках eth1 мы выбрали подсеть 192.168.0.0), а число машин равняется 20. То есть диапазон будет 192.168.0.2-21. Можно также использовать несколько сетевых карт и подсетей для разбиения большого числа ПК на несколько групп и более быстрого развёртывания Windows 7.

Мастер с помощью псевдографики нарисует схему подключения DRBL. После этого останется всего несколько вопросов. От бездисковой работы надо отказаться (пункт 2) и выбрать режим Clonezilla (пункт 1). Пароль на загрузку через PXE мы ставить не будем, а вот задержку на всякий случай лучше выставить. Графическое меню загрузки для пущей совместимости использовать не стоит. Напоследок нас спросят, использовать ли DRBL в качестве NAT-сервера и готовы ли мы применить настройки (конечно, да). Останется лишь пару раз нажать Enter, и всё будет готово к работе.

Подготовка Windows 7

Устанавливаем на эталонный компьютер Windows 7 как обычно. Позвольте ей сделать 100-мегабайтный раздел в начале диска. Рекомендуется создать только один раздел на диске под ОС и ПО. Но можно создать и несколько, а потом потренироваться “на кошках” — одном-двух ПК. Кстати, перед тем как разворачивать образ на все машины, полезно проделать аналогичную операцию. Если всё пройдёт гладко, то можно “накатывать” ОС и на все оставшиеся ПК.

Во время установки задайте имя пользователя и пароль. При желании его профиль можно будет оставить на всех машинах в качестве резервного администраторского доступа. После инсталляции ОС установите все обновления, весь необходимый софт и драйвера, включите или, наоборот, отключите сервисы и службы, ну и так далее. В общем, полностью подготовьте компьютер к будущему рабочему процессу.

Как только вы всё сделаете, надо будет немного подчистить систему: удалить файлы из корзины и временных папок, удалить инсталляторы и прочие ненужные файлы с папками, очистить логи и старые точки восстановления, отключить неиспользуемые компоненты Windows и так далее. Короче, в системе не должно быть ничего лишнего. Ну и самое главное — дефрагментировать диск и проверить его на ошибки.

Теперь открываем командную строку (Win+R, cmd, Enter) и выполняем следующую команду, после которой ПК будет выключен.

c:\windows\system32\sysprep\sysprep.exe /generalize /oobe /shutdown /unattend:С:\unattend.xml

Предполагается, что в корне диска C: находится файл unattend.xml. Что это такое? Это файл ответов для установщика Windows. Данной командой мы подготавливаем ОС к клонированию. На практике это означает, что при первом запуске будет произведён поиск оборудования и установка драйверов, подготовлен рабочий стол, запрошено создание нового пользователя и выставлены некоторые настройки. По-хорошему, для создания файла ответов надо использовать WAIK (Windows Automated Installation Kit). Более подробно про работу sysprep и подготовку автоматической установки можно прочитать здесь и здесь.

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
   <servicing></servicing>
   <settings pass="specialize">
       <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <RegisteredOwner>*</RegisteredOwner>
           <ShowWindowsLive>false</ShowWindowsLive>
           <TimeZone>Russian Standard Time</TimeZone>
           <ComputerName>*</ComputerName>
           <RegisteredOrganization>CompanyName</RegisteredOrganization>
           <CopyProfile>true</CopyProfile>
       </component>
       <component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <SkipAutoActivation>true</SkipAutoActivation>
       </component>
   </settings>
   <settings pass="oobeSystem">
       <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <OOBE>
               <HideEULAPage>true</HideEULAPage>
               <ProtectYourPC>1</ProtectYourPC>
               <NetworkLocation>Work</NetworkLocation>
               <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
           </OOBE>
           <RegisteredOwner>*</RegisteredOwner>
           <ShowWindowsLive>false</ShowWindowsLive>
           <RegisteredOrganization>CompanyName</RegisteredOrganization>
       </component>
       <component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <InputLocale>ru-RU</InputLocale>
           <SystemLocale>ru-RU</SystemLocale>
           <UILanguage>ru-RU</UILanguage>
           <UserLocale>ru-RU</UserLocale>
           <UILanguageFallback>ru-RU</UILanguageFallback>
       </component>
   </settings>
   <settings pass="generalize">
       <component name="Microsoft-Windows-Security-SPP" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <SkipRearm>0</SkipRearm>
       </component>
   </settings>
</unattend>

В нашем примере мы воспользуемся уже готовым файлом ответов с минимальным набором правил. Из названия пунктов должно быть ясно, за что они отвечают. Там, где стоит *, будет автоматически сгенерировано случайное значение параметра. Если в CopyProfile выставить значение true, то будет скопирован уже созданный профиль. Параметр SkipRearm влияет на число возможных запусков sysprep и на активацию Windows. Лучше оставить его равным 0. Если же у вас нет возможности или желания использовать unattend.xml, то sysprep можно запустить и без него.

c:\windows\system32\sysprep\sysprep.exe /generalize /oobe /shutdown

Копирование образа Windows 7

Возвращаемся к DRBL и запускаем ещё одну команду.

sudo /opt/drbl/sbin/dcs

Создаём новую задачу. Выбираем All → clonezilla-start → Beginner → save-disk для сохранения образа диска.

Затем Later_in_client для ручного выбора нужного диска на эталонной машине. Пропускаем проверку ФС, но оставляем проверку образа системы. Потом нас спросят, что сделать после создания копии: перезагрузить/выключить ПК, оставить выбор за пользователем или ничего не делать. В конце надо будет указать, на файлы какого объёма разбивать образ диска. Оставьте значение по умолчанию.

Осталось совсем немного. Подключаем эталонный компьютер к локальной сети и включаем его, ещё раз удостоверившись, что первой идёт загрузка посредством PXE. Через несколько секунд ПК получит по DHCP IP-адрес и загрузится основное меню, в котором надо выбрать пункт по умолчанию Clonezilla.

Если загрузка Clonezilla завершилась ошибкой, то можно попробовать ещё раз запустить dcs. В худшем случае придётся заново перенастроить всю систему, постаравшись не ошибиться. После запуска live-версии будет предложено ввести имя для образа и выбрать клонируемый диск.

Затем запустится процесс создания образа и сохранения его на сервере. После его окончания ПК выключится, а на сервере будет выведено уведомление. Теперь эталонный компьютер можно отключить от сети.

Клонирование образа Windows 7 на клиентах

Ещё раз запускаем dcs и выбираем All → clonezilla-start → Beginner.

sudo /opt/drbl/sbin/dcs

Только теперь переходим к пункту restore-disk, выбираем действие (перезагрузка, выключение и прочее) после копирования диска, указываем имя используемого образа и диск, на который он будет распакован.

Затем включаем multicast, выбираем пункт client+time-to-wait, после чего указываем число машин, на которых будет развёрнут образ, и время ожидания подключения клиентских компьютеров.

Теперь запускаем клиентские компьютеры (попробуйте для начала не на всех, а на одном-двух), подключённые к локальной сети. Для массового запуска можно использовать технологию Wake-on-LAN и утилиты вроде etherwake. По умолчанию запустится Clonezilla, которая и восстановит образ диска.

Опять-таки на сервер придёт отчёт от каждой из машин. Вот и всё. Не так уж сложно, не правда ли?

Заключение

Мы рассмотрели только простейший пример работы с DRBL для развёртывания ОС на множество машин. На самом деле и DRBL, и Clonezilla, и sysrep имеют гораздо больше возможностей и настроек. Описанную связку можно использовать и для бекапов, и для создания бездисковых станций или тонких клиентов, и для поднятия своего рода SSI-кластера, и для множества других вещей. Для Windows имеется проект-сателлит DRBL-winroll. В работе всего этого хозяйства есть немалое количество различных нюансов и хитрых настроек. Есть и другие подобные проекты. Например, FOG Project. Но всё это выходит далеко за рамки нашей статьи. В Сети не так уж трудно найти документацию и советы по работе с ними. Так что удачного вам клонирования!  

Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER. | Можете написать лучше? Мы всегда рады новым авторам.
Постоянный URL: https://servernews.ru/595471
Система Orphus