![](https://habrastorage.org/storage/49f0090f/7e0203d6/9eeddaeb/f55c5e4a.gif)
Здравствуйте.
1. Приступая к переносу, для начала сконвертируем .vdi жесткий диск от VirtualBox в .vhd диск Hyper-V
— В каталоге VirtualBox выполняем команду конвертации образа .vdi в .raw
VBoxManage.exe internalcommands converttoraw d:\project\project.vdi d:\project.raw
— Ищем и ставим WinImage, запускаем, выбираем Disk -> Convert Virtual Hard Disk Image,
тип файлов *.*, открываем .raw образ, сохраняем как динамически-расширяемый образ .vhd
2. Создаем новую виртуальную машину в Hyper-V, использую Legacy сетевую карту, так как синтетическая сетевая карта не заработает до установки Linux Integration Services.
3. Удаляем VirtualBoxAdditions из CentOS
в каталоге /etc/init.d/
командой
chkconfig --del «vboxadd»
chkconfig --del «vboxadd-service»
chkconfig --del «vboxadd-x11»
Затем удаляем из каталога /etc/init.d эти файлы (vboxadd, vboxadd-service, vboxadd-x11)
4. Идем в настройки Hyper-V, ставим статический mac адрес сетевой карте
Затем в линуксе идем по пути
/etc/sysconfig/network-scripts/
редактируем файл ifcfg-eth0 (либо ifcfg-seth0) и прописываем по аналогии:
DEVICE=eth0
BOOTPROTO=static
BROADCAST=10.10.10.255
HWADDR=00:01:02:03:04 (берем из настроек hyper-v)
IPADDR=10.10.10.10
NETMASK=255.255.255.0
NETWORK=10.10.10.0
ONBOOT=yes
либо поступаем еще проще, запускаем в консоли system-config-network-tui и настраиваем eth0 (физический адаптер) либо seth0 (синтетический адаптер).
Перезагружаем линукс.
5. Обновляем CentOS, набираем в консоли:
yum update
yum groupinstall «development tools»
reboot
6. Качаем Linux Integration Services v2.1 for Windows Server 2008 Hyper-V R2 , распаковываем и монтируем .iso в виртуальную машину в окне hyper-v.
Установленный Linux Integration Services дает нам:
— Driver support for synthetic devices — синтетический ethernet адаптер, более быстрый чем legacy erhernet
— Fastpath Boot Support for Hyper-V — более быструю загрузку виртуальной машины
— Timesync — синхронизация времени с хостовой машиной
— Integrated Shutdown — возможность выключать линукс из оснастки hyper-v
— Symmetric Multi-Processing (SMP) Support — поддержку до 4 процессоров
— Heartbeat — возможность мониторинга состояния гостевой ОС
— Pluggable Time Source
Из нереализованного:
— Integration Services: Data Exchange, Volume Snapshot Backup
— Networking: Jumbo Frames and TCP Offload
— Storage: Hot Add/Remove (VHD‟s and Passthrough Disks)
7. Монтируем Linux Integration Services v2.1 ISO:
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
Копируем файлы на жесткий диск:
mkdir /opt/linux_ic
cp -R /mnt/cdrom/* /opt/linux_ic
umount /mnt/cdrom
Устанавливаем Linux Integration Services,
cd /opt/linux_ic
make
make install
Пока не перезагружаемся. Если у вас RedHat5.5 (а у нас CentOS 5.5), то нужно зайти в
/boot/grub/grub.conf файл и поменять hda=noprobe hdb=noprobe на ide0=noprobe ide1=noprobe. Если не поправить grub, то поймаем панику ядра после перезагрузки:
Делаем reboot в консоли и радуемся корректной работе CentOS 5.5 под Hyper-V.
PS:
Подводные камни:
1. Сперва не мог понять, почему линукс при загрузке не цепляет сетевуху от hyper-v, гугление подсказало, что нужно сперва использовать legacy сетевую карту.
2. По инструкции, которая шла с Linux Integration Services v2.1 ничего не получалось, пока не нагуглил волшебную команду yum groupinstall «development tools», пакету не хватало этих вот инструментов разработчика, ну и заодно ядра посвежее.
3. Наконец-то поставил LIS, радостная перезагрузка и… kernel panic. Вдумчивое чтение документации подсказало, что нужно править grub.