Одна из моих любимых функций виртуальных машин — моментальные снимки. Хотите протестировать что-нибудь сомнительное в виртуальной машине без риска необходимости последующего восстановления системы? Создайте моментальный снимок! Моментальные снимки — не просто удобная возможность. .

Функцию создания моментальных снимков и восстановления физической системы Window 7 можно реализовать, комбинируя две технологии, описанные мною ранее: загрузку с VHD в Windows 7 Enterprise/Ultimate (в статье «Загрузка Windows 7 Enterprise и Windows 7 Ultimate из файла VHD», опубликованной в Windows IT Pro/RE № 4 за 2011 год) и реализованную в упомянутых выпусках операционной системы собственную поддержку типа файла VHD, называемого «разностным диском» (в статье «Diskpart для создания моментальных снимков физической и виртуальной систем» в № 9 за 2010 год).

Во-первых, создайте загрузочный образ VHD для своей настольной системы. Для этого воспользуйтесь процедурой, описанной в статье «Создаем загрузочный диск VHD», опубликованной в № 3 за 2011 год. Назовите загрузочный файл baseimage.vhd. Этот файл обязательно должен быть расширяемым, а не фиксированного размера, иначе вы не сможете создавать моментальные снимки. Сделайте baseimage.vhd вторым вариантом загрузки на своем компьютере, как описано в материале «Создаем загрузочный диск VHD», для чего скопируйте этот файл на компьютер и поместите его в папку C:\VHDs.

Во-вторых, с помощью команд Bcdedit, о которых говорится в статье «Загрузка Windows 7 из файла VHD», настройте вашу систему на загрузку из файла baseimage.vhd. Выполните новый вариант загрузки с baseimage.vhd и приведите систему к нужному виду, прежде чем сделать ее моментальный снимок.

Теперь настало время создать моментальный снимок. Чтобы сделать возможной загрузку из baseimage.vhd, сохраняя способность отмены любых изменений в файле baseimage.vhd, необходимо сделать так, чтобы этот файл оставался неизменным, а все изменения отражались в другом файле VHD. Для этого создайте новый VHD (не расширяемый, не фиксированный, но разностный VHD), ассоциированный с baseimage.vhd. Система Windows рассматривает исходный VHD как родительский, а новый разностный VHD — как дочерний файл. Однако дочерний VHD нельзя создать для активного родительского VHD, поэтому перед созданием дочернего файла для baseimage.vhd перезапустите систему, загрузив исходный образ Windows на диске C компьютера, чтобы высвободить файл baseimage.vhd. Теперь откройте программу Diskpart и введите следующую команду:

create vdisk file=c:\vhds\snapshot1.vhd parent=c:\vhds\baseimage.vhd

Далее с помощью команд Bcdedit, которые использовались для настройки загрузки системы из файла baseimage.vhd (то есть второго варианта загрузки), создайте третий вариант загрузки из C:\vhds\snapshot1.vhd.

Выполните третий вариант загрузки, и с этого момента файл baseimage.vhd будет оставаться неизменным, а все изменения будут отражены в файле snapshot1.vhd. Впоследствии можно изменять систему как угодно, а для возврата в состояние, предшествовавшее созданию моментального снимка, достаточно будет выполнить первый вариант загрузки, открыть командную строку с повышенными привилегиями и ввести следующие команды:

del c:\vhds\snapshot1.vhd
diskpart
create vdisk file=c:\vhds\snapshot1.vhd parent=c:\vhds\baseimage.vhd
exit

После выполнения третьего варианта загрузки ваша система вернется в базовое состояние. Как и прежде, все новые изменения будут отражены в файле snapshot1.vhd. При необходимости возврата в исходное состояние просто повторите указанные выше команды и вновь выполните третий вариант загрузки.

Для изменения файла baseimage.vhd существует два варианта. Можно выполнить второй вариант загрузки и внести нужные изменения (все они будут отражены в файле baseimage.vhd). Если же вас устраивают изменения, отраженные в файле snapshot1.vhd, и вы хотите сохранить именно этот вариант, выполните первый вариант загрузки и осуществите слияние файлов snapshot1.vhd и baseimage.vhd:

diskpart
select vdisk file=c:\vhds\snapshot1.vhd
merge vdisk depth=1
exit
del c:\vhds\snapshot1.vhd

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

Марк Минаси (www.minasi.com/gethelp) — старший редактор журнала Windows IT Pro, сертифицированный системный инженер по продуктам Microsoft