Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
248 lines (246 sloc) 30 KB
---
layout: post
wp_id: 2793
title: 'Заморозка системы: история перехода с EWF на dVHD'
author: ZKyl
date: 2013-09-19 01:23:23 +0000
last_modified_at: 2016-09-07 10:39:46 +0000
redirect_from:
- /excerpt/2793.html
- /2013/2793/
- /2013/2793/заморозка-системы-история-перехода-с-ew/
authors:
- Васильев Евгений
issues:
- (к изданию)
categories:
- ITштуки
- Software
- чтиво
tags:
- BCD
- enhanced write filter
- SSD
- TRIM
- tutorial
- VHD
- Windows
- WinPE
- заморозка системы
- сисадмин
wp_comments:
-
id: 238
date: 2013-10-08 11:33:04 +0000
author: ZKyl
content: |
<p>Скоро выйдет продолжение статьи, в котором будет описан способ, значительно сокращающий время развертывания системы на VHD.</p>
<p>P.S. небольшой намек: p2p.</p>
-
id: 249
date: 2016-09-06 11:03:38 +0000
author: ZKyl
content: |
<p>Обновил ссылки на батники (VHD_set_over, VHD_first_set_over, VHD_set_parent).<br />
В новой версии улучшена стабильность работы, и включена запись логов.</p>
-
id: 250
date: 2016-09-20 13:51:47 +0000
author: ZKyl
content: |
<p>Продолжение статьи наконец вышло (спустя 3 года): <a href="{{ site.url }}{{ site.baseurl }}/2016/3704/ringsync-синхронизируем-на-полной-скорости-с/" rel="nofollow">{{ site.url }}{{ site.baseurl }}/2016/3704/ringsync-синхронизируем-на-полной-скорости-с/</a></p>
---
<p><img class="alignright size-full wp-image-2962" src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2013/09/frozendrive.png %}" alt="dVHD" width="181" height="189" /></p>
<p class="grey">Продолжение темы про заморозку системы.</p>
<p>В предыдущей <a href="{{ site.url }}{{ site.baseurl }}{% post_url 2013-02-21-2748-заморозка-системы %}">статье</a> речь велась о сторонних программах для Windows, которые позволяют "замораживать" состояние системы. Эти программы необходимы, т.к. считается, что Windows не имеет подобных встроенных механизмов.</p>
<p>Мало кто знает, что помимо версий Windows для простых смертных (Home, Professional, Ultimate, ...), корпоративных  версии (Enterprise), и серверных версий (Windows Server), существуют <a href="http://ru.wikipedia.org/wiki/Windows_Embedded" target="_blank">несколько версий</a> Windows для <a href="http://habrahabr.ru/post/138630/">встраиваемых систем</a> (Embedded). Именно в Windows Embedded присутствует специальный модуль (EWF), который позволяет "заморозить" систему.</p>
<p class="note">Далее описывается история установки и настройки Windows Embedded Standard 7 с EpicFAIL'оми и счастливым концом.</p>
<p><!--more--></p>
<p style="text-align: justify">Недавно пришлось создать одну встроенную систему на базе неттоп'а (Intel Atom, NVIDIA Ion, 2 GB DDR3, SSD 64 GB). Изначально планировалось установить на него GNU/Linux из-за лучшей возможности кастомизации, и возможности "заморозки" системы при использовании специальных файловых систем (<a href="http://ru.wikipedia.org/wiki/Aufs" target="_blank">Aufs</a>, <a href="http://ru.wikipedia.org/wiki/UnionFS" target="_blank">UnionFS</a>). Однако, как всегда, возникли сложности на пути завоевания Linux'ом кремневых сердец. Встраиваемая система состояла не только из неттоп'а, но и из других устройств, разработчики которых написали ПО только для Windows, и, стоит признать, это ПО было написано хорошо. И так, в очередной раз, победила Винда  <img src="{{ site.url }}{{ site.baseurl }}{% link /theme/)/cry.gif %}" alt=":cry:" class="wp-smiley" />  .</p>
<p style="text-align: justify">Благо, что существует Windows Embedded Standard, который позволяет устанавливать только те компоненты системы, которые будут нужны, что важно при использовании SSD малого объема (установленный Windows Embedded Standard 7 занял 3-4GiB, тогда как обычный Windows 7 занимает 8-10 GiB), и содержит <a href="http://habrahabr.ru/company/pt/blog/155135" target="_blank">EWF</a> <span class="grey">(в статье описывается, как перенести модуль EWF из Windows Embedded в обычную Windows)</span>:</p>
<p class="note"><strong>Расширенный фильтр записи</strong> (<em>Enhanced Write Filter, <strong>EWF</strong></em>) — это дополнительный компонент, использующийся в Windows Embedded. EWF делает дисковый том доступным только для чтения. При этом операции записи, которые выполняются с данными, хранящимися на этом дисковом томе, перенаправляются в его наложение, которое может находиться на другом диске или в памяти компьютера. Windows рассматривает наложение EWF и его дисковый том как единое устройство. При этом фактически на дисковом томе не происходит изменений. Все изменения сохраняются только в наложении EWF. Изменения можно сохранить на дисковый том в любой момент времени.</p>
<p><strong>Первый EpicFAIL:</strong> спустя несколько дней после установки Windows Embedded Standard <strong>7</strong>, вышла финальная версия Embedded Standard <strong>8</strong>.</p>
<h2>Процесс включения EWF</h2>
<p style="text-align: justify"><strong>Во-первых</strong>, для работы всех возможностей EWF нужен специальный загрузчик (он выбирается на этапе установки системы).<br />
<strong>Во-вторых</strong>, желательно перенести pagefile.sys на другой раздел. И создать отдельный раздел для логов, документов, и остальных часто изменяемых файлов, которые не требуется замораживать. Также надо выполнить еще несколько подготовительных действий перед активацией EWF, однако в этой статье они описываться не будут, ибо, как раз в этот момент и произошел <strong>EpicFAIL</strong>...</p>
<h2>Main EpicFAIL</h2>
<p><strong>Несколько фактов:</strong></p>
<ul>
<li>Вся информация о тонкой настройке EWF была взята из <a href="http://msdn.microsoft.com/en-us/library/bb521577(v=winembedded.51).aspx" target="_blank">MSDN</a> для Windows Embedded Standard 2009, т.к. без глобального поиска по всему MSDN, раздел про EWF в Windows Embedded Standard 7 не был найден (однако сам модуль EWF присутствует в Windows Embedded Standard 7).</li>
<li>Как написано в цитате выше, EWF может размещать наложение либо на диске (Disk Mode), либо в RAM. Планировалось использовать Disk Mode, т.к. хоть оперативки и 2 GiB, её все равно мало для планируемого сценария использования.</li>
</ul>
<p>При попытке включить <em>EWF Disk Mode</em> выяснилось следующее:</p>
<p class="error">Windows Embedded Standard 7 only supports EWF RAM and RAM Reg modes. <strong><em>Disk mode</em> is not supported.</strong></p>
<p> <img src="{{ site.url }}{{ site.baseurl }}{% link /theme/)/evil.gif %}" alt=":evil:" class="wp-smiley" /> <span style="float: right"> <img src="{{ site.url }}{{ site.baseurl }}{% link /theme/)/evil.gif %}" alt=":evil:" class="wp-smiley" /> </span></p>
<p>Эта строчка приводится в документе: <a href="http://msdn.microsoft.com/en-us/library/ff794295(v=winembedded.60).aspx" target="_blank">Enhanced Write Filter with HORM (Windows Embedded Standard 7 Service Pack 1)</a>. И если описание EWF для Windows Embedded Standard <strong>2009</strong> находится по пути: 
<pre>Windows Embedded Standard 2009
|- Developer Reference
|- Design a Run-Time Image
|- Enhanced Write Filter</pre>
<p>, то для Windows Embedded Standard <strong>7</strong> этот путь выглядит иначе: 
<pre>Windows Embedded Standard 7
|- Windows Embedded Standard 7 Technical Reference
|- Embedded Enabling Features Technical Reference
|- Enhanced Write Filter with HORM</pre>
<h2>Спасение</h2>
<p style="text-align: justify">Спустя некоторое время блуждания по просторам сети в поисках ответа на вопрос: «На что MS заменила <em>EWF Disk Mode</em>? Не могли же они просто выкинуть эту фитчу. Или же могли<strong>!?</strong>», была найдена замечательная статья: <a href="http://www.elbacom.com/blog/2010/09/disk-mode-write-filter-or-resetting-differential-vhds" target="_blank">"Disk Mode Write Filter or Resetting Differential VHDs"</a> <span class="grey">(bat'ники приведенные в той статье отличаются от bat'ников, приведенных в этой статье)</span>.<br />
В статье-спасителе предлагается использовать dVHD вместо <em>EWF Disk Mode</em>.</p>
<p>Начиная с Windows 7, загрузчик ядра системы поддерживает загрузку из VHD файлов (<em>Native VHD boot</em>).
<p class="note"><strong>Virtual Hard Disk (VHD)</strong> — формат файла, содержащий полную структуру и содержание сходные с жёстким диском. Используется для хранения виртуальных операционных систем, программ и других файлов в одном файле-образе, который можно открыть разными программами виртуализации или виртуальными машинами.</p>
<h1>EWF -&gt; dVHD</h1>
<p><strong>Инструкция:</strong></p>
<ol style="padding-left: 20px">
<li><strong>Делаем бекап системы</strong>.</li>
<li>Необходимо очистить систему от EWF:
<ol>
<li><a href="http://reboot.pro/topic/16119-testing-windows-embedded-standard-thinpc-7-install-and-boot-from-vhd/?p=145506" target="_blank">отключаем FBWF driver</a>
<pre>HKLM\SYSTEM\CurrentControlSet\services\fbwf
"start" = dword:00000004</pre>
</li>
<li>читаем раздел «Установка EWF на Windows 7» статьи <a href="http://habrahabr.ru/company/pt/blog/155135" target="_blank">Внедрение Enhanced Write Filter (EWF)</a>, и <strong>делаем всё наоборот</strong>.</li>
</ol>
</li>
<li>Мы будем использовать <em><a href="http://technet.microsoft.com/en-us/library/gg252579(v=WS.10).aspx" target="_blank">dynamically expanding VHD</a></em>, у которых есть одна особенность - при загрузке с них (<em>Native VHD boot</em>), они <a href="http://habrahabr.ru/post/49670/#comment_1298731" target="_blank">"разбухают в размере"</a>. Чтобы предотвратить "разбухание", необходимо внести изменения в реестр (<a href="http://technet.microsoft.com/en-us/library/gg318055(v=ws.10).aspx#sectionSection13" target="_blank">Step 12: Prevent the VHD from expanding to its full size</a>; на русском: <a href="http://gotch.techfaq.ru/archives/526" target="_blank">Ограничение увеличения динамических VHD при загрузке</a>):
<pre>HKLM\SYSTEM\CurrentControlSet\services\
FsDepends\Parameters
"VirtualDiskExpandOnMount"=dword:00000004</pre>
</li>
<li>Создайте временный (дополнительный) раздел на SSD для временного хранения VHD, либо подключите внешнее хранилище (SSD или HDD). Далее предполагается, что VHD располагается по адресу: 
<pre><strong>Z:\VHD\PROJECTOR_PC.VHD</strong></pre>
</li>
<li>Перенесите системный (<strong>С:\</strong>) раздел на VHD <span class="grey">(самым быстрым способом является <a href="http://blogs.technet.com/b/abeshkov/archive/2009/10/11/3286054.aspx" target="_blank">использование утилиты disk2vhd</a>; я настоятельно рекомендую перезагрузить ПК перед запуском disk2vhd)</span>. Перед этим этапом лучше удалить весь мусор с системного раздела, и <a href="http://habrahabr.ru/post/106684/" target="_blank">оптимизировать загрузку системы</a> (<strong>compact</strong> не используйте!).</li>
<li>Сгенерируйте новую подпись диска и запишите ее в <strong>MBR</strong> VHD. Это произойдет автоматически при <a href="http://www.thevista.ru/page.php?id=15555" target="_blank">монтировании VHD</a>.</li>
<li>После монтирования VHD желательно удалить из него первый (100 MiB) раздел (в оснастке <strong>"Управление дисками"</strong> команда <strong>"Удалить том..."</strong>).</li>
<li>Освободите букву системного диска (<strong>C:</strong>).<br />
<blockquote>
<p style="font-size: small">В Windows системному разделу назначается буква диска (<strong>C:</strong>). Это соответствие (раздел - буква диска) сохраняется в реестре. Если не освободить (удалить запись в реестре) букву диска (<strong>C:</strong>), то при загрузке с VHD новому системному разделу (на VHD) будет присвоена новая буква. Смена буквы диска не повлияла бы на работу программ, если бы у всех программистов руки росли из нужного места, но мы живем не в идеальном мире, и часть программ продолжает обращаться к старому системному диску (<strong>C:</strong>).</p>
</blockquote>
<p> Чтобы этого избежать нужно освободить букву диска (<strong>C:</strong>):</p>
<ol>
<li><a href="http://technet.microsoft.com/ru-ru/library/cc732157.aspx" target="_blank">загрузите куст реестра</a> с VHD:
<ol>
<li>откройте редактор реестра (<strong>regedit</strong>);</li>
<li>выберите раздел '<strong>HKEY_LOCAL_MACHINE</strong>';</li>
<li>в меню 'Файл' выберите команду 'Загрузить куст';</li>
<li>откройте файл '<strong>&lt;точка монтирования VHD&gt;:\Windows\System32\SYSTEM</strong>';</li>
<li>в поле 'Имя раздела' введите '<strong>_temp</strong>';</li>
</ol>
</li>
<li><a href="http://support.microsoft.com/?kbid=223188" target="_blank">удалите букву системного диска</a>:
<ol>
<li>откройте '<strong>HKEY_LOCAL_MACHINE\_temp\MountedDevices</strong>';</li>
<li>удалите или переименуйте '<strong>\DosDevices\C:</strong>';</li>
</ol>
</li>
<li>выгрузите куст:
<ol>
<li>выберите раздел '<strong>HKEY_LOCAL_MACHINE\_temp</strong>';</li>
<li>в меню 'Файл' выберите команду 'Выгрузить куст'.</li>
</ol>
</li>
</ol>
</li>
<li>Демонтируем VHD, и <span style="text-decoration: underline">пробуем загрузится</span> с него:
<ol>
<li>создайте запись в BCD (действия происходят <strong>в консоли администратора</strong>) <span class="grey">(составлено на основе статей: <a href="http://habrahabr.ru/post/49670" target="_blank"> 1 </a><a href="http://winitpro.ru/index.php/2011/03/18/zagruzka-windows-7-s-virtualnogo-zhyostkogo-diska-vhd/" target="_blank"> 2 </a><a href="http://searchvirtualdesktop.techtarget.com/tip/How-to-build-a-native-boot-VHD-for-Windows-7-in-a-few-simple-steps" target="_blank"> 3 </a>)</span>:
<ol>
<li>создаем новую запись на основе существующей записи:
<pre>bcdedit /copy {current} /d "Windows VHD"</pre>
<p>BCDEdit вернет <strong>GUID</strong> вновь созданной записи;</li>
<li>указываем путь к VHD для загрузки (замените GUID на <strong>GUID</strong> из предыдущего этапа):
<pre>bcdedit /set {GUID} device ^
vhd=[Z:]\VHD\PROJECTOR_PC.VHD</pre>
<pre>bcdedit /set {GUID} osdevice ^
vhd=[Z:]\VHD\PROJECTOR_PC.VHD</pre>
</li>
<li>дополнительно, <a href="http://technet.microsoft.com/ru-ru/library/dd799299(v=ws.10).aspx#sectionSection2" target="_blank">для некоторых систем, необходимо включить <em>detecthal</em></a> (не забудете заменить GUID):
<pre>bcdedit /set {GUID} detecthal on</pre>
</li>
</ol>
</li>
<li>перезагрузите систему, и, при загрузке, выберите "Windows VHD";</li>
<li>если загрузка прошла успешно, то при входе в систему, она сообщит о создании временного файла подкачки, а в оснастке "Управление дисками" будет видно, что старый системный раздел поменял букву диска на <strong>D</strong>, а новому (на VHD) присвоена буква диска <strong>C;</strong></li>
<li>если, что-то пошло не так, то стоит начать паниковать и бить в бубен <img src="{{ site.url }}{{ site.baseurl }}{% link /theme/)/confused.gif %}" alt=":-?" class="wp-smiley" /> <span class="grey">(шутка, у вас всегда есть бекап системы - <em>шаг 1</em>)</span>.</li>
</ol>
</li>
<li>Форматируем старый системный раздел (диск <strong>D</strong>). При этом важно, чтобы ОС послала на SSD команду <a href="http://ru.wikipedia.org/wiki/TRIM#.D0.9E.D1.81.D0.BE.D0.B1.D0.B5.D0.BD.D0.BD.D0.BE.D1.81.D1.82.D0.B8_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B_.D1.82.D0.B2.D0.B5.D1.80.D0.B4.D0.BE.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D1.85_.D0.BD.D0.B0.D0.BA.D0.BE.D0.BF.D0.B8.D1.82.D0.B5.D0.BB.D0.B5.D0.B9" target="_blank">TRIM</a>.<br />
<blockquote><p style="font-size: small">Как показывают <a href="http://www.nix.ru/computer_hardware_news/hardware_news_viewer.html?id=160084&amp;page=3" target="_blank">тесты</a>, начиная с Windows 7, при быстром форматировании раздела, ОС сама посылает на SSD команду TRIM, и нет необходимости в "ручном" удалении каждого файла для отправки команды TRIM.</p>
</blockquote>
<p> Если система поместила на этот раздел временный файл подкачки, и <strong>не дает отформатировать</strong> этот раздел, то создайте файл подкачки на любом другом разделе физического (не VHD) диска.</li>
<li>Перенесите файл подкачки на диск <strong>D</strong>.</li>
<li>Перенесите VHD-файл из '<strong>Z:\VHD\PROJECTOR_PC.VHD</strong>' в '<strong>D:\VHD\PROJECTOR_PC.VHD</strong>'. Так как сейчас система загружена с VHD, то, для его переноса, надо:
<ol>
<li>создать на диске <strong>D</strong> директорию VHD;</li>
<li>загрузится с WinPE (подойдет установочный диск Win7 или Win8);</li>
<li>при появлении окна, предлагающего установить Windows, <a href="http://support.microsoft.com/kb/242380" target="_blank">нажать Shift+F10</a> (откроется консоль);</li>
<li>определить буквы дисков (для этого можно использовать команду <strong>dir /A</strong>, последовательно перебирая буквы дисков);</li>
<li>скопировать VHD-файл командой:
<pre>copy D:\VHD\PROJECTOR_PC.VHD E:\VHD\</pre>
<p>(замените буквы дисков на свои);</li>
<li>поменять путь к VHD для загрузки:
<pre>bcdedit /set {GUID} device ^
vhd=[E:]\VHD\PROJECTOR_PC.VHD</pre>
<pre>bcdedit /set {GUID} osdevice ^
vhd=[E:]\VHD\PROJECTOR_PC.VHD</pre>
</li>
<li>пометить BCD запись, как запись по умолчанию:
<pre>bcdedit /default {GUID}</pre>
</li>
<li>перезагрузите систему (закройте консоль, и окно установки Windows).</li>
</ol>
</li>
<li>При успешной загрузке, удалите старый VHD-файл: '<strong>Z:\VHD\PROJECTOR_PC.VHD</strong>'</li>
<li>Удалим запись исходной системы из BCD:
<ol>
<li>определите её {old_GUID} вызвав <strong>bcdedit</strong>;</li>
<li>удалите запись:
<pre>bcdedit /delete {old_GUID} /cleanup</pre>
</li>
</ol>
</li>
<li><strong>Переходим к настройке дифференциальных VHD</strong>:
<ol>
<li>создайте две новые записи в BCD (и запишите их GUID: {OverGUID1} для 'Windows VHD 1', и {OverGUID2} для 'Windows VHD 2'):
<pre>bcdedit /copy {current} /d "Windows VHD 1"
bcdedit /copy {current} /d "Windows VHD 2"</pre>
<pre>bcdedit /set {OverGUID1} device ^
vhd=[D:]\VHD\PROJECTOR_PC_over1.VHD
bcdedit /set {OverGUID2} device ^
vhd=[D:]\VHD\PROJECTOR_PC_over2.VHD</pre>
<pre>bcdedit /set {OverGUID1} osdevice ^
vhd=[D:]\VHD\PROJECTOR_PC_over1.VHD
bcdedit /set {OverGUID2} osdevice ^
vhd=[D:]\VHD\PROJECTOR_PC_over2.VHD</pre>
</li>
<li>настроим автоматическое переключение между dVHD при загрузке системы:
<ol>
<li>откройте редактор групповых политик (Win+R -&gt; gpedit.msc);</li>
<li>зайдите в '<strong>Конфигурация компьютера/Конфигурация Windows/Сценарии (запуск/завершение)</strong>';</li>
<li>откройте пункт 'Автозагрузка';</li>
<li>нажмите на кнопку 'Показать файлы...';</li>
<li>скопируйте файл <a href="http://pastebin.com/uTBphAAa" target="_blank">VHD_set_over<strong>.bat</strong></a> в открывшуюся папку, предварительно заменив GUID в строках 10, 11, 22 на свои (в 22-й строке указывается <strong>GUID</strong> основной записи - "Windows VHD");</li>
<li>добавьте этот <strong>bat</strong>'ник в список автозагрузки в окне 'Свойства: Автозагрузка';</li>
</ol>
</li>
<li>сохраните в корне диска <strong>D bat</strong>'ники, предварительно заменив GUID's: <a href="http://pastebin.com/npBMT3Tu" target="_blank">VHD_first_set_over<strong>.bat</strong></a>, <a href="http://pastebin.com/StrsEpNV" target="_blank">VHD_set_parent<strong>.bat</strong></a> .</li>
</ol>
</li>
</ol>
<p>Теперь, для <strong>включения</strong> "заморозки" достаточно загрузится с WinPE, и в консоли запустить <strong>VHD_first_set_over.bat</strong> .</p>
<p>Для <strong>отключения</strong> "заморозки" запустите <strong>VHD_set_parent.bat</strong> .</p>
<h2>Несколько советов</h2>
<p style="text-align: justify">Помните, что если суммарный размер VHD+dVHD превысит размер раздела диска, на котором они расположены, то <a href="http://gotch.techfaq.ru/archives/526" target="_blank">система упадет</a>, т.к. ей просто некуда будет записывать новые измененные данные. Для предотвращения этого, можно уменьшить размер системного раздела на VHD.</p>
<p>Например, установленная и настроенная система (Windows Embedded 7 + необходимые программы) заняла на системном разделе <strong>2.5 GiB</strong>. Система установлена на SSD объемом <strong>64 GiB</strong>. Предположим, что для нормального функционирования системы (в режиме 24/7) нужно не более <strong>13.5 GiB</strong> свободного места на системном разделе. В данном случае целесообразно уменьшить размер системного раздела до <strong>16 GiB</strong> (2.5 + 13.5). В итоге получаем, что максимальный суммарный объем VHD's будет равен: <strong>2.5 (VHD) + 16 (dVHD) = 18.5 GiB</strong>, что, с учетом pagefile.sys (~2 GiB) и остальных системных файлов, будет меньше <strong>64 GiB</strong> (объем SSD), и система никогда не упадет из-за нехватки места для расширения dVHD на SSD.</p>
<p>Перед заморозкой обновленной системы (на VHD), советую сделать <em><a href="http://bafff.ru/blog/Obsluzhivanie-vhd-faylov-umenshenie-uve/" target="_blank">Compact</a></em>:</p>
<p class="note" style="text-align: justify"><strong>Compact</strong> - сжатие диска, позволяющее убрать неиспользуемое место в динамических дисках. Как вы знаете, если на динамический диск записать данные, он расширяется. После этого, мы можем удалить эти данные, но размер VHD диска не уменьшится, и в хост системе начнёт неэффективно растрачиваться полезный объём HDD дисков.</p>
<h1>Ссылки "в тему"</h1>
<ul>
<li>Уже упомянутая статья-спаситель: <a href="http://www.elbacom.com/blog/2010/09/disk-mode-write-filter-or-resetting-differential-vhds" target="_blank">“Disk Mode Write Filter” or “Resetting Differential VHDs”</a></li>
<li><a href="http://gotch.techfaq.ru/archives/115" target="_blank">Использование дифференциальных дисков VHD в Windows 7</a></li>
<li><a href="http://articles.org.ru/cn/showdetail.php?cid=8495" target="_blank">Как переустановить Windows за 1 минуту</a></li>
<li>Native VHD Boot: A Walkthrough of Common Scenarios: <a href="http://technet.microsoft.com/en-us/library/gg318055(v=ws.10).aspx" target="_blank">Scenario 3: Performing an Advanced Deployment of Native Boot VHDs</a></li>
<li><a href="http://blogs.technet.com/b/virtualization/archive/2009/05/14/native-vhd-support-in-windows-7.aspx" target="_blank">Native VHD Support in Windows 7</a> (сравнение скорости работы: VHD vs "Bare Metal")</li>
<li>Альтернатива: <a href="http://habrahabr.ru/post/176739/" target="_blank">Разработка MiniFilter драйвера</a></li>
<li><a href="http://habrahabr.ru/post/185172/" target="_blank">Windows на RAM-диске</a> (описаны способы загрузки различных ОС с VHD)</li>
<li><a href="http://windowsdisklessaoe.wordpress.com/" target="_blank">Windows Diskless with AoE</a> (how to boot Windows Diskless with ATA over Ethernet Protocol)</li>
</ul>