Как создать vhd диск в windows 7

Обновлено: 07.07.2024

Цель настоящей статьи — рассказать о моем опыте работы с весьма полезной и не слишком хорошо известной функцией Windows, которая называется VHD Native Boot, то есть способности загружаться с виртуального жесткого диска формата VHD/VHDx.

Начиная с 7-й версии, в Windows появилась возможность создавать виртуальные диски VHD/VHDx (далее просто VHD), а также подсоединять и отсоединять их через графический интерфейс «Управление дисками» и утилиту командной строки diskpart. Кроме этого, Windows научилась с таких дисков загружаться, и все бы ничего, но этот самый Native Boot был доступен только обладателям старших версий, то есть от Pro и выше. Очевидно, что это было лишь маркетинговое ограничение, потому что с появлением Windows 10, а я проверял Anniversary Update (1607) и Creators Update (1703), никаких ограничений больше нет. Это работает и в Windows 10 Home, причем она может выступать как в роли хоста, так и в роли гостя. О том, как это выглядит и как это можно использовать, вы узнаете ниже.

С давних пор меня интересовала идея использования виртуализации применительно к рабочему компьютеру, внутренней виртуализации, если так можно выразиться. Как полезны и удобны виртуальные машины для разработчиков-программистов, специалистов по безопасности, тестированию. А вот до уровня домашнего/рабочего компьютера и его операционной системы это дело все никак не доходило. Ну, очевидно же, что если операционная система — такой сложный и чувствительный компонент, нельзя огульно доверять ее пользователю, он ее так и норовит чем-нибудь заразить или повредить. Да, есть резервное копирование и восстановление из точек восстановления (то есть из теневой копии), и это отличные вещи. Но это весьма чувствительные к ошибкам компоненты, и могут не спасти, кроме того, многие зловреды умеют удалять теневые копии, не оставляя пользователю шанса. Хотелось бы что-то простое и банальное на уровне copy-paste, чтобы «упавшую» или «испортившуюся» систему вернуть в рабочее состояние в течение нескольких минут. Конечно, идеально было бы, чтобы решение было в самой системе, просто заложено в ней. Hyper-V все же не совсем то, хотя может быть его и допилят до требуемого уровня. Ведь хочется, чтобы все возможности машины, все ее железо, вся мощь были доступны, с минимальными жертвами.

Использование виртуального жесткого диска вместо реального кажется вполне допустимой жертвой с учетом того, что вся система умещается в один файл, и достаточно этот файл время от времени копировать куда-то «в сторонку», и всё будет хорошо. Ведь копировать один файл, пусть и большой, явно проще, чем десятки тысяч. Кроме того, такой файл можно легко использовать для развертывания Windows в организации.

Когда есть несколько (немного) типов компьютеров, достаточно установить систему и все требуемое ПО на VHD, а потом просто скопировать этот файл на все аналогичные компьютеры, сведя работы на местах к минимуму. Неплохо было бы иметь некую оболочку, без загрузки Windows, что-то типа «консоли гипервизора», позволяющую попадать в нее и работать с VHD на уровне файлов, копировать, заменять, обновлять и т.д. Тем более, что сама Windows такую оболочку в своем составе имеет, и называется она Windows Recovery Environment, далее WinRE. Давайте посмотрим, как все это выглядит на практике.

1. Установка Windows на VHD с нуля

Эта тема широко освещена в Сети, существуют десятки толковых руководств (см. ссылки в конце статьи), поэтому я остановлюсь лишь вскользь, попутно рассматривая возможные варианты.
В целом все сводится к нажатию волшебной комбинации Shift-F10 в момент, когда компьютер загрузился с установочного диска. Параллельно открывается окошко командной строки, где следует, используя diskpart, отформатировать и разметить реальный жесткий диск (если компьютер/диск новый) и создать VHD требуемого объема. Для простоты я буду рассматривать установку 64-разрядной версии и жесткие диски с MBR.

Итак, жесткий диск разбит, папка VHDs на соответствующем томе создана, теперь в diskpart надо создать виртуальный жесткий диск в этой папке, дав ему понятное имя, и выполнить присоединение, тогда тому виртуального диска будет присвоена очередная буква. Теперь можно вернуться в окно установки Windows и выбрать именно эту букву для установки. Всё, дальше программа установки все сделает сама. В том числе и добавит нужную запись в файл BCD.

Сразу скажу, что использовать bcdedit мне показалось уж слишком жестоким самоистязанием, поэтому я позволил себе использование одного стороннего инструмента для манипуляций, это утилита Bootice соответствующей разрядности. Предположим, он у вас есть на том же установочном диске. Если нет, в дальнейшем я покажу, как его можно «закинуть» в нашу оболочку «гипервизора».

Итак, для демонстрации пусть у меня есть один жесткий диск 25 Gb (я воспользуюсь любимым Virtualbox для показа), в нем один раздел, там папка VHDs, где я создал виртуальный диск, а на него установил Windows 10.

image

Вот так будет выглядеть меню загрузки системы в Bootice (раздел BCD, Easy Mode)

image

Здесь 25 Gb C: это тот «физический» диск, на котором я создал виртуальный размером 20 Gb и куда установил Windows 10. Все прекрасно, но дальше нам нужно создать оболочку для управления. Как известно, WinRE всегда устанавливается вместе с Windows и приходит на помощь тогда, когда обнаруживаются проблемы с загрузкой. Нам же она нужна для другой цели, я хочу попадать туда для работы с VHD-файлами. Добавим пункт WinRE в меню загрузки. Для этого в Bootice воспользуемся Professional Mode, последний объект в списке слева это как раз Windows Recovery, справа видно его расположение на VHD:

image

Этот объект, вернее, ссылку на него, надо добавить в список меню загрузки, выберем вверху слева ветвь Windows Boot Manager, в правой панели выберем пункт Display Order и добавим пункт про WinRE из выпадающего списка:

image

Теперь пункт Windows Recovery Environment будет показываться в загрузочном меню системы, в чем мы можем убедиться, вернувшись в Easy Mode:

image

Осталось перезагрузиться и выбрать второй пункт, начнется загрузка WinRE, а там нас интересует только пункт Поиск и устранение неисправностей, Дополнительные параметры, Командная строка. Все это напоминает и программу установки Windows, и прародителя WinRE, широко известную Windows Preinstallation Environment. Отсюда, собственно, и начинается работа с оболочкой, и не так важно, какую именно вы выберете, поскольку там все приблизительно одно и то же.

Наш основной жесткий диск оказывается в ней диском C:, в его папке VHDs обнаруживается наш master.vhd, и мы можем спокойно его куда-нибудь скопировать. В WinRE волшебной командой мы подключаем сеть:


автоматически выбирается и запускается драйвер сетевого адаптера, получается ip-адрес от сервера DHCP, и мы можем работать с сетью. В Virtualbox я могу подключить сетевую папку такой командой:


и оттуда уже скопировать необходимые инструменты для работы в оболочке. Так как выбрана версия x64, то и программы, запускаемые в WinRE, должны быть x64, никакие суррогаты не запустятся.

Помимо Bootice легко добавляются Far Manager, 7-zip, а с ними уже как-то повеселее. Мне удалось найти даже работающий веб-браузер Palemoon Portable, а уж с ним загрузить из Сети необходимые компоненты совсем легко. Прекрасно установился cygwin64, что открывает путь для ssh/rsync в смешанных средах. Дальше понятно, у нас есть возможность спокойно архивировать и копировать файлы vhd. Если что-то не так в master.vhd, мы загружаемся в WinRE и забираем его резервную копию из сетевого хранилища, затем выходим из WinRE и получаем нашу систему обратно.

Прямо из оболочки WinRE при помощи diskpart или Bootice можно создать новый VHD диск, запустить программу установки Windows, если хочется добавить какую-то иную версию и установить эту новую Windows на новый VHD, нужный пункт в меню загрузки ОС добавится сам.

Осталось только подстраховаться на тот случай, если с master.vhd все настолько плохо, что и в оболочку WinRE не загрузишься, ведь она часть этого диска. Конечно, это не смертельно, всегда можно загрузиться с установочного диска Windows и нажать Shift-F10, но приложив определенные усилия, можно сделать так, чтобы WinRE находилась на нашем хост-диске, и грузиться в нее оттуда. Загрузочное меню будет выглядеть так:

image

2. Установка Windows на VHD на работающем компьютере

Не представляет никакой проблемы добавить на имеющемся компьютере дополнительную операционную систему, создав новый VHD и присоединив его, а затем запустив программу установки и выбрав букву, назначенную для присоединенного диска. Намного более сложной задачей будет перенос текущей конфигурации, уже установленной на физическом диске системы на диск виртуальный. Здесь приходит на ум несколько вариантов. Первый, о котором я вспомнил, это использовать Windows Backup, ведь он как раз создает файл VHD (vhdx) в режиме создания образа системы. Казалось бы, всё, что требуется — это добавить ссылку на такой VHD в меню загрузки и посмотреть, что выйдет. Так я и сделал, при первой загрузке Windows выдала ошибку, а при всех последующих старательно что-то загружалось, очень долго, и даже промелькивало окошко с картинкой экрана блокировки первоначальной системы, но так и исчезало опять. Не знаю почему, но с VHD-диска, полученного из backup'а, Windows загрузить не удается. Пришлось идти иным путем, воспользоваться Disk2vhd из комплекта Sysinternals.

Все довольно просто, выбираешь раздел физического диска, или весь диск, и Disk2vhd делает из него VHD-файл:

image

Но дальше начинаются неудобства. Получившийся VHD, какого бы он ни был реального размера, сообщает о себе, что он размером с весь наш физический диск. То есть если у меня был физический диск 180 Gb, а я выбрал только первый раздел размером 100 Gb, VHD-файл получился около 50 Gb, но сообщает он о себе как о 180-гигабайтном. Проблема здесь в том, что если с такого VHD загрузиться, то Windows потребует 180 Гб места для его работы. То есть как его ни оптимизируй (defrag, sdelete -z), как ни сжимай (compact vdisk, shrink), от первоначальных характеристик, снятых Disk2vhd никак не избавиться. Пришлось пойти на сложное преобразование, создать пустой VHD, загрузить в Virtualbox PartedMagic, подсунув тому преобразованный и пустой VHD и при помощи Gparted (и Clonezilla, если не хочется возится с bootrec) перенести раздел. В результате получился VHD 20 Gb, с которого я сейчас и пишу данную статью.

3. Использование дифференциальных VHD

В особо ненадежных средах, на публичных компьютерах или при проведении каких-то опасных экспериментов, может пригодиться возможность использования дифференциальных VHD-дисков, на которых записывается только разница, изменившаяся информация, а оригинальный VHD остается без изменений. Ясно, что для начала надо уже иметь работающую систему на VHD-диске, а потом добавить вариант с дифференциальным диском. Создать такой диск можно в diskpart или все в том же Bootice. Пусть master.vhd наш основной диск, создадим для него дифференциальный child.vhd, нажав кнопку Create:

image

Для этого воспользуемся Professional Mode в Bootice, сделаем копию имеющегося пункта Windows 10 (правая кнопка мыши, Duplicate this entry) и переименуем новый в Windows 10 Child VHD. Теперь в этом пункте исправим ApplicationDevice и OsDevice, изменив имя vhd-файла:

image

Всё, теперь нужный пункт добавлен в загрузочное меню. Если выбрать Windows 10 Child VHD, Windows запустится и с этого момента будет все изменения записывать в child.vhd. Следует учесть, что под child.vhd в момент загрузки будет зарезервировано столько же места, сколько указано в master.vhd, то есть в нашем случае 20 Gb, пусть его реальный размер в сотни раз меньше. Время от времени имеет смысл выполнять процедуру слияния (merge), то есть отправлять накопленную разницу из child в master, чтобы ничего не потерять. Дело в том, что стоит вам загрузиться не в child, а в master или даже WinRE на основе master.vhd, то связь между master и child будет нарушена, придется чинить child, но Bootice и это умеет:

image

4. Рекомендуемая конфигурация физического диска при работе с загрузочными VHD

Я бы предложил разметить физический диск следующим образом.

Один раздел, достаточно большой, оставить под хранение файлов VHD, тут все зависит от того, сколько разных VHD вам понадобится. Минимально для установки Windows x64 требуется 20 Гб, можно создавать динамические диски, то есть увеличивающие свой реальный размер только по мере их внутреннего наполнения. Но еще раз подчеркну, в момент загрузки динамического VHD Windows резервирует под него место в соответствии с указанным максимальным размером.

Microsoft советует использовать VHD фиксированного размера в производственной среде, а динамические — только для тестов, но я особой потери производительности у динамических VHD не ощутил.

Второй раздел я бы предпочел создать для данных пользователя и набора портативных приложений, если требуется, например, загружаться с разных VHD, а работать с одними и теми же файлами и программами. Такое деление может быть полезным еще и для того, чтобы раздел с VHD вообще скрыть, во избежание неразумных действий конечного пользователя.

А скрыть раздел можно при помощи вот такого нехитрого сценария для diskpart, с учетом выбранного диска и раздела для хранения VHD.


Теперь раздел скрыт, буква ему не присвоена, однако Windows все равно будет грузиться с VHD, хранящегося в этом разделе. Единственный нюанс — выбор места на физическом диске для файла подкачки. Если он выбирается системой, и это как раз тот раздел, который будет скрыт, каждый раз при старте Windows будет спрашивать, где же создавать файл подкачки.

date

18.03.2011

directory

Windows 7

comments

Комментариев пока нет

Одна из отличных вещей виртуализации в Microsoft Windows 7 – является поддержка технологии VHD, или виртуального жесткого диска (Virtual Hard Disk). В том случае, если вы когда-либо использовали Virtual PC, то технология VHD должна быть вам знакома. Windows 7 полностью поддерживает эту технологию, теперь вы можете создавать, монтировать и выполнять другие действия с файлами VHD прямо в системе, без необходимости использовать платформу виртуализации. Например, вы запросто можете выполнить обслуживание или лечение от вирусов диска VHD, также просто, как вы выполняете эти действия с внешними USB накопителями и флешками.

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

Diskpart – создание VHD из командной строки

Откройте командную строку с правами администратора. Для этого мы воспользуемся командой diskpart ( ранее я писал как с помощью diskpart можно расширить раздел или создать загрузочный USB диск ). Наберите следующее команды diskpart, которые создадут динамически диск VHD, максимальный размер которого 25 Гб, и который будет находится в папке c:\vhd. Также мы отформатируем его в файловой системе NTFS (в быстром режиме), и назначим букву диска V:.

DISKPART
CREATE VDISK FILE=C:\VHD\<filename>.vhd MAXIMUM=25000
SELECT VDISK FILE=C:\VHD\<filename>.vhd
ATTACH VDISK
CREATE PARTITION PRIMARY
FORMAT FS=NTFS QUICK
ASSIGN LETTER=V
EXIT

Обратите внимание, что функционал команды diskpart в Windows 7 был существенно расширен по сравнению с предыдущих версий Windows (например, раньше команды Create vdisk просто не существовало).

Disk Management – создание vhd из графического интерфейса.

В консоли Disk Management (Управление дисками), перейдите в меню Action, в котором будут доступны опции создания и монтирования VHD (Create VHD и Attach VHD).

Как создать VHD диск в Windows 7

При создании виртуального жесткого диска VHD, вы должны указать имя файла, его местоположение, размера и формат. С точки зрения производительности рекомендуется использовать фиксированный размер (Fixed size), однако можно использовать и динамические диски, которые растут по мере заполнения (Dynamic).

Создаем новый VHD диск в Windows 7

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

Создание VHD-диска и загрузка с VHD

Бывают такие ситуации, когда необходимо на одном компьютере запускать различные операционные системы, а использование виртуальных машин невозможно или не требуется.

В этой статье я расскажу, как создать виртуальный жесткий диск (VHD), установить на него операционную систему и научить компьютер загружаться с этого VHD.

Быстродействие такой системы будет выше, чем при использовании виртуальных машин. Т.к. при использовании виртуализации на копьютере запускается одновременно две системы. А в случае с VHD - только одна и все ресурсы компьютера отданы именно ей.

В качестве основной системы можно использовать Windows 7 и выше. На виртуальный диск указанным способом можно устанавливать операционную систему от Windows Vista и выше.

Внимание!

Загрузку с VHD дисков в Windows 7 поддерживают только редакции Максимальная (Ultimate) и Корпоративная (Enterprise).

В Windows 10 загрузку с VHD поддерживает редакция Профессиональная (Professional) и выше.

Создание вирутального жесткого диска (VHD)

Создать VHD в Windows 7 можно двумя способами - с помощью утилиты Diskpart (используя CMD), а можно через визуальный интерфейс Менеджера дисков. Второй способ проще и нагляднее, поэтому используем его.

Открываем Менеджер дисков. Это можно сделать по следующему пути: Пуск -> Панель управления -> Администрирование -> Управление компьютером -> Управление дисками.

Управление дисками

Управление дисками

Далее щелкаем правой кнопкой мыши по разделу "Управление дисками" и в выпавшем меню выбираем "Создать виртуальный жесткий диск".

Указываем расположение файла VHD.

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

Формат виртуального жесткого диска я предпочитаю выбирать "Динамическое расширение", т.к. такой режим позволяет экономить место.

Настройки VHD

Нажимаем кнопку OK, создается файл VHD.

После этого в консоли "Управление дисками" появляется созданный виртуальный диск. Но он не инициализирован.

Инициализируется он через контекстное меню:

Диск не инициализирован

Контекстное меню диска

Инициализация диска

Далее необходимо создать том и отформатировать диск. Тоже через контекстное меню:

Создание простого тома

Указываем размер раздела

Назначаем диску букву

Указываем метку тома

Диск создан и отформатирован

В итоге мы создали виртуальный жесткий диск, он находится на диске D: (D:\MyDisk.vhd) и виден в операционной системе. Можно разворачивать на нем другую "операционку".

Развертывание операционной системы Windows на VHD

Также понадобится файл install.wim из дистрибутива Windows. В дистрибутиве он находится в папке Sources. Предположим, что у нас в привод вставлен установочный DVD и путь к install.wim выглядит так - E:\Sources\install.wim.

Разворачивание ОС из файла install.wim на диск выполняется следующим образом.

Так как в одном WIM-файле может находится несколько образов ОС, то предварительно определим индекс нужного нам образа:

Допустим, что нужная Винда находится под индексом 1.

Разворачиваем из индекса 1 операционку на наш VHD:

где Z: - буква, присвоенная нашему VHD.

После окончания разворачивания операционки, можно зайти на VHD-диск и убедится, что структура его каталогов соответсвует системному диску Windows.

Если всё прошло успешно, то переходим к добавлению в загрузчик ОС информации о том, что с нашего VHD тоже можно грузиться.

Изменение информации в загрузчике Windows

Создаем копию текущей операционной системы в загрузчике и даем ей описание "Windows 7 VHD":

При выполнении этой команды также будет отображен GUID новой записи. Запишите или скопируйте его - он нам пригодится.

Если вы забыли записать GUID, то узнать его вы можете запустив команду bcdedit без параметров.

Далее установите параметры device и osdevice для загрузочной записи VHD. В командной строке введите:

bcdedit /set osdevice vhd=[D:]\MyDisk.vhd

где GUID - идентификатор нашей новой записи в загрузчике.

Не забудьте изменить букву диска и путь к файлу VHD на свои.

Для некоторых систем на основе x86 требуется изменить параметр конфигурации загрузки для ядра, чтобы найти сведения об определенном оборудовании и успешно выполнить встроенную загрузку с VHD:

где GUID - идентификатор нашей новой записи в загрузчике.

Завершение

Теперь можно перегружать компьютер.

При старте компьютера на черном фоне будет в течение 5 секунд выдан запрос о выборе операционной системы. Выбирайте свою вновь созданную систему.

Начнется загрузка и установка ОС. После чего не забудьте установить драйверы на новой ОС и можете пользоваться новой системой, которая располагается на виртуальном диске VHD.

Отключение загрузки с VHD и возврат к первоначальному состоянию

Чтобы вернуть компьютер к первоначальному состоянию, необходимо выполнить следующие шаги (в любой последовательности):

Для этого выполняем команду bcdedit без параметров. Она выведет нам все записи. Находим в списке нашу добавленную запись и ее GUID.

Как создать виртуальный жесткий диск в Windows

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

Виртуальный жесткий диск представляет собой файл с расширением VHD или VHDX, который при монтировании в системе (для этого не требуются дополнительные программы) виден в проводнике как обычный дополнительный диск. В чем-то это схоже со смонтированными файлами ISO, но с возможностью записи и иных вариантов использования: например, вы можете установить шифрование BitLocker на виртуальный диск, получив таким образом зашифрованный файловый контейнер. Еще одна возможность — установка Windows на виртуальный жесткий диск и загрузка компьютера с данного диска. Учитывая, что виртуальный диск доступен и в виде отдельного файла, вы с легкостью можете перенести его на другой компьютер и использовать там.

Как создать виртуальный жесткий диск

Создание виртуального жесткого диска ничем не отличается в последних версиях ОС, разве что в Windows 10 и 8.1 имеется возможность смонтировать файл VHD и VHDX в системе просто дважды кликнув по нему: он тут же будет подключен как HDD и ему будет назначена буква.

Для создания виртуального жесткого диска, выполните следующие простые шаги

  1. Нажмите клавиши Win+R, введите diskmgmt.msc и нажмите Enter. В Windows 10 и 8.1 можно также нажать правой кнопкой мыши по кнопке Пуск и выбрать пункт «Управление дисками».
  2. В утилите управления дисками в меню выберите «Действие» — «Создать виртуальный жесткий диск» (кстати, тут же имеется и пункт «Присоединить виртуальный жесткий диск», он пригодится в Windows 7, если требуется перенести VHD с одного компьютера на другой и подключить его).
  3. Запустится мастер создания виртуальных жестких дисков, в котором необходимо выбрать расположение файла диска, тип диска — VHD или VHDX, размер (не менее 3 Мб), а также один из доступных форматов: динамически расширяемый или с фиксированным размером.
  4. После того, как вы задали настройки и нажали «Ок», в управлении дисками появится новый, не инициализированный диск, также при необходимости будет установлен драйвер адаптера шины виртуального жесткого диска Microsoft.
  5. Следующим шагом, кликните правой кнопкой мыши по новому диску (по его заголовку слева) и выберите пункт «Инициализировать диск».
  6. При инициализации нового виртуального жесткого диска потребуется указать стиль разделов — MBR или GPT (GUID), для большинства применений и небольших размеров дисков подойдет MBR.
  7. И последнее, что потребуется — создать раздел или разделы и подключить виртуальный жесткий диск в Windows. Для этого кликните по нему правой кнопкой мыши и выберите пункт «Создать простой том».
  8. Нужно будет указать размер тома (если оставить рекомендуемый размер, то на виртуальном диске будет один единственный раздел, занимающий все его пространство), задать параметры форматирования (FAT32 или NTFS) и указать букву диска.

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

Виртуальный жесткий диск подключен в проводнике

В дальнейшем, если вам потребуется отключить виртуальный диск, просто нажмите по нему правой кнопкой мыши и выберите пункт «Извлечь».

Читайте также: