Подключение vhd дисков в контекстном меню win7. Создание VHD-диска и загрузка с VHD. Создание виртуального жесткого диска

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

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

Внимание!

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

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

Итак начнем.

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

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

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

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

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

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

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

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

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

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

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

Для этого потребуется утилита imagex.exe из состава Windows AIK или Windows ADK . Я уже предусмотрительно взял эту утилиту из WADK и приложил к статье. Скачать imagex для x64 и x86 Вы можете внизу страницы.

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

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

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

imagex /info E:\sources\install.wim

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

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

imagex /apply /check E:\sources\install.wim 1 Z:\

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

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

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

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

Запускаем командную строку с правами администратора.

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

bcdedit /copy {current} /d "Windows 7 VHD"

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

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

bcdedit /set {GUID} device vhd=\MyDisk.vhd

bcdedit /set {GUID} osdevice vhd=\MyDisk.vhd

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

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

bcdedit /set {GUID} detecthal on

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

Завершение

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

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

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

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

  • Удалить запись из загрузчика.

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

    Для ее удаления выполняем команду:

    bcdedit /delete {GUID}

  • Удалить виртуальный диск из консоли "".
  • Удалить файл VHD.

P.S. Опишите в комментариях, для каких целей Вы используете технологию загрузки с виртуального диска VHD?

В Windows 7 и Windows Server 2008 R2 появилась возможность и подключать файлы виртуальных дисков (VHD /VHDX ) прямо из консоли управления дисками (Disk Management). Такие виртуальные диски выглядят в системе как отдельные физические диски и могут использоваться для хранения произвольных данных. Существенный недостаток таких дисков - при каждой перезагрузке Windows приходится каждый раз вручную монтировать все VHD/VHDX файлы. Кроме того, право на монтирование файлов виртуальных дисков vhd есть только у администраторов компьютера, простые пользователи не могут самостоятельно подключить VHDx файл (каждый раз приходится вмешиваться администратору).

В этой статье мы покажем, как автоматически монтировать vhd/vhdx файл при загрузке системы, так, чтобы виртуальные диски были доступны и простым пользователям (не обладающих правами администратора)

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

Итак, создадим текстовый файл (C:\Scripts\attach_vhd.txt) со следующим кодом:

select vdisk file="C:\vhd2\w10vhd.vhdx"
attach vdisk
select part 1
assign letter=K
exit

где:
C :\ vhd 2\ w 10 vhd . vhdx – полный путь к VHD или образу диска
K –буква диска, которую нужно назначить VHD образу

Данный сценарий подключает указанный vhd файл, выбирает на нем первый раздел и назначает ему данную букву диска. Если на диске несколько разделов, измените код соответствующим образом, указав номер раздела, который нужно подключать.

Примечание . В целях безопасности желательно изменить NTFS разрешения на файл «C:\Scripts\attach_vhdx.txt», так чтобы простые пользователи не могли его изменить.

Запустите Windows Task Scheduler (Taskschd.msc ) и создайте новое задание планировщика (Actions -> Create Task ). Настройте его следующим образом:


Чтобы задание выполнялось от имени системы, еще раз откройте его свойства и на вкладке General нажмите кнопку Change User or Group . В окне выбора пользователя укажите system и сохраните изменения.

mount-vhd -path C:\vhd2\w10vhd.vhdx –PassThru | Get-Disk | Get-Partition | Set-Partition -NewDriveLetter G

Б удучи установленной на виртуальном жёстком VHD-диске, вторая операционная система Windows никоим образом не уступает той, которая размещается на другом разделе диска. Наоборот, у первой по сравнению со второй есть два значимых преимущества. Во-первых , для установки Windows на VHD-диск нет надобности перераспределять дисковое пространство, если изначально нет лишнего пустого раздела диска под вторую операционную систему.

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

Любую операционную систему, установленную на VHD-диске, можно открыть внутри программ и и работать с ними точно так, как и с и любыми системами, созданными средствами этих программ. Более того, обе программы изначально предусматривают возможность создания операционных систем с использованием VHD-диска. VirtualBox открыто позволяет выбрать VHD-формат при создании жёсткого диска виртуальной машины. А вот в программе VMware Workstation хоть такой момент и предусматривается, но юзабельного меню выбора, как в случае с VirtualBox, нет. Расширение «. vhd» для создаваемого жёсткого диска нужно прописывать вручную, заменяя им предустановленное «.vmdk» «родной» формат виртуального жёсткого диска VMware Workstation .

Единственный момент, в чём будет уступать VHD-диск «родным» форматам программ VMware Workstation и VirtualBox – соответственно, VMDK и VDI , это использование дискового пространства в полном объёме. Тогда как виртуальные жёсткие диски программ — VMDK и VDI – сжимают данные виртуальных машин для экономии места на реальном компьютере. В частности, виртуальные машины VMware Workstation на физическом жёстком диске занимают почти вдвое меньше места, чем имеется в распоряжении гостевых операционных систем.

Итак, имеем операционную систему, установленную на виртуальном VHD-диске.

Как её открыть внутри основной операционной системы с использованием программ-гипервизоров VMware Workstation и VirtualBox?

Открытие VHD-диска в

В главном окне VMware Workstation запускаем процесс открытия новой виртуальной машины. Это можно сделать как с помощью визуальной кнопки на домашней вкладке программы, так и в меню .

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

Жмём в окне настройки совместимости версий программы.

Операционную систему мы не устанавливаем, следовательно, и не может быть никакого источника загрузки. Выбираем третий пункт установка системы позже . Жмём .

В нашем случае имеется VHD-диск с установленной Windows 8.1, её и выбираем в списках операционных систем и их версий. Жмём .

Называем виртуальную машину и указываем её месторасположение на компьютере. В указанном месте будут храниться рабочие файлы . Сам VHD-диск, естественно, будет находиться там, где и находился. Жмём .

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

А вот щедрого жеста в плане оперативной памяти не получится. Выделяем лишь необходимый минимум – 1 Гб . Жмём .

Предустановленный тип сети NAT в нашем случае подходит. Жмём .

Не меняем и тип контроллера ввода/вывода . Жмём .

Это же касается и типа диска – оставляем предустановленный SCSI . Жмём .

Наконец-то мы добрались до точки смены предустановленных параметров. В окне выбора виртуального диска нам нужен второй вариант – . Жмём .

В следующем окне жмём кнопку обзора и указываем путь к VHD-файлу . По умолчанию VMware Workstation не хочет видеть этот формат файлов , представляя на обозрение только файлы собственного производства. И чтобы увидеть VHD-файл, в окне проводника нужно установить параметр отображения всех файлов .

Прописав путь размещения VHD-диска, жмём .

Настройка виртуальной машины завершена.

Вернёмся в главное окно VMware Workstation и увидим новую виртуальную машину в перечне существующих. Запускаем её.

Процесс запуска Windows начнётся с адаптации системы к условиям работы гипервизора. Будут обновлены драйвера, системные настройки, Metro-приложения Windows 8.1. В некоторых случаях запуск виртуальной машины может сопровождаться окном среды восстановления Windows. В этом случае необходимо просто выбрать продолжение использования системы .

Вскоре система загрузится.

Открытие VHD-диска в VirtualBox

В программе VirtualBox процесс открытия VHD-файла попроще. В главном окне программы жмём кнопку . Затем в первом окне запустившегося мастера создания новой виртуальной машины задаём ей имя , выбираем операционную систему и её версию . Жмём «Next» .

Указываем размер оперативной памяти . Жмём «Next» .

В окне выбора виртуального жёсткого диска, как и в предыдущем случае, выбираем использование существующего диска . С помощью кнопки обзора указываем путь к VHD-файлу . Жмём .

Возвращаемся в главное окно VirtualBox и запускаем только что созданную виртуальную машину.

VirtualBox также осуществит адаптацию гостевой операционной системы под свою специфику работы – будут установлены драйвера, применены системные настройки и т.п.

Через минуту-две в окне программы будем наблюдать ту самую Windows, установленную на VHD-диске.

Допустим, вы воспользовались моими советами по установке Windows 7 на виртуальный раздел , которых хранится в VHD-файле и теперь хотите его поменять… Или вам просто захотелось поманипулировать – изменить раздел или создать копию, сделать дочерний образ – VHD-файлами для виртуальных ОС, которые используются для запуска приложений в режиме Windows XP Mode . А иногда, чисто из нечеловеческого любопытства, хочется просто посмотреть, что же там внутри-то VHD делается…

Не беда – в Windows 7 или Windows Server 2008 R2 присутствуют все необходимые инструменты, чтобы воплотить все желания в вирутальную реальность 🙂 и самый простой из них – стандартный Disk Management . При помощи этой графической консоли, модифицированной в Windows 7, можно создавать “виртуальные” диски, отображаемые в VHD-файлы, и монтировать уже существующие файлы, как диски так же, как и любые другие “физические” диски, создавать и расширять разделы на них.

Безусловно, такой подход наиболее понятен и удобен, если только не возникает несколько специфических задач, а именно – вы установили саму Windows 7 в VHD-файл и теперь нужно провести какие-то работы с данным файлом, или вам просто захотелось поменять установленный (а не разделов, находящихся в нем), или необходимо автоматизировать какие-то процессы путем написания файла сценариев (скрипта). В таких случаях либо нет возможности вообще воспользоваться утилитой, либо она не позволяет этого сделать. И тогда на помощь приходит такая полезная и многократно описанная мной ранее (в том же посте про установку Windows 7 в VHD-файл или создание загрузочной USB-флешки для установки) утилита DISKPART .

Начнем с азов – создание VHD-файла и его монтирование как нового диска в Windows 7/Windows Server 2008 R2. Тут все просто:

  • Запускаем (в Windows 7!!!) из командной строки или из пункта Run команду DISKPART и попадаем в соответствующее приглашение программы: DISKPART>

выполняем в DISKPART последовательно команды:

  • CREATE VDISK FILE=”путь\имя_файла.vhd” MAXIMUM=требуемый_размер_в_МБ TYPE=FIXED – непосредственно создает VHD-файл;
  • SELECT VDISK FILE=”путь\имя_файла.vhd” – выбирает указанный VHD-файл для дальнейших операций в DISKPART;
  • ATTACH VDISK – монтирует выбранный на предыдущем шаге VHD-файл как диск ОС

Результат операции – создается файл и он доступен ОС для работы как новый физический диск.

Как раз эта особенность работы с VHD-файлами используется для установки Windows 7 в VHD, чтобы не были затронуты другие разделы и установленные на них ОС в приведенном мной ранее сценарии. И запускается DISKPART непосредственно с диска установки Windows 7/Windows Server 2008 R2 в ходе работы мастера установки Windows – по комбинации клавиш Shift+F10 (смотри все тот же первый пост про установку).

Управление разделами внутри вновь созданного “виртуального” диска VHD аналогично управлению разделами на любом другом диске. Можно это сделать через графическую утилиту Disk Management, а можно использовать команды того же DISKPART в следующей последовательности:

  • для монтирования VHD-файла, если он еще не смонтирован, выполняем команды SELECT VDISK и ATTACH VDISK, как это описано выше;
  • LIST DISK – получаем список доступных дисков, среди которых будет и VHD-файл в виде “нового” диска
  • SELECT DISK №требуемого_диска_из_списка – выбираем диск для дальнейших операций
  • CREATE PARTITION PRIMARY – создаем раздел (или том, по команде CREATE VOLUME SIMPLE ), по всем ключам команды читаем помощь – HELP CREATE PARTITION
  • LIST PARTITION – список разделов на диске
  • SELECT PARTITION №требуемого_раздела – выбираем раздел для дальнейших операций
  • FORMAT – форматируем раздел (если требуется), читаем HELP FORMAT – для “тонкого” форматирования с нужным типом и параметрами файловой системы

И, в заключение, как расширять уже существующие VHD-файлы c использованием DISKPART. Хочу заметить, что этот метод можно с успехом использовать как для увеличения размеров VHD-файлов виртуальных машин, так и для увеличения размеров разделов непосредственно ОС Windows 7, если она установлена в VHD. В последнем случае требуется загрузка с установочного диска или USB-флеш Windows 7 , и в процессе работы мастера установки просто запускаем командную строку по Shift-F10 и из нее DISKPART.

Считаем, что VHD-файл у нас уже выбран и смонтирован, как диск (см.выше). Тогда:

  • размонтируем диск командой DETACH VDISK , но выбор не отменяем
  • EXPAND VDISK MAXIMUM=новый_размер_vhd – устанавливаем новый размер текущего VHD-файла
  • ATTACH VDISK – снова монтируем текущий VHD, как диск

Итак, мы получили файл увеличенного размера (в нашем примере с 10ГБ до 20ГБ), но это только файл, внутри диска разделы сохранили свои первоначальные размеры.

Поэтому мы можем воспользоваться либо тем же Disk Management, если позволяют обстоятельства, либо командами DISKPART:

  • убеждаемся, что диск смонтирован и доступен
  • стандартная процедура выбора нужного диска для работы (описана выше) – LIST DISK , SELECT DISK №#
  • аналогично, выбор раздела, который нужно расширить на диске (описана выше) – LIST PARTITION (VOLUME ), SELECT PARTITION (VOLUME ) №#
  • EXTEND – расширяет текущий раздел до максимально свободного на текущем диске размера. см. помощь – HELP EXTEND – где описаны разнообразные ключи команды.

Как видно из примера – довольно просто управлять VHD-файлами в виде дисков как непосредственно из WIndows 7, так и использовать загрузочный диск Windows 7 для изменения параметров VHD-диска самой Windows 7, если была выполнена установка на виртуальный раздел в VHD-файл.

Надеюсь, этот пост поможет не только моим коллегам , которые активно используют фазные вариации на тему VHD в процессе разработки и демонстраций, но и всем остальным 🙂

В июне 2005 года компания Microsoft разработала новую спецификацию формата образов виртуальных жестких дисков (Virtual Hard Disk - VHD). VHD - это формат файла, у которого полная структура и содержимое аналогичны с жестким диском. Он используется для хранения виртуальных операционных систем, программ и других файлов в одном файле-образе, который можно открыть разными программами виртуализации или виртуальными машинами. Формат Microsoft VHD в настоящее время используется в Microsoft Virtual PC 2007, Microsoft Virtual Server 2005 R2 и Hyper-V. Виртуальные жесткие диски позволяют нескольким операционным системам одновременно находиться на одном компьютере. Файл VHD определяет формат жесткого диска виртуальной машины, который расположен в едином файле на хостовой операционной системе. Помимо этого, операционные системы Windows 7 и Windows Server 2008 R2 могут поддерживать создание, подключение и загрузку с VHD-дисков, расположенных на хостовой системе. В этой статье я расскажу о поддерживаемых типах виртуальных жестких дисков, а также о базовых операциях, которые можно с ними выполнять.

Поддерживаемые форматы виртуальных жестких дисков

Жесткие диски виртуальных машин хранятся на хостовой операционной системе в виде отдельных файлов. Существует три типа виртуальных дисков:

Базовые действия, выполняемые с VHD-дисками

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

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

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

Виртуальный жесткий диск также можно создать средствами утилиты командной строки DiskPart . Для этого в командной строке с правами администратора нужно воспользоваться командой Create Vdisk

Create Vdisk File=<имя_файла> Maximum= Type=Fixed|Expandable

  • При помощи параметра File можно указать полный путь и имя виртуального диска.
  • Параметр Maximum отвечает за максимальное дисковое пространство, предоставляемое виртуальным диском, заданное в мегабайтах.
  • При помощи параметра Type можно указывать формат виртуального диска. Существует два значения для данного параметра:
    • FIXED создает файл виртуального диска фиксированного размера;
    • EXPANDABLE создает динамически расширяемый образ виртуального диска.
  • При помощи параметра Parent можно указать путь к существующему родительскому файлу виртуального диска для создания разностного диска. При использовании Parent нельзя использовать параметр Maximum, поскольку размер разностного диска определяется родительским файлом. Помимо этого, также нельзя задавать параметр Type, поскольку создавать можно только расширяемые (параметр Expandable) разностные диски.
  • Параметр Source предназначен для того чтобы указывать путь к существующему файлу виртуального диска для предварительного заполнения нового файла виртуального диска. При использовании параметра Source данные из исходного файла виртуального диска копируются блок за блоком в создаваемый файл виртуального диска. Однако между ними отсутствуют отношения родитель-потомок.

С помощью параметра SD можно указать дескриптор безопасности в формате языка SDDL. По умолчанию дескриптор безопасности берется из родительского каталога. В простейшем случае строка может содержать дескриптор безопасности, обеспечивающий защиту доступа, который называется списком управления доступом на уровне пользователей (DACL).

Присоединение виртуального жесткого диска

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


Также виртуальный жесткий диск можно присоединить средствами утилиты командной строки DiskPart . Для этого в командной строке с правами администратора нужно выбрать нужный виртуальный диск командой Select Vdisk Attach Vdisk . Синтаксис следующий:

Attach Vdisk

Эту команду можно использовать без параметров. Доступные параметры:


Инициализация виртуального жесткого диска

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


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

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


Отсоединение виртуального диска

Для того чтобы отсоединить виртуальный диск, выполните следующие действия:


Отсоединить виртуальный жесткий диск также можно при помощи утилиты командной строки DiskPart . Для этого в командной строке с правами администратора нужно выбрать предполагаемый виртуальный диск командой Select Vdisk , а затем воспользоваться командой Detach Vdisk . Синтаксис команды следующий:

Просмотр информации о виртуальном диске

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

  1. Выберите нужный виртуальный диск при помощи команды Select Vdisk ;
  2. Присоедините диск, если он еще не присоединен к компьютеру;
  3. Воспользуйтесь командой Detail Vdisk

Для данной команды не существует дополнительных параметров.

Сжатие виртуальных дисков

При помощи утилиты командной строки DiskPart можно сжимать виртуальные диски. Для этого выберите нужный виртуальный диск, подключите диск в режиме «только для чтения» и воспользуетесь командой Compact Vdisk . Эта команда сжимает файл виртуального диска для уменьшения физического размера файла. Сжатие возможно только для отсоединенного расширяемого виртуального диска или для расширяемого виртуального диска, подключенного в режиме «только для чтения».

Заключение

В этой статье вкратце рассказывается о технологии Virtual Hard Disk (VHD) и о возможных форматах виртуальных жестких дисков. Также подробно описаны базовые действия, которые можно проводить над виртуальными жесткими дисками при помощи графического интерфейса, а также средствами утилиты командной строки DiskPart. Описаны варианты создания, присоединения, инициализации, отсоединения и просмотра информации о виртуальных жестких дисках.