Установка Integration Services в ВМ с Vista SP2 на сервере WS 2008 SP1 (RTM)

Не так давно второй пакет обновления (Service Pack 2) для Windows Vista и Windows Server 2008 был, наконец, выложен в общий доступ без ограничений. И теперь многие из вас, пожалуй, готовы опробовать его. Возможно, вы захотите начать с виртуальных машин. Это, однако, может оказаться не так тривиально. По странной логике разработчиков службы интеграции (Integration Services, IS) Hyper-V входят в Windows Server 2008 SP2, но не входят в Windows Vista SP2. То есть, при установке с нуля в ВМ Windows Vista с SP2, вы получите ВМ без служб интеграции, а при установке чистого Windows Server 2008 с SP2 службы интеграции будут уже установлены.

Что же в этом сложного, можно подумать? Ничего сложного, если сам ваш родительский сервер, выполняющий роль Hyper-V, уже обновлен до Service Pack 2. В этом случае вы лишь подключите образ диска с дистрибутивом служб интеграции к своей виртуальной машине Vista SP2 и установите службы так же, как делали и до выхода Service Pack 2. Что же произойдет, если ваш родительский сервер не обновлен до SP2, а является первым выпуском Windows Server 2008 (который включал в себя SP1)? Штатным образом установить службы интеграции в виртуальной машине Vista SP2, запущенной на таком сервере, вы не сможете. Вместо этого, при запуске установки вы получите следующее сообщение: «An error has occured: One of the update processes returned error code 1».

Все дело в том, что установка служб интеграции с версией 6.0.6001.xxxхх (SP1 и его обновления, включая окончательную версию Hyper-V) на ОС версии 6.0.6002.xxxхх (SP2 и его обновления) заблокирована на уровне установщика. К счастью, все не настолько плохо, как кажется на первый взгляд. Блокировка установки старой версии служб не жесткая, её возможно обойти. Для этого вам придется на подключенном к виртуальной машине образе компакт-диска с дистрибутивом служб интеграции найти файл с именем «Windows6.0-HyperVIntegrationServices-x64.cab»  и произвести установку вручную командой «pkgmgr.exe /ip /m». (Для 32-битной версии гостевой ОС файл с дистрибутивом будет называться «Windows6.0-HyperVIntegrationServices-x86.cab»).

Пошаговая инструкция (пример):

  1. В меню «Action» окна «Virtual Machine Connection» выбрать пункт «Insert Integration Services Setup Disk»;
  2. в виртуальной машине запустить командную строку с полными правами администратора (Elevated);
  3. скопировать Windows6.0-HyperVIntegrationServices-x64.cab на жесткий диск, например, в C:\Temp
  4. в окне командной строки выполнить команду: pkgmgr.exe /ip /m : C:\Temp\Windows6.0-HyperVIntegrationServices-x64.cab (где D: — буква диска привода CD-ROM в ВМ);
  5. перезагрузить ВМ.

Если вы не можете найти \Windows6.0-HyperVIntegrationServices-x64.cab на диске с компонентами, поищите его на хосте в папке с ОС Windows и скопируйте в ВМ (через Legacy сетевой адаптер, или запаковав в ISO подключить как CD-ROM).

Надеюсь, что этот совет поможет вам в тестировании. Хотя рекомендую не затягивать с обновлением и родительского сервера до Service Pack 2.