Матеріал з Tech_support
За мотивами останніх подій з моєї роботи вирішив написати цей пост, тому що нічого схожого в рунеті нажаль не виявив, а дуже шкода, бо перетягувати виртуалки з VirtualBox і VMWare в благородний KVM все таки доводиться. Один з популярних способів зводитися в сливу образу диска в KVM, а потім завантаження з інсталяційного диска і відновлення системи (а фактично нова установка поверх старих налаштувань). Особисто мене подібна схема не влаштувала, тому що образ надісланої виртуалки не містив установочного диска з якого його можна було б відновити, а шукати схожий образ клопітно. Отже.
Ми маємо наступний набір. Виртуалка на VirtualBox або VMWare, гостьова система Windows (з linux такої веремії немає), і сервер з KVM на якому і будемо розміщувати нашу виртуалку. У моєму випадку це сервер KVM який працює в зв'язці з LVM, але я постараюся торкнутися і варіант коли KVM працює з файловими образами диска.
1. Готуємо систему до переносу.
Не секрет, що і VirtualBox і VMWare для нормальної роботи ставлять в систему свої власні дрова і утиліти. Так от перше що потрібно зробити - це позбавитися від них. Видаляємо і VirtualBox Guest Tools і VMWare tools.
Наступним кроком - необхідно буде відв'язати нашу Windows від заліза на якому вона була встановлена. На щастя для цього є офіційний мануал. Мотаємо його в самий низ, і створюємо файлик Mergeide.reg містить код з мануала.
Після того як файлик був створений і збережений, запускаємо його і вносимо зміни до реєстру. Тепер залишилося перевірити що всі необхідні файли для запуску в KVM є, для цього йдемо в C: \ Windows \ system32 \ drivers \ і шукаємо там файли:
Якщо будь-якого з цих файлів немає - то заходимо всередину архіву C: \ Windows \ Driver Cache \ i386 \ Driver.cab і копіюємо відсутні файліки звідти.
На цьому ми закінчили приготування системи, і можемо її без проблем вимкнути.
2. Готуємо образ диска
Тут є варіанти. Все залежить від того яка у вас система віртуалізації щас, і де KVM буде зберігати свої образи дисків.
Так чи інакше, вся схема створення образу ділитися на дві частини, перша - це підготовка SGF (Single Growable File), і друга - це перенесення SGF в KVM.
Нам необхідно конвертувати vmdk файл нашої виртуалки в формат SGF. Цей формат фактично сирої RAW нашого диска, і має розширення VMDK. Для VMWare він робиться так
Якщо в цьому місці виникають якісь граблі, то спробуйте параметр "-t 0" замінити на "-t 2". Хоча в більшості випадків все повинно пройти без проблем.
Для того що б зробити образ SGF в VBox'e необхідно в меню Файл -> Менеджер віртуальних дисків, вибрати диск, що цікавить нас виртуалки і натиснути "Копіювати". Як джерело залишайте обраний диск, Тип віртуального диска вибираємо VMDK, Додаткові атрибути - Фіксований віртуальний диск.
3. Перевіряємо образ
Для того що б уникнути помилок можна перевірити отриманий образ. Для цього в linux є команда file. Висновок нормального способу повинен мати приблизно такий вигляд
Якщо висновок говорить про те що це файл образу VMWare - значить ми не отримали потрібного нам формату образу.
4. Встановлюємо образ в KVM
Тут все залежить від налаштувань KVM. Чи використовуєте ви файли, або використовуєте LVM. Обидва варіанти наведені нижче
Тут особливої писати нічого. dd він і в Африці dd.
Після цього можна годувати KVM цей розділ LVM
Як файлового стораджа я люблю використовувати формат qcom2, хоча це більше питання релігії. Проте конвертувати цей образ можна за допомогою такої команди
Я думаю що пояснювати не потрібно що змінюючи параметр "-О" можна вибрати інший формат зберігання. Після чого даний диск можна годувати KVM.
Варто так само відзначити, що qemu-img дозволяє конвертувати не тільки SGF але і прості vmdk, хоча з менш передбачуваним результатом. Тому краще конвертувати. Якщо при конвертації випадає помилка, спробуйте не використовувати ключ "-f vmdk", і дайте утиліті самостійно визначити формат образу. Кажуть що допомагає.
5. Перший запуск.
Я не буду розписувати як налаштовувати KVM, ви вже великі і самі знаєте як це зробити, зазначу тільки той факт, що Windows ні під яким соусом не підтримує virtio, тому навіть не намагайтеся.
Після першого запуску система повинна визначити все нове залізо, і встановити на всі драйвера. Тут будьте уважні. У мене був випадок коли Windows не змогла знайти драйвера на ACPI процесора, і мені довелося його відключити в диспетчері пристроїв, що б система не падала в BSOD. Після установки всіх пристроїв, систему краще перезавантажити.
З віртуалкою розібралися, але як бути з реальними машинами? Чесно кажучи не пробував, але є думка що даний спосіб годиться і для реальних машин.
І звичайно ж ви здогадалися, що замість file.vmdk, образ можна заливати відразу ж в LVM. Не забудьте перевірити md5 суми у вихідного і кінцевого образів.
Удачі в експериментах.