Динамический виртуальный диск в машине

Создание виртуальных дисков в Hyper V VHD и VHDX

Виртуальные диски Hyper V заменяют обычные жесткие диски в операционной системе и на виртуальных машинах. В Hyper V есть три типа накопителей:

Перед тем как в Hyper V добавить виртуальный жесткий диск нужно его создать.

Конечно мы можем создать накопитель и в Powershell, но это будет рассмотрено в конце. И можно создать в оснастке Hyper V:

Если пропустить стартовое окно, то мы увидим форматы дисков Hyper V, которые описаны выше:

В следующем окне мы видим типы накопителей, которые делятся на:

Картинка немного описывающая разностный тип:

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

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

Минусы разностных дисков Hyper V такие:

Тут выбирается имя файла и его расположение. Рекомендую указывать корректное имя так как при удалении виртуальной машины диски не удаляются и можно запутаться:

На предпоследнем шаге мы выбираем из трех возможных вариантов:

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

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

Этот диск можно подключить во время создания виртуальной машины либо подключить уже к существующей виртуальной машине. Что бы в Hyper V подключить жесткий диск к существующей машине сделайте следующее:

Далее выбрать тип контроллера, который вы используете (в большинстве случаем SCSI) и нажать на добавление устройства:

В этой вкладке так же можно создать виртуальный диск Hyper V. В отличие от предыдущего способа здесь не будет вопроса о выборе VHD и VHDX. Этот выбор будет сделан автоматически от типа VM.

Через проводник мы можем найти уже созданный диск и импортировать его:

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

Создание виртуальных дисков Hyper V VHD и VHDX в Powershell

Для создания виртуальных дисков в Powershell есть команда:

Если ее запустить без параметров, то у нас появится опрос по необходимым значениям, но он работает странно и у нас могут появиться ошибки:

Cannot recognize “4GB” as a System.UInt64 due to a format error.
New-VHD : Failed to create the virtual hard disk. The size specified for ‘C:\vv.vhdx’ is too small.

На примере ниже я создал виртуальный динамический диск VHDX в Powershell размером 1GB:

По умолчанию создается динамический накопитель. Формат виртуального диска определяется в пути, если бы я хотел VHD диск нужно было бы так написать. Размер может указываться и в мегабайтах (MB), терабайтах (TB) и так далее.

Тип накопителя указывается в самом ключе. Если нужно создать фиксированный диск напишите:

При создании разностных дисков Hyper V нужно указать и родительский диск:

Копирование содержимого диска на новый тоже возможно, по правилам описанным выше. Сначала мы должны узнать номер накопителя, который будем копировать:

А затем передать этот номер:

Чтобы в Hyper V подключить диск средствами Powershell нужно указать тип контроллера:

Источник

Увеличить размер диска VirtualBox

При создании виртуального диска в программе virtualbox, назначенного объема в процессе работы может не хватить. Тогда необходимо будет как-то увеличить размер диска. В принципе сделать это не сложно в случае динамического носителя, но осложнения могут возникнуть если диск является фиксированный. Так как в программе не предусмотрено увеличение объема такого типа созданных носителей.

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

Клонируем фиксированный диск в VirtualBox

В списке виртуальных жестких дисков выбираем нужный, жмем правой кнопкой и нажимаем копировать. В моем случае это фиксированный windows 7, с объемом 20 ГБ.

Диск у нас уже выбран, поэтому нажимаем next.

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

В этом окне нас естественно интересует динамический виртуальный жесткий диск.

Задаем любое имя будущему диску и нажимаем копировать.

Ожидаем примерно 10-15 минут окончание процесса клонирования.

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

Увеличиваем размер диск в VirtualBox

Убедившись в создании, переходим к процедуре увеличения размера. Здесь нам понадобится открыть командную строку. Если у вас стоит windows 10, то кликаем правой кнопкой мыши по меню пуск и открываем командную строку, желательно от имени администратора.

В случае семерки, жмем пуск и в поиске вводим cmd, найденный файл запускаем под администратором.

Теперь нам понадобится ввести определенную команду, но в начале нужно убедитесь в расположении папок с файлами программы и виртуального диска(клона).
Убедившись вводим команду:

Ждем окончание процесса.

Создаем виртуальную машину

После открываем virtualbox, нажимаем кнопку создать.

Выбираем наш клон и нажимаем кнопку открыть.

Теперь жмем создать.

Как видим машина создана, запускаем ее.

Переходим в мой компьютер и видим, что объем как был 20ГБ так и остался. Все дело в том, что и в самой виртуальной системе нужно расширить том. При создании клона создается точная копия, а сам объем уже надо увеличить вручную в системе.

Увеличиваем размер диска в виртуальной машине

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

Тут нас интересует вкладка управление дисками. Как видим имеется не распределенное пространство в размере 9 ГБ. Как раз столько нам и не хватает. Теперь нужно прибавить данный раздел к разделу (С:), для этого жмем правой кнопкой мыши по (С:) и выбираем пункт расширить том.

Размер выделяемого пространства должен быть максимальный, так как мы переносим весь объем диска.

Готово.

Как видим не распределенного пространства уже нет, так оно нашло распределение в локальном диске (С:).

Зайдя в мой компьютер увидим, что размер диска увеличен.

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

Читайте также:  Водить машину без руки

О ставляйте своё мнение о данной статье, ну и конечно же задавайте свои вопросы, если у вас что-то вдруг пошло не так.

Источник

Увеличить размер диска VirtualBox

При создании виртуального диска в программе virtualbox, назначенного объема в процессе работы может не хватить. Тогда необходимо будет как-то увеличить размер диска. В принципе сделать это не сложно в случае динамического носителя, но осложнения могут возникнуть если диск является фиксированный. Так как в программе не предусмотрено увеличение объема такого типа созданных носителей.

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

Клонируем фиксированный диск в VirtualBox

В списке виртуальных жестких дисков выбираем нужный, жмем правой кнопкой и нажимаем копировать. В моем случае это фиксированный windows 7, с объемом 20 ГБ.

Диск у нас уже выбран, поэтому нажимаем next.

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

В этом окне нас естественно интересует динамический виртуальный жесткий диск.

Задаем любое имя будущему диску и нажимаем копировать.

Ожидаем примерно 10-15 минут окончание процесса клонирования.

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

Увеличиваем размер диск в VirtualBox

Убедившись в создании, переходим к процедуре увеличения размера. Здесь нам понадобится открыть командную строку. Если у вас стоит windows 10, то кликаем правой кнопкой мыши по меню пуск и открываем командную строку, желательно от имени администратора.

В случае семерки, жмем пуск и в поиске вводим cmd, найденный файл запускаем под администратором.

Теперь нам понадобится ввести определенную команду, но в начале нужно убедитесь в расположении папок с файлами программы и виртуального диска(клона).
Убедившись вводим команду:

Ждем окончание процесса.

Создаем виртуальную машину

После открываем virtualbox, нажимаем кнопку создать.

Выбираем наш клон и нажимаем кнопку открыть.

Теперь жмем создать.

Как видим машина создана, запускаем ее.

Переходим в мой компьютер и видим, что объем как был 20ГБ так и остался. Все дело в том, что и в самой виртуальной системе нужно расширить том. При создании клона создается точная копия, а сам объем уже надо увеличить вручную в системе.

Увеличиваем размер диска в виртуальной машине

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

Тут нас интересует вкладка управление дисками. Как видим имеется не распределенное пространство в размере 9 ГБ. Как раз столько нам и не хватает. Теперь нужно прибавить данный раздел к разделу (С:), для этого жмем правой кнопкой мыши по (С:) и выбираем пункт расширить том.

Размер выделяемого пространства должен быть максимальный, так как мы переносим весь объем диска.

Готово.

Как видим не распределенного пространства уже нет, так оно нашло распределение в локальном диске (С:).

Зайдя в мой компьютер увидим, что размер диска увеличен.

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

О ставляйте своё мнение о данной статье, ну и конечно же задавайте свои вопросы, если у вас что-то вдруг пошло не так.

Источник

Расширяем фиксированный виртуальный диск в VirtualBox

Как же расширить виртуальный диск в VirtualBox?

Здравствуйте уважаемые читатели интернет ресурса WindowsFan.Ru.

Иногда при работе с виртуальной машиной VirtualBox может возникнуть необходимость увеличить объем базового диска. Благо сделать это очень просто, достаточно открыть командную строку, перейти в каталог установки VirtualBox, после чего выполнить команду modifyhd –resize, указав при этом новый объем виртуального жесткого диска. И все было просто прекрасно, если бы не одно небольшое “но”.

Расширить таким способом можно только динамический виртуальный диск, с фиксированными дисками этот трюк не пройдет, и в командной строке вы получите ошибку “Resize hard disk operation for this format is not implemented yet!”. Сие означает, что данная функция, то есть resize, для фиксированного типа диска не реализована.

Жаль конечно, но пока что никаких способов расширить фиксированный диск в VirtualBox не имеется. Однако мы можем пойти на маленькую хитрость. Мы преобразуем фиксированный диск в динамический, после чего уже известным способом добавим нужный нам объем.

На страницах ряда сайтов, посвященных компьютерной тематике можно встретить описание способа “расширения” фиксированного диска с помощью утилиты SelfImage, способа явно неудобного и громоздкого, ведь при этом пользователю нужно было выполнить, по меньшей мере, восемь разных операций.

Кроме того, помимо самой SelfImage, ныне практически не использующейся, пользователю приходилось прибегать к утилите diskpart, дабы произвести “выравнивание” дисков.

В действительности есть куда более простой и эффективный способ расширить диск и как раз им мы и воспользуемся. Итак, приступим. Откройте командную строку и перейдите в каталог установки VirtualBox:

cd C:/Program Files/Oracle/VirtualBox

Как вы уже знаете, получить информацию по виртуальному диску можно с помощью команды showhdinfo.

VboxManage.exe showhdinfo “D:/Virtual Box/Windows 8.0/Windows 8.0.vdi”

Как видите, в данный момент тип диска (format variant) у нас фиксированный, а размер (capacity) составляет 18432 Мб. Теперь нам нужно преобразовать статический диск в динамический.

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

VBoxManage clonehd “D:/Virtual Box/Windows 8.0/Windows 8.0.vdi” “D:/Virtual Box/Windows 8.0/Clone Windows 8.0.vdi”

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

По завершении копирования можете еще раз выполнить showhdinfo и посмотреть, что у вас получилось. Проверяем наш клон:

VboxManage.exe showhdinfo “D:/Virtual Box/Windows 8.0/Clone Windows 8.0.vdi”

Если все пройдет гладко, то format variant уже будет не fixed, а dynamic, что мы и имеем. А вот сейчас можно применить знакомую нам команду resize.

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

На этом я и пожалуй закончу свой нетривиальный рассказ всем пока и до новых познавательных встреч с вами дорогие друзья.

Источник

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

Читайте также:  В машине горит лампочка двигателя

Введение

Типы виртуальных дисков

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

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

Фиксированный виртуальный жесткий диск имеет размер, указанный вами при его создании, который в процессе работы не изменяется. Если вы создадите виртуальный жесткий диск, скажем, объемом в 20ГБ, то будет создан vhd-файл приблизительно на 24ГБ, несмотря на данные, содержащиеся в вашем диске. Часть дискового пространства будет сразу отведена под внутреннюю структуру футера жесткого диска. Итого, размер файла будет равняться указанному вами размеру жесткого диска, плюс размер футера.

Динамические виртуальные жесткие диски

Динамический виртуальный жесткий диск представляет собой файл, размер которого увеличивается по мере записи данных, плюс размер хедера и футера. Данные распределяются в блоки. Соответственно, чем больше вы записываете на этот жесткий диск данных, тем больше увеличивается размер жесткого диска, за счет большего количества выделяемых блоков. Например, изначально после создания динамического жесткого диска, его объем варьируется в пределах 80-85МБ в базовой файловой системе, но при записи данных, со временем, его объем будет все время увеличиваться, вплоть до своего лимита, то есть до фактического ограничения основного протокола аппаратного диска.

Базовый формат динамического жесткого диска вы можете увидеть в следующей таблице:

Базовая структура динамического жесткого диска
Копия футера жесткого диска (512 байт)
Хедер динамического жесткого диска (1024 байт)
BAT (Block Allocation table)
Блок данных 1
Блок данных 2
Блок данных n
Футер динамического жесткого диска (512 байт)

Таблица 1. Базовая структура виртуального динамического жесткого диска

Стоит обратить внимание на то, что при каждом новом создании блока данных, футер диска перемещается в конец файла. Поскольку футер жесткого диска является важнейшей частью образа жесткого диска, существует зеркало футера, которое расположено в начале файла, в качестве резервной копии. Максимальный размер виртуального жесткого диска этого типа может быть 2040ГБ (2ТБ).

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

Разностный виртуальный жесткий диск (в некоторой документации обозначается как «дочерний» виртуальный жесткий диск) в какой-то степени по своей структуре может напомнить динамический диск, но он представляет текущее состояние виртуального жесткого диска в виде набора измененных блоков соответствующего родительского виртуального диска. Этот тип виртуальных жестких дисков не является независимым и в процессе своего функционирования полностью зависит от другого жесткого диска. Родительский жесткий диск может быть любым из упомянутых типов образов жестких дисков, в том числе и другим разностным жестким диском. В свою очередь, родительский жесткий диск доступен только для чтения, поэтому изменять данные вы сможете только на разностном жестком диске. Несколько разностных виртуальных жестких дисков образуют цепочку разностных дисков.

При работе с такими жесткими дисками есть несколько «подводных камней», с которыми вы можете столкнуться. Прежде всего, при использовании разностных виртуальных дисков ни в коем случае не изменяйте родительский диск, так как после изменения или замены родительского виртуального жесткого диска, структура блоков между родительским и дочерним виртуальными жесткими дисками будет нарушена и последний, соответственно, будет поврежден. Также, начиная с операционных систем Windows 7 и Windows Server 2008 R2, вы можете выполнять настройку диспетчера загрузки операционной системы на выполнение встроенной или физической загрузки образа Windows, расположенного на виртуальном жестком диске, что обеспечивает гибкость развертывания и управления образами. Виртуальные жесткие диски со встроенной загрузкой могут значительно упростить работу тестировщиков программного обеспечения, выполняя загрузку образа Windows 7 без создания отдельного раздела на физическом компьютере для установки операционной системы. Это означает, что виртуальный жесткий диск может использоваться в качестве работающей операционной системы на специально отведенном оборудовании без дополнительной родительской операционной системы, виртуальной машины или низкоуровневой оболочки. В том случае, если вы используете сценарии встроенной загрузки, необходимо, чтобы оба файла виртуальных жестких дисков (родительский и разностный) располагались в одном каталоге одного локального тома одного локального диска. Стоит помнить, что встроенная загрузка с виртуальных жестких дисков доступна во всех редакциях Windows Server 2008 R2, а также в клиентских операционных системах Windows 7 Корпоративная и Windows 7 Максимальная.

Структура футера жесткого диска

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

Поля футера жесткого диска Размер (в байтах)
Cookie 8
Компоненты 4
Версия формата файла 4
Смещение данных 8
Отпечаток времени 4
Приложение создателя 4
Версия создателя 4
Хостовая ОС создателя 4
Оригинальный размер 8
Текущий размер 8
Геометрия дисков 4
Тип диска 4
Контрольная сумма 4
Уникальный Id 16
Сохраненное состояние 1
Зарезервированное пространство 427

Таблица 2. Структура футера виртуального жесткого диска

Рассмотрим подробно каждую составляющую футера виртуального жесткого диска

Cookie

Cookie (значения которых чувствительны в регистру) используются для идентификации создателя образа виртуального жесткого диска. Для определения файла виртуальным жестким диском, созданным в Windows Virtual PC, Hyper-V или Windows Virtual Server, компания Microsoft использует строку «conectix». Cookie хранятся в ASCII строке, длиной в 8 символов.

Компоненты

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

Версия формата файла

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

Смещение данных

Это поле отвечает за абсолютное смещение от начала файла до следующей структуры. Используется оно только для динамических и разностных дисков. На фиксированных дисках значением этого поля выступает 0xFFFFFFFF.

Отпечаток времени

Это поле содержит время создания образа виртуального жесткого диска. Значение указывается как количество секунд, которое прошло после 12:00:00 первого января 2000 года в UTC/GMT.

Приложение создателя

В это поле заносится название приложения, при помощи которого был создан виртуальный жесткий диск. В этом поле используется однобайтовый набор символов, которые выравниваются по левому краю. Каждые приложения используют свои уникальные идентификаторы. Например, если виртуальный жесткий диск создавался при помощи Windows Virtual PC, то значением этого поля будет «vpc».

Версия создателя

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

Хостовая ОС создателя

Это поле содержит тип операционной системы, в которой был создан виртуальный жесткий диск. Например, если жесткий диск создавался из-под MacOS, значение данного поля будет равняется 0x4D616320.

Оригинальный размер

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

Читайте также:  Аккумулятор на машину в новокузнецке

Текущий размер

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

Геометрия дисков

В этом поле указано значение цилиндров, головок и секторов жестких дисков. Например, если вы настраиваете виртуальный жесткий диск как ATA, то CHS значения данного диска (Cylinder, Heads, Sectors – Цилиндров, Головок, Секторов на дорожку) используются ATA контроллером для определения размера диска. Когда пользователь создает на жестком диске том определенного размера, виртуальный жесткий диск должен быть меньше реального. Это условие является обязательным, так как CHS при расчете округляется в зависимости от размера тома жесткого диска.

Тип диска

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

Поле типа диска Значение
Нет
Зарезервировано (не рекомендуется) 1
Фиксированный виртуальный жесткий диск 2
Динамический виртуальный жесткий диск 3
Разностный виртуальный жесткий диск 4
Зарезервировано (не рекомендуется) 5
Зарезервировано (не рекомендуется) 6

Таблица 3. Типы дисков

Контрольная сумма

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

Уникальный идентификатор

У каждого жесткого диска есть свой уникальный идентификатор, который хранится на самом жестком диске и используется, непосредственно, для идентификации жесткого диска. Уникальный ID – это 128-разрядные универсальные уникальные идентификаторы (UUID). Данное поле в основном предназначено для связи родительского и разностного жестких дисков.

Сохраненное состояние

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

Зарезервированное пространство

Данное поле содержит нули, длиной в 427 байт.

Структура хедера жесткого диска

В динамических и разностных жестких дисках значение поля «Смещение данных» (Data Offset) футера обеспечивает дополнительную информацию образа виртуального жесткого диска, указывающую на существование дополнительной структуры. Такие диски помимо футера еще содержат хедер структуры, длиной в 1024 байт. В следующей таблице вы можете увидеть структуру хедера динамических и разностных виртуальных жестких дисков:

Поля хедера жесткого диска Размер (в байтах)
Cookie 8
Смещение данных 8
Смещение таблицы 8
Версия хедера 4
Максимальные записи в таблице 4
Размер блока 4
Контрольная сумма 4
Родительский уникальный ID 16
Родительский штамп времени 4
Зарезервированное пространство 4
Имя родителя в юникоде 512
Запись родительского локатора 1 24
Запись родительского локатора 2 24
Запись родительского локатора 3 24
Запись родительского локатора 4 24
Запись родительского локатора 5 24
Запись родительского локатора 6 24
Запись родительского локатора 7 24
Запись родительского локатора 8 24
Зарезервировано 256

Таблица 4. Структура хедера виртуального жесткого диска

Рассмотрим подробно каждую составляющую хедера виртуального жесткого диска

Cookie

Это поле, которое является идентификатором объекта, содержит значение «cxsparse».

Смещение данных

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

Смещение таблицы

Версия хедера

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

Максимальные записи в таблице

В этом поле хранится максимальное количество существующих записей в BAT. Это значение должно равняться количеству блоков на диске.

Размер блока

Блоком называется расширяемая часть, которая содержит байты динамического или разностного виртуального диска. Данные разбиваются на блоки одинакового размера. Размер блока динамического диска равен 10МБ.

Контрольная сумма

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

Родительский уникальный ID

Это поле заполняется только для разностных дисков. Здесь хранится 128-битовый UUID родительского жесткого диска.

Родительский штамп времени

Это поле содержит изменения отпечатка времени родительского жесткого диска. Значение указывается как количество секунд, которое прошло после 12:00:00 первого января 2000 года в UTC/GMT.

Зарезервированное пространство

Данное поле содержит нули, длиной в 4 байта.

Имя родителя в юникоде

Это поле содержит юникод строку (UTF-16) родительского жесткого диска.

Запись родительского локатора

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

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

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

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

Также стоит отметить, что динамические виртуальные диски в Windows Virtual PC создаются по умолчанию только в случае установки Windows XP Mode, так как этот новый компонент операционной системы применяется в большинстве случаев только для корректной работы с программным обеспечением, которое не совместимо с операционной системой Windows 7.

Заключение

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

Источник

Интересные факты и лайфхаки