Переносимо CentOS5 з VirtualBox під Hyper-V і ставимо Linux Integration Services

Здрастуйте.


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.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND