- Введение
- Создание собственного диска восстановления
- Использование USB устройств в качестве загрузочного диска
Диск восстановления - это общее понятие для компакт диска с резервной копией системы и настроек компьютера, которая сделана производителем или пользователем компьютера. Использование такого диска предполагает форматирование жесткого диска компьютера и копирование системных файлов и данных из резервной копии системы с компакт диска на диск компьютера, то есть приведение системы компьютера в состояние на момент создания диска восстановления.
Обычно диски восстановления - это загрузочные диски с собственной операционной системой, которая не зависит от установленной на компьютере системы. Такие диски могут использоваться как для полного восстановления системы, так и для диагностики компьютера и копирования отдельных файлов с поврежденной операционной системы на USB-носители или сервера.
Наиболее распространенная операционная система на загрузочных дисках - это Windows PE разных версий. Такое распространение этой операционной системы связано с тем, что она позволяет запускать множество стандартных программ Windows, не требующих расширенных динамических библиотек и ресурсов, что вполне достаточно для восстановления работоспособности компьютера и копирования данных с поврежденной системы.
Для того, чтобы создать собственный диск восстановления для операционной системы семейства Windows, потребуется пакет WAIK - автоматизированный инсталяционный комплект Windows, драйвера компьютера, на котором и для которого создается диск восстановления, дополнительные программы и скрипты, перезаписываемый DVD и привод для записи дисков.
Процесс создания загрузочного диска разбит на фазы:
- Установка WAIK и подготовка скриптов к работе.
- Сборка загрузочного диска.
- Создание резервной копии системы с помощью загрузочного диска.
- Создание диска восстановления.
Чтобы собрать загрузочный диск, нужно установить на компьютер пакет WAIK для Windows 7, который можно взять с сайта Microsoft, а также создать каталог со следующей структурой:
DiskBuilder\ Sources\ - папки с исходниками загрузчика | Drivers - папки с драйверами | DVDDrive\ - папки, которые будут записаны на DVD | | Image - папка для файла резервной копии системы | | Utils - папка с дополнительными программами | VirtualDrive\ - папки, которые будут внедрены в загрузчик | Utils - вспомогательные программы | | 7-Zip - архиватор | | ImageX - утилита работы с образами системы | | Notepad2 - текстовый редактор | | Scripts - папка со скриптами | | | Capture.bat - скрипт создания резервной копии | | | DiskPart.bat - скрипт разметки диска | | | DiskPart00.txt - вспомогательный файл | | | DiskPart01.txt - вспомогательный файл | | | label.exe - утилита для изменения метки диска | | | Label.txt - вспомогательный файл | | | NetInit.bat - скрипт подключения сети | | | Restore.bat - скрипт восстановления системы | | | Robocopy.exe - утилита копирования файлов | | | Starter.hta - оболочка загрузочного диска | | UnrealCommander - файловый менеджер | Windows - служебная папка виртуальной ОС | System32 - служебная папка виртуальной ОС | winpe.bmp - обои виртуальной ОС | winpeshl.ini - команды автозапуска виртуальной ОС 1_MakeStructure.bat - скрипт подготовки структуры загрузчика 2_PrepareBoot.bat - скрипт подготовки образа загрузчика 3_MakeBoot.bat - скрипт создания загрузочного диска 4_MakeRestoreDisk.bat - скрипт создания диска восстановления
Созданная структура будет отправной точкой для формирования загрузчика, в ней должны быть собраны все драйвера, необходимые для загрузки системы, все сценарии работы в виртуальной ОС, а также вспомогательные программы. В процессе сборки диска содержимое этой папки изменяться не будет, эта папка выступает как источник для формирования виртуальной операционной системы и гарантией от ошибок при редактировании скриптов.
Итак, папка DiskBuilderсостоит из:
- Скриптов сборки загрузчика и диска восстановления, которые находятся в корне папки.
- Драйверов для запуска виртуальной операционной системы, например драйвера SATA-устройств и сетевых карт. Не следует копировать все существующие драйвера от компьютера для внедрения в загрузчик, так как во-первых, в Windows PE уже существует набор стандартных драйверов, а во-вторых наличие некоторых драйверов может привести к конфликту и виртуальная ОС вообще не загрузится. Рекомендуется внедрять только те драйвера, которые действительно нужны для нормальной работы Windows PE. В архиве с исходниками в папке драйверов уже находятся три драйвера сетевых карт, которых нет в стандартной поставке загрузчика.
- Структуры папок, которые будут скопированы на загрузочный DVD. Сюда можно поместить программы и утилиты, которые могут потребоваться в виртуальной ОС.
- Структуры папок, которые будут внедрены в загрузчик. Сюда нужно поместить программы, утилиты и скрипты, которые требуются для работы в виртуальной ОС. Слудует учесть тот факт, что размер виртуальной ОС будет увеличен на то количество байт, сколько занимает папка VirtualDrive. То есть чем больше эта папка, тем больше требуется оперативной памяти для запуска Windows PE.
Описание и текст скриптов, необходимых для работы в виртуальной операционной системе.
Сценарий создания образа (резервной копии) операционной системы (файл "Capture.bat"):
@echo off echo. echo. echo "The image capture" "%~DP0..\ImageX\imagex.exe" /capture C:\ C:\Image.wim DiskC echo. echo. echo "Please remove DVD from the DVD-drive and reboot the computer" echo. echo. pause
Этот сценарий упаковывает содердимое диска C: в архив с именем Image.wim.
Сценарий восстановления образа операционной системы - восстановление системы (файл "Restore.bat"):
@echo off echo. echo. echo "Formating the disk" type "%~DP0Label.txt" | "%~DP0Label.exe" C: echo Y | format C: /Q /FS:NTFS /V:System /X>nul echo. echo. echo "The image deployment" "%~DP0..\ImageX\imagex.exe" /apply "%1\Image\Image.wim" 1 C:\ echo. echo. echo "Please remove DVD from the DVD-drive and reboot the computer" echo. echo. pause
Этот сценарий форматирует диск C:, распаковывает образ операционной системы из архив с именем Image.wim на диск C:.
Сценарий подключения сети (файл "NetInit.bat"):
@echo off echo. echo. echo "Initializing the network adapter" wpeutil InitializeNetwork>nul ping -n 20 127.0.0.1>nul wpeutil DisableFirewall>nul echo. echo. ipconfig /renew echo. echo. echo "The network initialization is complete. Please review the log in this window." pause
Сценарий разметки диска (файл "DiskPart.bat" и вспомогательные файлы "DiskPart00.txt" и "DiskPart01.txt"):
@echo off echo. echo. echo "Creating the new disk structure" diskpart.exe /S "%~DP0DiskPart00.txt">nul echo. echo. echo "Formating the disk" echo Y | format C: /Q /FS:NTFS /V:>nul diskpart.exe /S "%~DP0DiskPart01.txt" echo. echo. echo "The disk partitioning is completed. Please review the log in this window." pause
select disk 0 clean create partition primary select partition 1 active assign letter=C
select disk 0 select partition 1 detail partition
Этот сценарий удаляет все разделы диска и создает один единственный раздел на весь диск.
Оболочка для виртуальной ОС (файл "Starter.hta"):
<html> <head> <title>Starter</title> <hta:application id="oStarter" border="none" caption="no" contexmenu="no" icon="Starter_files\starter.ico" innerborder="no" maximizebutton = "no" minimizebutton = "no" scroll="no" /> <!-- сценарий обработки действий пользователя, динамическая часть приложения --> <script type="text/vbscript" language="VBScript.Encode"> ' модель компьютера, для которого сделан диск восстановления Const gComputerType = "Восстановление компьютера" ' изменение размеров окна приложения при запуске sub windowOnLoad iWidth = 640 iHeight = 480 iHorizontal = 800 iVertical = 600 iLeft = (iHorizontal - iWidth) / 2 iTop = (iVertical - iHeight) / 2 Self.Focus() Self.resizeTo iWidth, iHeight Self.moveTo iLeft, iTop - 15 HeaderZone.innerHTML = gComputerType end sub ' определение буквы DVD-привода function DetectDVD sTempValue = "" sComputer = "." set oWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ sComputer & "\root\cimv2") set colDisks = oWMIService.ExecQuery ("Select * from Win32_LogicalDisk") for Each oDisk in colDisks if UCase(oDisk.VolumeName) = UCase("BootDisk") then sTempValue = _ oDisk.Name Next DetectDVD = sTempValue end function ' прорисовка служебной зоны приложения sub DrawExtendedZone(sCommand) select case sCommand case "Restoration" sContent = sContent & "<div class=""header4"">Восстановление</div>" sContent = sContent & "<div class=""NormalText""><br />" & _ "</div>" sContent = sContent & "<div class=""NormalText"">" & _ "Эта опция разворачивает на компьютере сохраненный образ.</div>" sContent = sContent & "<div class=""NormalText""><br /></div>" sContent = sContent & "<div class=""NormalText"">" & _ "Вы уверены, что хотите развернуть этот образ?</div>" sContent = sContent & "<div class=""NormalLink"" id=""Restore"" " & _ "onclick=RunApplication(me.id) onmouseover=me.className=" & _ "'NormalLinkMouseOver' onmouseout=me.className='NormalLink'>" & _ "- Да, восстановить образ.</div>" sContent = sContent & "<div class=""NormalLink"" onclick=" & _ "DrawExtendedZone(AGCLogo) onmouseover=me.className=" & _ "'NormalLinkMouseOver' onmouseout=me.className=" & _ "'NormalLink'>- Нет, отменить действие.</div>" case "DiskPartitioning" sContent = sContent & "<div class=""header4"">Разметка</div>" sContent = sContent & "<div class=""NormalText""><br />" & _ "</div>" sContent = sContent & "<div class=""NormalText"">" & _ "Эта опция создает один раздел на весь диск компьютера.</div>" sContent = sContent & "<div class=""NormalText""><br /></div>" sContent = sContent & "<div class=""NormalText"">" & _ "Вы уверены, что хотите уничтожить все данные и сделать новую " & _ "разметку диска компьютера?</div>" sContent = sContent & "<div class=""NormalLink"" " & _ "id=""ApplyDiskStructure"" " & _ "onclick=RunApplication(me.id) onmouseover=me.className=" & _ "'NormalLinkMouseOver' onmouseout=me.className='NormalLink'>" & _ "- Да, применить новую разметку диска.</div>" sContent = sContent & "<div class=""NormalLink"" onclick=" & _ "DrawExtendedZone(AGCLogo) onmouseover=me.className=" & _ "'NormalLinkMouseOver' onmouseout=me.className=" & _ "'NormalLink'>- Нет, отменить действие.</div>" case else sContent = sContent & "<div class=""NormalText"">" & _ "Этот загрузочный диск предназначен для восстановления " & _ "компьютера, указанного в названии этого окна.</div>" sContent = sContent & "<div class=""NormalText""" & _ "><br /></div>" sContent = sContent & "<div class=""NormalText"">" & _ "Процедура восстановления сотрет все данные на компьютере и " & _ "вернет систему к моменту создания образа восстановления.</div>" sContent = sContent & "<div class=""NormalText""><br /></div>" sContent = sContent & "<div class=""NormalText"">" & _ "Чтобы восстановить систему нажмите кнопку ""Восстановить"".</div>" sContent = sContent & "<div class=""NormalText""><br /></div>" sContent = sContent & "<div class=""SmallText"">" & _ "Для запуска командной строки можно воспользоваться сочетанием " & _ "клавиш CTRL+Enter.</div>" sContent = sContent & "<div class=""SmallText"">" & _ "Для запуска диспетчера файлов воспользоваться сочетанием " & _ "клавиш CTRL+BackSpace.</div>" end select ExtendedZone.innerHTML = sContent end sub ' запуск выбранной программы sub RunApplication(sApplication) sCommandLine ="" sContent = "" sDVDLetter = DetectDVD set oShell = CreateObject("Wscript.Shell") SystemDrive = oShell.ExpandEnvironmentStrings("%SYSTEMDRIVE%") ' пути к запускаемым программам и сценариям select case sApplication case "Restore" if CheckFile(SystemDrive & "\Utils\Scripts\Restore.bat") = true _ then sCommandLine = "%COMSPEC% /C " & _ SystemDrive & "\Utils\Scripts\Restore.bat " & sDVDLetter case "ApplyDiskStructure" if CheckFile(SystemDrive & "\Utils\Scripts\DiskPart.bat") = true _ then sCommandLine = "%COMSPEC% /C " & _ SystemDrive & "\Utils\Scripts\DiskPart.bat" case "CommandPrompt" sCommandLine = "%ComSpec%" case "FileManager" if CheckFile(SystemDrive & "\Utils\UnrealCommander\Uncom.exe") = _ true then sCommandLine = SystemDrive & _ "\Utils\UnrealCommander\Uncom.exe" case "NetworkInitialization" if CheckFile(SystemDrive & "\Utils\Scripts\NetInit.bat") = true _ then sCommandLine = "%COMSPEC% /C " & _ SystemDrive & "\Utils\Scripts\NetInit.bat" case "CaptureC" if CheckFile(SystemDrive & "\Utils\Scripts\Capture.bat") = true _ then sCommandLine = "%COMSPEC% /C " & _ SystemDrive & "\Utils\Scripts\Capture.bat" case else sCommandLine ="" end select ' запуск программы или сценария и перерисовка служебной зоны приложения if Len(sCommandLine) > 0 then oShell.Run sCommandLine,1,0 sContent = sContent & "<div class=""NormalText"">" & _ "Этот загрузочный диск предназначен для восстановления компьютера, " & _ "указанного в названии этого окна.</div>" sContent = sContent & "<div class=""NormalText""" & _ "><br /></div>" sContent = sContent & "<div class=""NormalText"">" & _ "Процедура восстановления сотрет все данные на компьютере и вернет " & _ "систему к моменту создания образа восстановления.</div>" sContent = sContent & "<div class=""NormalText""><br /></div>" sContent = sContent & "<div class=""NormalText"">" & _ "Чтобы восстановить систему нажмите кнопку ""Восстановить"".</div>" else sContent = sContent & "<div class=""header4"">Внимание</div>" sContent = sContent & "<div class=""NormalLink"">Извините, но " & _ "этот диск не поддерживает выбранную опцию. За более подробной " & _ "информацией обращайтесь к поставщику диска.</div>" end if ExtendedZone.innerHTML = sContent end sub ' пауза в работе сценария sub ccSleep(seconds) set oShell = CreateObject("Wscript.Shell") cmd = "%COMSPEC% /c ping -n " & 1 + seconds & " 127.0.0.1>nul" oShell.Run cmd,0,1 end Sub ' проверка наличия файла function CheckFile(sFilePath) set oFSO = CreateObject("Scripting.FileSystemObject") if oFSO.FileExists(sFilePath) then CheckFile = true else CheckFile = false end if end function function CtrlEnter(mEvent) If (mEvent.keyCode=27) Then call DrawExtendedZone("") ElseIf (mEvent.keyCode=127) Then call RunApplication("FileManager") ElseIf (mEvent.ctrlKey And mEvent.keyCode=10) Then call RunApplication("CommandPrompt") End If End function </script> <!-- стили отображения элементов приложения --> <style> body { font-family: Tahoma; background-color: #f6f8ff; margin: 0px 0px 0px 0px; padding: 5px 5px 5px 5px; } .button { border: 0px; padding: 2px 3px 2px 3px; margin: 0px 3px 0px 3px; font-size: 90%; text-align: center; color: #f6f8ff; background-color: #004c99; } .header1 { font-size: 24pt; font-weight: bold; color: #3f52b8; height: 48px } .header2 { font-size: 20pt; color: #3f52b8; height: 32px; } .header3 { font-size: 14pt; color: #ff6633; } .header4 { font-size: 14pt; color: #3f52b8; } .NormalLink { font-size: 10pt; color: black; cursor: default; text-align: left; padding-right: 20px } .NormalLinkMouseOver { font-size: 10pt; color: darkblue; text-decoration: underline; cursor: hand; text-align: left; padding-right: 20px } .ExitLink { font-size: 10pt; color: #FF3300; cursor: default; text-align: right; padding-right: 20px } .ExitLinkMouseOver { font-size: 10pt; color: darkblue; text-decoration: underline; cursor: hand; text-align: right; padding-right: 20px } .NormalText { font-size: 10pt; text-align: left; } .SmallText { font-size: 7pt; text-align: left; } .NormalButton { height: 50px; padding: 2px 3px 2px 3px; margin: 0px 0px 0px 0px; font-size: 12pt; text-align: center; color: darkblue; font-weight: bold; } </style> </head> <!-- статическая часть приложения приложения --> <body onload=windowOnLoad() onkeypress=CtrlEnter(window.event)> <div class="header1" id="HeaderZone">Restoration disk</div> <table style="width: 100%;"> <tr> <!-- прорисовка кнопок и ссылок --> <td style="width: 170px; text-align: right; vertical-align:top; height: 390px;"> <table> <tr> <td><input class="NormalButton" id="Restoration" type="button" value="Восстановить" onclick=DrawExtendedZone(me.id) /></td> </tr> <tr> <td> <div class="header3">Дополнительно</div> <table> <tr> <td><div class="NormalLink" id="NetworkInitialization" onclick=RunApplication(me.id) onmouseover=me.className='NormalLinkMouseOver' onmouseout=me.className='NormalLink'>Подключить сеть </div></td> </tr> <tr> <td><div class="NormalLink" id="CaptureC" onclick=RunApplication(me.id) onmouseover=me.className='NormalLinkMouseOver' onmouseout=me.className='NormalLink'> Снять образ с диска C: </div></td> </tr> <tr> <td><div class="NormalLink" id="DiskPartitioning" onclick=DrawExtendedZone(me.id) onmouseover=me.className='NormalLinkMouseOver' onmouseout=me.className='NormalLink'>Разметить диск </div></td> </tr> <tr> <td><div class="NormalLink" id="CommandPrompt" onclick=RunApplication(me.id) onmouseover=me.className='NormalLinkMouseOver' onmouseout=me.className='NormalLink'>Командная строка </div></td> </tr> <tr> <td><div class="NormalLink" id="FileManager" onclick=RunApplication(me.id) onmouseover=me.className='NormalLinkMouseOver' onmouseout=me.className='NormalLink'>Диспетчер файлов </div></td> </tr> </table> </td> </tr> </table> </td> <!-- прорисовка основы служебной зоны приложения --> <td style="text-align: center; vertical-align:top;"> <div id="ExtendedZone"> <div class="NormalText">Этот загрузочный диск предназначен для восстановления компьютера, указанного в названии этого окна.</div> <div class="NormalText"><br /></div> <div class="NormalText">Процедура восстановления сотрет все данные на компьютере и вернет систему к моменту создания образа восстановления.</div> <div class="NormalText"><br /></div> <div class="NormalText">Чтобы восстановить систему нажмите кнопку "Восстановить".</div> <div class="NormalText"><br /></div> <div class="SmallText">Для запуска командной строки можно воспользоваться сочетанием клавиш CTRL+Enter.</div> <div class="SmallText">Для запуска диспетчера файлов воспользоваться сочетанием клавиш CTRL+BackSpace.</div> </div> </td> </tr> <tr> <td> <div class="NormalText">версия 2.1</div> </td> <td> <div class="ExitLink" id="LinkExit" onclick=self.close() onmouseover=me.className='ExitLinkMouseOver' onmouseout=me.className='ExitLink'>Перезагрузить</div> </td> </tr> </table> </body> </html>
Этот сценарий загружается при старте виртуальной операционной системы. Он представляет из себя hta-программу, которая выступает в качестве пользовательского интерфейса. С помощью этого сценария можно запустить другие скрипты и программы.
Чтобы создать загрузочный диск, необходимо выполнить скрипт "1_MakeStructure.bat" из подготовленного на предыдущем этапе каталога.
@echo ON set Destination=C:\BootDisk\ rd "%Destination%" /S /Q md "%Destination%" md "%Destination%WinPE_Prepare" md "%Destination%WinPE_Prepare\DVDDrive" md "%Destination%WinPE_Prepare\VirtualDrive" md "%Destination%WinPE_Prepare\Drivers" xcopy "%~DP0Sources\Drivers" "%Destination%WinPE_Prepare\Drivers\" /S /E xcopy "%~DP0Sources\DVDDrive" "%Destination%WinPE_Prepare\DVDDrive\" /S /E xcopy "%~DP0Sources\VirtualDrive" "%Destination%WinPE_Prepare\VirtualDrive\" /S /E pause
Этот скрипт создает в папке C:\BootDisk копию подготовленного на предудущем этапе каталога.
Далее необходимо скопировать необходимые драйвера дискового контроллера и сетевого адаптера в папку C:\BootDisk\WinPE_Prepare\Drivers, если драйвера не были добавлены на предыдущем этапе.
Теперь нужно отредактировать файл C:\BootDisk\WinPE_Prepare\VirtualDrive\Utils\Scripts\Starter.hta под свои нужды, например ввести название компьютера, для которой делается образ.
... ' модель компьютера, для которого сделан диск восстановления Const gComputerType = "Fujitsu-Siemens Amilo Pa2548" ...
В папки C:\BootDisk\WinPE_Prepare\DVDDrive и C:\BootDisk\WinPE_Prepare\VirtualDrive можно добавить свои программы и скрипты, но следует учесть, что добавление файлов в папку VirtualDrive увеличивает размер загрузочного образа, то есть размер требуемой оперативной памяти для загрузки с диска восстановления.
После того, как все подготовительные операции сделаны, можно приступать к сборке загрузчика. Для этого необходимо запустить скрипт сборки файла boot.wim - скрипт "2_PrepareBoot.bat".
@echo on set Destination=C:\BootDisk\ set PETools=%PROGRAMFILES%\Windows AIK\Tools\PETools\ if /i %PROCESSOR_ARCHITECTURE% EQU X86 ^ set PATH=%PETools%;%PETools%..\%PROCESSOR_ARCHITECTURE%;^ %PETools%..\%PROCESSOR_ARCHITECTURE%\Servicing;%PATH%; if /i %PROCESSOR_ARCHITECTURE% NEQ X86 ^ set PATH=%PETools%;%PETools%..\%PROCESSOR_ARCHITECTURE%;^ %PETools%..\x86;%PETools%..\%PROCESSOR_ARCHITECTURE%\Servicing;^ %PETools%..\x86\Servicing;%PATH%; cd /d %PETools% rd "%Destination%WinPE" /Q /S %COMSPEC% /C copype.cmd x86 "%Destination%WinPE" dism /Mount-Wim /WimFile:"%Destination%WinPE\winpe.wim" /index:1 ^ /MountDir:"%Destination%WinPE\mount" dism /image:"%Destination%WinPE\mount" /Add-Package ^ /PackagePath:"%PROGRAMFILES%\Windows AIK\Tools\PETools\x86\WinPE_FPs\winpe-scripting.cab" dism /image:"%Destination%WinPE\mount" /Add-Package ^ /PackagePath:"%PROGRAMFILES%\Windows AIK\Tools\PETools\x86\WinPE_FPs\winpe-wmi.cab" dism /image:"%Destination%WinPE\mount" /Add-Package ^ /PackagePath:"%PROGRAMFILES%\Windows AIK\Tools\PETools\x86\WinPE_FPs\winpe-hta.cab" dism /image:"%Destination%WinPE\mount" /Add-Driver ^ /Driver:"%Destination%WinPE_Prepare\Drivers" /Recurse xcopy "%Destination%WinPE_Prepare\VirtualDrive" "%Destination%WinPE\mount\" /Y /S /E dism /Unmount-Wim /MountDir:"%Destination%WinPE\mount" /Commit imagex /export "%Destination%WinPE\winpe.wim" 1 "%Destination%WinPE\boot.wim" pause
Этот скрипт создает в папке C:\BootDisk рабочую директорию WinPE, в которую копирует стандартный загрузчик из WAIK, добавляет в него необходимые модули, внедряет драйвера, скрипты и программы. Результатом работы этого скрипта будет файл-загрузчик boot.wim.
После сборки загрузчика можно приступать к созданию загрузочного диска. Для этого нужно выполнить скрипт "3_MakeBoot.bat"
@echo ON set Destination=C:\BootDisk\ set PETools=%PROGRAMFILES%\Windows AIK\Tools\PETools\ if /i %PROCESSOR_ARCHITECTURE% EQU X86 ^ set PATH=%PETools%;%PETools%..\%PROCESSOR_ARCHITECTURE%;^ %PETools%..\%PROCESSOR_ARCHITECTURE%\Servicing;%PATH%; if /i %PROCESSOR_ARCHITECTURE% NEQ X86 ^ set PATH=%PETools%;%PETools%..\%PROCESSOR_ARCHITECTURE%;^ %PETools%..\x86;%PETools%..\%PROCESSOR_ARCHITECTURE%\Servicing;^ %PETools%..\x86\Servicing;%PATH%; cd /d %PETools% xcopy %Destination%WinPE\boot.wim %Destination%WinPE\ISO\sources\ /Y xcopy %Destination%WinPE_Prepare\DVDDrive %Destination%WinPE\iso\ /Y /S oscdimg -m -n -h -lBootDisk -b%Destination%WinPE\etfsboot.com ^ %Destination%WinPE\ISO %Destination%BootDisk.iso pause
Этот скрипт создает в папке C:\BootDisk рабочую директорию ISO, в которую копирует исправленный загрузчик boot.wim и структуру папок DVDDrive, послe чего создает ISO-образ загрузочного компакт-диска, который можно записать на DVD. Готовый ISO-образ будет находится по адресу C:\BootDisk\BootDisk.iso.
Когда загрузочный диск готов, а система очищена от лишний программ, документов, музыки, фильмов и файлов, можно приступить к созданию резервной копии системы.
Для создания образа системы необходимо загрузиться с готового загрузочного диска и выбрать "Снять образ диска С:". Скрипт снятия образа создаст архив с резервной копией системы в файле c:\image.wim.
После успешного создания файла с образом операционной системы image.wim можно перезагрузить компьютер и приступить к созданию загрузочного диска восстановления.
Как только получен файл image.wim, его можно внедрить в загрузочный диск, сделав тем самым диск восстановления системы. Для этого необходимо скопировать файл image.wim в папку C:\BootDisk\DVDDrive\Image и запустить скрипт "4_MakeRestoreDisk.bat"
@echo on set Destination=C:\BootDisk\ set PETools=%PROGRAMFILES%\Windows AIK\Tools\PETools\ if /i %PROCESSOR_ARCHITECTURE% EQU X86 ^ set PATH=%PETools%;%PETools%..\%PROCESSOR_ARCHITECTURE%;^ %PETools%..\%PROCESSOR_ARCHITECTURE%\Servicing;%PATH%; if /i %PROCESSOR_ARCHITECTURE% NEQ X86 ^ set PATH=%PETools%;%PETools%..\%PROCESSOR_ARCHITECTURE%;^ cd /d %PETools% oscdimg -m -n -h -lBootDisk -b%Destination%WinPE\etfsboot.com ^ %Destination%WinPE\ISO %Destination%BootDisk.iso pause
Этот скрипт похож на скрипт "3_MakeBoot.bat". Результатом его работы будет готовый ISO-образ диска восстановления компьютера, который заменит предыдущий образ загрузочного диска C:\BootDisk\BootDisk.iso.
Далее необходимо записать сформированный ISO-образ на DVD - диск восстановления готов. Теперь, если что-то случиться с системой, можно вставить диск и восстановить сисему на момент создания резервной копии, но следует помнить, что все документы и прочие файлы будут стерты.
Также этот диск можно использовать для извлечения данных с компьютера с поврежденной ОС. Для этого необходимо загрузится с диска восстановления, а параллельно с загрузкой виртуальной операционной системы вставить в компьютер USB-диск или USB-флешку - этот диск будет доступен в файловом менеджере виртуальной ОС, то есть на него можно будет скопировать нужные данные с поврежденного компьютера.
Подготовленную структуру сборки диска восстановления можно использовать для создания загрузочного USB-диска или флэшки. Для создания такой флэшки потребуется всего лишь пометить главный раздел диска флэшки как активный и отформатирвать его в формате FAT32.
Порядок создания загрузочной флэшки:
- Скопировать все необходимые файлы с флэшки на диск компьютера (в процессе создания загрузочного раздела все данные с флэшки будут удалены).
- Запустить командную строку.
- Войти в утилиту разметки диска - выполнить команду DiskPart:
C:\>DiskPart Microsoft DiskPart версии 6.1.7600 (С) Корпорация Майкрософт, 1999-2008. На компьютере: TESTCOMPUTER
- Вывести на экран список дисков - выполнить команду List Disk:
DISKPART> List Disk Диск ### Состояние Размер Свободно Дин GPT -------- ------------- ------- ------- --- --- Диск 0 В сети 74 Gбайт 0 байт Диск 1 В сети 14 Gбайт 0 байт
- Пометить флэшку как диск активный для работы - выполнить команду Select Disk (в примере флэшка имеет индекс 1, который определен исходя из размера флэшки):
DISKPART> Select Disk 1 Выбран диск 1.
- Очистить разметку диска - выполнить команду Clean:
DISKPART> Clean DiskPart: очистка диска выполнена успешно.
- Создать главный раздел диска - выполнить команду Create Partition Primary:
DISKPART> Create Partition Primary DiskPart: указанный раздел успешно создан.
- Пометить созданный раздел диска как активный - выполнить команду Active
DISKPART> Active DiskPart: раздел помечен как активный.
- Выйти из утилиты разметки диска - выполнить команду Exit:
DISKPART> Exit Завершение работы DiskPart...
- Отформатировать флэшку в формате FAT32 и дать ей метку BootDisk - выполнить команду Format (в примере флэшка названа буквой E:):
C:\>Format E: /FS:FAT32 /Q Вставьте новый диск в дисковод E: и нажмите клавишу ENTER... Тип файловой системы: RAW. Новая файловая система: FAT32. Быстрое форматирование: 15271 МБ Инициализируется File Allocation Table (FAT)... Метка тома (11 символов, ENTER - метка не нужна): BootDisk Форматирование окончено. 14,9 ГБ всего на диске. Доступно: 14,9 ГБ. 8 192 байт в каждом кластере. 1 952 639 кластеров на диске. 32 бит в каждой записи FAT. Серийный номер тома: 4A91-1BC8
- Скопировать содержимое папки C:\BootDisk\WinPE\ISO на флэшку, например командой XCopy:
C:\>XCopy C:\BootDisk\WinPE\ISO\* E:\ /S /E /I /Y /Q Скопировано файлов: 897.
- Загрузочный USB-диск готов к использованию.
Секция внешних ссылок, то есть ссылок на другие сайты, к которым данный ресурс не имеет никакого отношения. Данные ссылки размещены для удобства пользователей и не означают, что владелец сайта SysEngineering.ru одобряет содержание сайтов, приведенных ниже. Кроме этого, владелец сайта SysEngineering.ru не несет никакой ответственности за доступность этих ресурсов и за их контент.
Средства для создания диска восстановления и загрузочный iso-образ | |
The Windows® Automated Installation Kit (AIK) for Windows® 7 |