
Переносимо 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.