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

Прежде всего, не рекомендую воспроизводить нижеприведённый материал на различных сборках Windows 7 с интегрированным софтом, твиками и сценариями автоустановки, т.к. у нас будет свой сценарий. Я, к примеру, использую оригинальный образ Windows 7 в комплекте с обычной флешкой, на которой находятся перепакованные программы, пакеты обновлений, драйверы, твики и пр., но основными компонентами данной флешки, в разрезе статьи Создание раздела восстановления при установке Windows 7, являются файл ответов Autounattended.xml и скрипт создания Recovery партиции — CreateRecovery.cmd.
Особенностью установки Windows 7 с созданием раздела восстановления является то, что при такой установке жёсткий диск полностью переразмечается и форматируется в автоматическом режиме, учтите этот момент, потом будет поздно.
Содержание моего файла Autounattended.xml следующее:

Показать »

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-International-Core-WinPE" 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">
            <SetupUILanguage>
              <UILanguage>ru-RU</UILanguage>
            </SetupUILanguage>
            <InputLocale>0419:00000419</InputLocale>
            <UserLocale>ru-RU</UserLocale>
            <UILanguage>ru-RU</UILanguage>
            <SystemLocale>ru-RU</SystemLocale>
        </component>
        <component name="Microsoft-Windows-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">
            <DiskConfiguration>
                <Disk wcm:action="add">
                    <CreatePartitions>
                        <CreatePartition wcm:action="add">
                            <Order>1</Order>
                            <Type>Primary</Type>
                            <Size>5000</Size>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>2</Order>
                            <Type>Primary</Type>
                            <Size>50</Size>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>3</Order>
                            <Type>Primary</Type>
                            <Size>100000</Size>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>4</Order>
                            <Type>Primary</Type>
                            <Extend>true</Extend>
                        </CreatePartition>                      
                    </CreatePartitions>
                    <ModifyPartitions>
                        <ModifyPartition wcm:action="add">
                            <Order>1</Order>
                            <PartitionID>1</PartitionID>
                            <Label>Recovery</Label>                            
                            <Format>NTFS</Format>
                            <TypeID>0x27</TypeID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>2</Order>
                            <PartitionID>2</PartitionID>
                            <Label>System</Label>                            
                            <Format>NTFS</Format>
                            <Active>true</Active>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>3</Order>
                            <PartitionID>3</PartitionID>                            
                            <Label>Local OS</Label>
                            <Format>NTFS</Format>
                            <Letter>C</Letter>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>4</Order>
                            <PartitionID>4</PartitionID>                            
                            <Label>Data</Label>
                            <Format>NTFS</Format>
                            <Letter>D</Letter>
                        </ModifyPartition>  
                    </ModifyPartitions>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                </Disk>
                <WillShowUI>OnError</WillShowUI>
            </DiskConfiguration>
            <ImageInstall>
                <OSImage>
                    <InstallTo>
                        <DiskID>0</DiskID>
                        <PartitionID>3</PartitionID>
                    </InstallTo>
                    <WillShowUI>OnError</WillShowUI>
                </OSImage>
            </ImageInstall>
            <UserData>
                <AcceptEula>true</AcceptEula>
            </UserData>
        </component>
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SetupUILanguage>
              <UILanguage>ru-RU</UILanguage>
            </SetupUILanguage>
            <InputLocale>0419:00000419</InputLocale>
            <UserLocale>ru-RU</UserLocale>
            <UILanguage>ru-RU</UILanguage>
            <SystemLocale>ru-RU</SystemLocale>
        </component>
        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <DiskConfiguration>
                <Disk wcm:action="add">
                    <CreatePartitions>
                        <CreatePartition wcm:action="add">
                            <Order>1</Order>
                            <Type>Primary</Type>
                            <Size>5000</Size>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>2</Order>
                            <Type>Primary</Type>
                            <Size>50</Size>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>3</Order>
                            <Type>Primary</Type>
                            <Size>100000</Size>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>4</Order>
                            <Type>Primary</Type>
                            <Extend>true</Extend>
                        </CreatePartition>                      
                    </CreatePartitions>
                    <ModifyPartitions>
                        <ModifyPartition wcm:action="add">
                            <Order>1</Order>
                            <PartitionID>1</PartitionID>
                            <Label>Recovery</Label>                            
                            <Format>NTFS</Format>
                            <TypeID>0x27</TypeID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>2</Order>
                            <PartitionID>2</PartitionID>
                            <Label>System</Label>                            
                            <Format>NTFS</Format>
                            <Active>true</Active>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>3</Order>
                            <PartitionID>3</PartitionID>                            
                            <Label>Local OS</Label>
                            <Format>NTFS</Format>
                            <Letter>C</Letter>
                        </ModifyPartition>       
                        <ModifyPartition wcm:action="add">
                            <Order>4</Order>
                            <PartitionID>4</PartitionID>                            
                            <Label>Data</Label>
                            <Format>NTFS</Format>
                            <Letter>D</Letter>
                        </ModifyPartition>                    
                    </ModifyPartitions>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                </Disk>
                <WillShowUI>OnError</WillShowUI>
            </DiskConfiguration>
            <ImageInstall>
                <OSImage>
                    <InstallTo>
                        <DiskID>0</DiskID>
                        <PartitionID>3</PartitionID>
                    </InstallTo>
                    <WillShowUI>OnError</WillShowUI>
                </OSImage>
            </ImageInstall>
            <UserData>
                <AcceptEula>true</AcceptEula>
            </UserData>
        </component>
    </settings>
    <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">
            <OEMInformation>
                <HelpCustomized>false</HelpCustomized>
            </OEMInformation>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <OEMInformation>
                <HelpCustomized>false</HelpCustomized>
            </OEMInformation>
        </component>        
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Deployment" 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">
            <Reseal>
                <Mode>Audit</Mode>
            </Reseal>
        </component>
        <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <Reseal>
                <Mode>Audit</Mode>
            </Reseal>
        </component>        
    </settings>
    <cpi:offlineImage cpi:source="wim:c:/win7%2032bit/sources/install.wim#Windows 7 HOMEPREMIUM" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

Рассмотрим, какой сценарий прописан в данном файле ответов.

При установке на жесткий диск разбивается на 4 партиции:

1. Партиция для раздела восстановления (5 Гб достаточно для бекапа операционной системы с основным софтом и установленными драйверами)
2. Партиция для загрузочных файлов (по умолчанию система создаёт её равной 100 Мб, но на практике достаточно 50 Мб)
3. Партиция для операционной системы (я остановился на размере 100 Гб)
4. Партиция для пользовательских данных (равна оставшемуся пространству жёсткого диска)

Можете выбрать другие размеры по вашему усмотрению.

Установка операционной системы выполняется в автоматическом режиме, а по окончании входит в режим аудита и ждёт ваших действий:

Создание раздела восстановления при установке Windows 7

На этом этапе вы можете применять твики, устанавливать драйверы, программы, а так же перезагружать систему. Для OEM компьютеров на этом этапе можно установить в систему сертификат и соответствующий серийный номер. По твикам в режиме аудита я написал отдельную статью, т.к. применение настроек к профилю по умолчанию в Window 7, требует определённых телодвижений. Единственное, что нельзя делать на этапе аудита при данном сценарии установки, это закрывать окно «Программы подготовки системы», просто сдвиньте его на край экрана если мешает. Когда тюнинг и предварительная настройка операционной системы завершены, настало время запустить скрипт для запечатывания её текущего состояния и создания образа восстановления CreateRecovery.cmd. Скрипт отрабатывает в два этапа, разделённые автоматической перезагрузкой:

По завершении второго этапа, вам будет предложено выключить компьютер и передать его конечному пользователю:

Именно в таком состоянии продаются ноутбуки и брендовые компьютеры в магазинах.
При следующей загрузке компьютер произведёт подготовку к первому запуску, предложит выбрать имя пользователя, ввести серийный номер и активировать Windows 7, если это не было сделано на этапе аудита.

Теперь то, для чего мы всё это затеяли. В случае серьёзного сбоя или заражения компьютерным вирусом, у пользователя появляется возможность откатить систему на «заводское состояние». Для этого при старте компьютера нужно нажать F7, выбрать язык, существующего пользователя с правами администратора, а затем пункт «Переустановка Windows»:

В процессе восстановления, находящаяся на диске С: предыдущая операционная система, перемещается в папку Windows.old, что предотвращает потерю пользовательских данных и даёт возможность скопировать их после восстановления в новое место. Данные на других дисках, имеющихся в компьютере, в ходе восстановления не затрагиваются.

Скрипт для создания раздела восстановления с необходимыми утилитами и файл ответов можно скачать по ссылке

При подготовке статьи использованы материалы форума MyDigitalLife