Рубрики
Virtual PC Windows Софт

Как подключить/открыть vhd-файл (Virtual Hard Disk) в Windows XP и Vista

Если вы часто работаете с Virtual PC, то время от времени возникает необходимость открыть файл виртуального жесткого диска не в виртуальной, а в основной системе. В Windows 7 – это не проблема (vhd-фaйл легко подключается через “Управление дисками”). А вот в XP и Висте все сложнее: нужно установить утилиту vhdmount. Содержание:

Установка vhdmount

Утилита vhdmount входит в состав Microsoft Virtual Server 2005 R2 SP1 (это не отдельный сервис-пак, а полноценный сервер с SP1).

Скачиваем Microsoft Virtual Server 2005 R2 SP1.

Запускаем установщик (если включен UAC, то запускаем от имени Администратора). Выбираем Install:

Установка vhdmount (1)
Установка vhdmount (1)

Далее Custom:

Установка vhdmount (2)
Установка vhdmount (2)

Устанавливать все компоненты сервера нет необходимости. Выбираем только VHD Mount:

Установка vhdmount (3)
Установка vhdmount (3)

Завершаем установку. На этом первый этап закончен.

Создание контекстного меню

Теперь приступаем к созданию контекстного меню (чтобы не мучиться с командной строкой).

Необходимо создать файл с расширением reg и следующим содержанием:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Dismount]
@="Dismount"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Dismount\command]
@="\"C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\" /u \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Mount]
@="Mount"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Mount\command]
@="\"C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\" /m /f \"%1\""

[HKEY_CLASSES_ROOT\.vhd]
@="Virtual.Machine.HD"

Если папка установки отличается от стандартной, то естественно, требуется изменить путь к vhdmount.exe. Vhdmount можно запускать с различными параметрами (например включить поддержку undo-диска для отката изменений). Чтобы ознакомиться с дополнительными параметрами, запустите vhdmount с параметром /? в командной строке.

После того как файл создан, запускаем его. Подтверждаем внесение изменений в реестр.

Проверяем результат. При правом клике на vhd-файле, вы должный увидеть новые пункты меню:

Контекстное меню vhdmount
Контекстное меню vhdmount

Установка драйвера vhdmount

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

Установка драйвера vhdmount (1)
Установка драйвера vhdmount (1)

Выбираем “Установка оборудования, выбранного из списка в ручную”:

Установка драйвера vhdmount (2)
Установка драйвера vhdmount (2)

Выбираем “Показать все устройства” и жмем на Далее:

Установка драйвера vhdmount (3)
Установка драйвера vhdmount (3)

Нажимаем на “Установить с диска”:

Установка драйвера vhdmount (4)
Установка драйвера vhdmount (4)

Переходим в папку установки vhdmount и открываем файл vhdbus.inf:

Установка драйвера vhdmount (5)
Установка драйвера vhdmount (5)

Выбираем “Microsoft Virtual Server Storage Bus” и Далее:

Установка драйвера vhdmount (6)
Установка драйвера vhdmount (6)

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

Открываем Диспетчер устройств. Здесь вы увидите устройство Microsoft Server Storage Bus Device01 отмеченное восклицательным знаком:

Установка драйвера vhdmount (7)
Установка драйвера vhdmount (7)

Делаем на нем правый клик и выбираем “Обновить драйверы…”. Выбираем ручную установку:

Установка драйвера vhdmount (8)
Установка драйвера vhdmount (8)

В поле “Искать драйверы в следующем месте” выбираем папку установки vhdmount и жмем Далее:

Установка драйвера vhdmount (9)
Установка драйвера vhdmount (9)
Установка драйвера vhdmount (10)
Установка драйвера vhdmount (10)

На этом все. Теперь подключаем виртуальный диск, открываем “Компьютер” и работаем с подключенным диском.

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

53 ответа к “Как подключить/открыть vhd-файл (Virtual Hard Disk) в Windows XP и Vista”

Подскажите, пожалуйста, как можно делать mount\unmount простому пользователю (не администратору) ?

А вообще всё это было известно ещё восемь :-) лет назад. Вот с чего всё началось:
blogs.msdn.com/b/virtual_pc_guy/archive/2006/09/01/734435.aspx

Кстати, описанный здесь этап «Установка драйвера vhdmount» совершенно не нужен для XP x32.

Для семерки же намного удобнее использовать Medo’s VHD Attach (jmedved.com/vhdattach)

Да, но семерка забывает про виртуальные диски после перезагрузки. VHD Attach – это сервис, соответственно запускается и автомонтирует их ещё до входа пользователя в систему. По сравнению со штатными diskpart.exe и diskmgmt.msc – замечательная штука.

Спасибо за полезную информацию. Пользуюсь под XP расширенным вариантом контекстного меню:

Windows Registry Editor Version 5.00


[HKEY_CLASSES_ROOT\.vhd]
@="Virtual.Machine.HD"


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Mount]
@="Mount"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Mount\command]
@="\"C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\" /p /f \"%1\""


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Unmount]
@="Unmount"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Unmount\command]
@="\"C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\" /u \"%1\""


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Safe Mount]
@="Safe mount"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Safe Mount\command]
@="\"C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\" /p \"%1\""


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Unmount and Commit]
@="Unmount and commit changes"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Unmount and Commit\command]
@="\"C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\" /u /c \"%1\""


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Unmount and Discard]
@="Unmount and discard changes"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Unmount and Discard\command]
@="\"C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\" /u /d \"%1\""

P.S. В расширенном варианте добавлено три пункта:

1. Монтирование с возможностью отмены изменений (Safe mount).
2. Размонтирование с сохранением изменений (Unmount and commit changes).
3. Размонтирование с отменой изменений (Unmount and discard changes).

P.P.P.S. И ещё немного косметических изменений.
Класс явно HKLM, а не HKCU, тип файла «Virtual Hard Disk», иконка жёсткого диска:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.vhd]
@="Virtual.Machine.HD"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD]
@="Virtual Hard Disk"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\DefaultIcon]
@="\"%SystemRoot%\\system32\\shell32.dll\",8"

Это нужно добавить ВМЕСТО [HKEY_CLASSES_ROOT\.vhd] @=”Virtual.Machine.HD”

Парни, в динамические VHD тоже подключаются в ХР? Стоит с этим возиться?
Спасибо.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *