LinuxIC и Debian 6
Как известно, Microsoft официально поддерживает запуск виртуальных машин с Linux под Hyper-V. Правда список официально поддерживаемых дистрибутивов короток – SLES и RHEL. Однако компоненты интеграции свободно доступны. Более того, совсем недавно вышел очередной релиз этого продукта – LinuxIC 3.2 (http://www.microsoft.com/download/en/details.aspx?id=28188). Попробуем установить этот пакет на стабильный релиз Debian.
Конечно, можно обойтись и без компонентов интеграции, однако в таком случае некоторые функции будут недоступны. Например, нельзя будет воспользоваться синтетической сетевой картой (придется подключать legacy-адаптер к виртуалке), будет недоступна функция выключения гостевой операционной системы. Чтобы избежать пересборки ядра и иметь возможность работать с дистрибутивном ядром попробуем скомпилировать необходимые модули.
Первым делом поставим пакет с заголовками ядра:
Теперь можно подключить к виртуальной машине ISO-образ с компонетнами интеграции и смонтировать его:

Как видно, в ISO-образе находятся rpm-пакеты для RHEL, однако это не значит, что мы не сможем ими воспользоваться. Для начала необходимо распокавать пакет с исходниками. Поскольку rpm, по сути, представляет собой архив, то мы спокойно можем достать из него необходимые файлы, воспользовавшисьутилитой rpm2cpio. Достаточно выполнить команду “aptitude install rpm2cpio” и данная утилита будет установлена. После этого можно приступить к распаковке:

(крякозябры в заголовке putty намекают, что надо аккуратнее экспериментировать с таким утилитами )
Теперь можно распаковать сам архив с исходниками с помощью команды:
“tar -xvf microsoft-hyper-v-rhel6.tar.gz“
Теперь, перед тем, как пытаться собрать из исходников модули, необходимо выполнить несколько действий. Сначала установим дополнительные пакеты, которые нам потребуются:
“aptitude install dracut make bridge-utils arping kpartx“
(эти пакеты потребуются на этапе сосзадния initramfs)
а затем создадим директорию extra, в которую будут скопированы модули (сам скрипт сборки ее не создает):
“mkdir /lib/modules/`uname -r`/extra“
После этого, можно запускать скрипт сборки:
./rhel6-hv-driver-install
В результате на экране должно появится что-то типа:
Installing Modules Generating Module dependencies Installing Modprobe Rules Generating initramfs ln: creating symbolic link `ld-linux-x86-64.so.2': File exists Saving old initramfs Installing new initramfs
После этого можно перезагружаться и наблюдать работающие драйвера.

Как видно на этом скриншоте, все модули успешно загружены, а синтетическая карта нормально определилась.
P.S. Здесь, правда есть одна тонкость. После перезагрузки сеть сразу видна не будет. Это связано с тем, что новый адаптер добавлен, старый удален и udev присвоил ему имя eth1, вместо eth0, которое было у старого адаптера (это можно найти в файле /etc/udev/rules.d/70-persistent-net.rules). Я просто поправил файл настроек, чтобы новый адаптер также определялся, как eth0 (на скриншоте я пометил белым исправления):

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