Создать флешку с расширением 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

В июне 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. Описаны варианты создания, присоединения, инициализации, отсоединения и просмотра информации о виртуальных жестких дисках.

Быстродействие такой системы будет выше, чем при использовании виртуальных машин. Т.к. при использовании виртуализации на копьютере запускается одновременно две системы. А в случае с 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?