Введение
В июне 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-файла в момент создания диска небольшой, но увеличивается по мере добавления данных на диск. Распределение данных осуществляется в блоках. При удалении данных с виртуального жесткого диска размер VHD-файла автоматически не уменьшается. Например, если был создан динамически расширяемый жесткий диск, объемом 5 Гб, то изначально этот файл на хостовой системе будет занимать порядка двух мегабайт. По мере накопления информации в этом образе, его размер будет увеличиваться, пока не достигнет пяти гигабайт.
Помимо этого, динамические диски хранят метаданные, которые используются при получении доступа к данным пользователей, хранящихся на жестком диске. Максимальный размер динамического жесткого диска 2040 Гб. Фактический размер ограничивается основным протоколом аппаратного диска. Например, ATA жесткие диски имеют 127 ГБ.
- Дисковый образ фиксированного размера, который обеспечивает необходимую емкость, используя VHD-файл, размер которого задается при создании виртуального жесткого диска. Размер VHD-файла остается постоянным независимо от объема хранимых данных. Например, если был создан диск фиксированного размера, объемом 5 Гб, то система создаст файл, который будет занимать ориентировочно 5 Гб.
Пространство, отведенное для передачи данных, использует структуру Hard Disk Footer Format. В этом случае, размер файла на хостовой операционной системе будет включать в себя размер жесткого диска гостевой операционной системы и размер нижнего колонтитула.
- Разностный дисковый образ, который позволяет вносить изменения в родительский виртуальный жесткий диск, не изменяя данный диск. Размер VHD-файла для разностного диска увеличивается по мере сохранения новых изменений на диске. Другими словами, образ жесткого диска отображает текущее состояние виртуального жесткого диска как набор измененных блоков по сравнению с родительским изображением. Этот тип напрямую зависит от другого образа жесткого диска. Родительский образ жесткого диска может быть любым из упомянутых типов образов жесткого диска, в том числе и другой разностный образа жесткого диска.
Базовые действия, выполняемые с VHD-дисками
К базовым операциям, которые можно проводить с виртуальными жесткими дисками, можно отнести такие действия, как: создание, присоединение, отсоединение, удаление виртуальных жестких дисков. Возможно также сжатие дисков, конвертирование физических дисков в виртуальные, подключение дисков как папки и другое. В этом руководстве рассматриваются не все возможные операции, которые проводятся над виртуальными жесткими дисками.
Очень полезная статья об установке операционной системы Windows 7 на виртуальный диск была написана Игорем Шаститко: Kaк установить Windows 7 и ничего не "сломать", а также можете посмотреть видео доклад Михаила Гоча "Новые возможности Windows 7. Загрузка системы с диска VHD".
Создание виртуальных жестких дисков
Для того чтобы создать виртуальный жесткий диск, выполните следующие действия:
- Откройте оснастку управления компьютером. Это можно сделать следующими способами:
- Нажмите правой кнопкой мыши на значке "Компьютер" и из контекстного меню выберите команду "Управление";
- Нажмите на кнопку "Пуск" для открытия меню, откройте "Панель управления", из списка компонентов панели управления выберите "Администрирование" и из списка административных компонентов выберите "Управление компьютером";
- Откройте "Консоль управления MMC". Для этого нажмите на кнопку "Пуск", в поле поиска введите mmc , а затем нажмите на кнопку "Enter". Откроется пустая консоль MMC. В меню "Консоль" выберите команду "Добавить или удалить оснастку" или воспользуйтесь комбинацией клавиш Ctrl+M. В диалоге "Добавление и удаление оснасток" выберите оснастку "Управление компьютером" и нажмите на кнопку "Добавить". Затем нажмите на кнопку "Готово", а после этого - на кнопку "ОК";
- Создайте на рабочем столе значок, где в поле "Укажите расположение объекта" введите %windir%\system32\compmgmt.msc /s
- Раскройте узел "Запоминающие устройства", нажмите правой кнопкой мыши на "Управление дисками" и из контекстного меню выберите команду "Создать виртуальный жесткий диск";
- Нажмите на кнопку "Обзор" для того чтобы указать папку, в которой будет располагаться файл виртуального жесткого диска на вашем компьютере;
- В появившемся диалоге "Просмотр файлов виртуального диска" выберите папку, в которую должен быть сохранен файл. Если требуется сохранить файл в новой папке, то ее можно создать непосредственно из этого диалога, используя контекстное меню или кнопку "Новая папка" на панели действий. В поле "Тип файла", укажите тип "Файлы виртуального диска". В поле "Имя файла" введите имя и нажмите на кнопку "Сохранить";
- В диалоге "Создать и присоединить виртуальный жесткий диск" укажите размер виртуального диска и выберите его формат. Возле текстового поля, в которое нужно ввести размер диска, присутствует раскрывающийся список, где можно выбрать размер жесткого диска. Доступные значения - мегабайты, гигабайты и терабайты. При выборе формата жесткого диска доступны варианты: динамическое расширение, а также фиксированный размер, о принцип которых описан выше.
- Нажмите на кнопку "ОК".
Виртуальный жесткий диск также можно создать средствами утилиты командной строки DiskPart. Для этого в командной строке с правами администратора нужно воспользоваться командой Create Vdisk. Синтаксис команды следующий:
Create Vdisk File=<имя_файла> Maximum=<n> 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
Эту команду можно использовать без параметров. Доступные параметры:
- Параметр ReadOnly присоединяет виртуальный диск в режиме только для чтения. Любая операция записи приведет к возникновению ошибки ввода-вывода устройства.
- При помощи параметра UseFileSD можно указать, что для виртуального диска следует использовать дескриптор безопасности самого виртуального файла. Если параметр не указан, то у диска не будет явно заданного дескриптора безопасности, если не был также задан параметр SD=(строка SDDL).
- Параметр SD задает дескриптор безопасности в формате SDDL. По умолчанию дескриптор безопасности обеспечивает доступ, аналогичный любому физическому диску. Дополнительные сведения о формате строки SDDL см. в справке по команде Create Vdisk.
Инициализация виртуального жесткого диска
После того как виртуальный жесткий будет создан или присоединен, для дальнейшей работы его нужно инициализировать. При помощи графического интерфейса это можно сделать следующим образом:
- Откройте "Управление компьютеров". В нем, раскройте узел "Запоминающие устройства" и нажмите левой кнопкой мыши на "Управление дисками";
- Найдите диск, который нужно инициализировать, нажмите на нем правой кнопкой мыши и из контекстного меню выберите команду "Инициализировать диск";
- В диалоге "Инициализация дисков" выберите нужный стиль разделов для выбранного виртуального диска. Доступные стили:
- Основная загрузочная запись (Master Boot Record - MBR) - это первый физический сектор на жёстком диске или другом устройстве хранения информации, разбиваемом на логические диски (разделы). MBR содержит таблицу разделов (partition table) и небольшой фрагмент исполняемого кода;
- Таблица с GUID разделов (GUID Partition Table - GPT) - это стандартный формат размещения таблиц разделов на физическом жестком диске. Он является частью Extensible Firmware Interface (EFI) (Расширяемый Микропрограммный Интерфейс) - стандарта, предложенного Intel на смену отжившего BIOS, одного из последних реликтов первозданной IBM PC
- Нажмите на кнопку "ОК".
Создание простого тома в VHD диске
Для того чтобы создать простой том в VHD диске, выполните следующие действия:
- Нажмите на правую кнопку на нераспределенном VHD диске и из контекстного меню выберите команду "Создать простой том";
- В первом диалоге мастера создания простого тома нажмите на кнопку "Далее";
- В диалоге указания размера тома, укажите размер будущего тома в мегабайтах и нажмите на кнопку "Далее";
- В диалоге "Назначение буквы диска или пути" укажите букву для будущего диска и нажмите на кнопку "Далее";
- В диалоге "Форматирование раздела" укажите нужную файловую систему, размер кластера, название диска и установите флажок возле опции "Быстрое форматирование", если хотите, чтобы диск был сразу отформатирован. После чего нажмите на кнопку "Далее";
- Ознакомьтесь со всеми действиями, которые будут выполнены в диалоге "Завершение мастера создания простого тома" и нажмите на кнопку "Готово".
- Виртуальный диск появится в таблице дисков. В оснастке управления дисками, значок виртуального диска визуально отличается от значков физических дисков, что можно заметить на следующем скриншоте. В проводнике Windows виртуальные диски выглядят так же, как и физические
Увеличить рисунок
Отсоединение виртуального диска
Для того чтобы отсоединить виртуальный диск, выполните следующие действия:
- Найдите виртуальный диск, который хотите отсоединить, нажмите на нем правой кнопкой мыши и из контекстного меню выберите команду "Отсоединить виртуальный жесткий диск";
- В диалоге "Отсоединить виртуальный жесткий диск" нажмите на кнопку "ОК". Если вы хотите этот диск полностью удалить, то отметьте флажок "Удалить виртуальный диск после удаления диска".
Отсоединить виртуальный жесткий диск также можно при помощи утилиты командной строки DiskPart. Для этого в командной строке с правами администратора нужно выбрать предполагаемый виртуальный диск командой Select Vdisk, а затем воспользоваться командой Detach Vdisk. Синтаксис команды следующий:
Detach Vdisk
Просмотр информации о виртуальном диске
Для того чтобы просмотреть подробную информацию о диске, выполните следующие действия:
- Выберите нужный виртуальный диск при помощи команды Select Vdisk;
- Присоедините диск, если он еще не присоединен к компьютеру;
- Воспользуйтесь командой Detail Vdisk
Для данной команды не существует дополнительных параметров.
Сжатие виртуальных дисков
При помощи утилиты командной строки DiskPart можно сжимать виртуальные диски. Для этого выберите нужный виртуальный диск, подключите диск в режиме "только для чтения" и воспользуетесь командой Compact Vdisk. Эта команда сжимает файл виртуального диска для уменьшения физического размера файла. Сжатие возможно только для отсоединенного расширяемого виртуального диска или для расширяемого виртуального диска, подключенного в режиме "только для чтения".
Заключение
В этой статье вкратце рассказывается о технологии Virtual Hard Disk (VHD) и о возможных форматах виртуальных жестких дисков. Также подробно описаны базовые действия, которые можно проводить над виртуальными жесткими дисками при помощи графического интерфейса, а также средствами утилиты командной строки DiskPart. Описаны варианты создания, присоединения, инициализации, отсоединения и просмотра информации о виртуальных жестких дисках.