Миграция виртуальных машин под управлением ОС Windows на платформу KVM

    Общий рейтинг статьи: 0 (проголосовало 0 )
    Опубликовано:  [просмотров 355]


    Как вы наверное знаете, при смене железа (в основном это касается контроллера жесткого диска) операционная система Windows банально перестанет загружаться и аналогичная ситуация возникает и при миграции виртуальных машин под управлением ОС Windows на платформу KVM.

    Миграция виртуальных машин под управлением ОС Linux на платформу KVM обычно вопросов не вызывает и поддержка виртуализованного оборудования встроена в ядро, но в случае с Windows все несколько сложнее. Как известно при смене аппаратной части машина под управлением ОС Windows не загрузится, что мы и имеем при переносе на платформу KVM с включенным режимом VirtIO. Сегодня мы рассмотрим, что делать с Windows при переносе ОС на другую аппаратную платформу и этот же метод можно применять при миграции Windows с VirtualBox или любой другой системы виртуализации на платформу KVM/QEMU.

    Прежде всего вам понадобится диск с драйверами для вашего контроллера жестких дисков (или полный набор драйверов для новой материнской платы), а в случае с миграцией виртуальных машин вам потребуется диск с VirtIO-драйверами virtio-win-drivers-20120712-1.iso. Обратите внимание, что инсталлировать драйвера контроллера жесткого диска в систему в аварийном режиме можно и при помощи утилиты Paragon Adaptive Restore, но она не работает с Windows 10 и Windows server 2012.

    Paragon Adaptive Restore

    Paragon Adaptive Restore можете скачать на нашем сайте: paragon_adaptive_restore_2010.iso

    Сегодня мы будем рассматривать метод с использованием штатной консоли восстановления Windows старше Windows 7, а для Windows ранних версий используйте утилиту Paragon Adaptive Restore.

    Прежде всего скопируйте образ диска вашего сервера и преобразуйте его в формат qcow2 и совершенно безразлично копируете вы образ физического сервера или преобразуете диск от другой системы виртуализации. При копировании образа физического диска сервера используйте штатную команду dd и после копирования вы получите образ в формате raw.

    Преобразование диска в формат  qcow2 осуществляется командой:

    # qemu-img convert -f vdi -O qcow2 ./windows-dc-01.vdi ./windows-dc-01.qcow2

    Подсистема QEMU осуществляющая эмуляцию оборудования может работать со всеми популярными форматами дисков систем виртуализации, но я в любом случае рекомендую преобразовать в родной формат qcow2.

    Создайте конфигурацию виртуальной машины KVM аналогичную физическому серверу или виртуальной машины мигрированной со старой системы виртуализации и установите режим работы контроллера жестких дисков в режим VirtIO.

    Режим Virtio в KVM

    Созданная виртуальная машина не сможет загрузиться самостоятельно так как не установлены драйвера контроллера жестких дисков. Ситуация аналогичная переносу Windows на другое железо.

    Нам естественно потребуется установить в систему которая не загружается драйвера и для этого нам потребуется запустить консоль восстановления. В Windows 10 и выше система сама перезагрузится в режим восстановления после двух неудачных попыток загрузки, а в Windows более ранних версий вам понадобится установочный диск где на первом этапе (вместо установки) выберите режим восстановление системы.

    Запуск режима восстановления Windows 10

    В режиме восстановления системы вам необходимо запустить консоль восстановления и загрузить драйвера контроллера жесткого диска при помощи команды:

    > drvload D:\STORAGE\SERVER_2008_R2\AMD64\VIOSTOR.INF

    Загрузка драйверов в режиме восстановления

    Диск с драйверами естественно должен быть подключен и как вы наверное понимаете, до загрузки драйверов накопитель с установленной Windows будет недоступен. Есть еще один вариант как установить драйвера и вы можете запустить режим установки и на этапе разметки диска установить драйвера через графический интерфейс.

    Не обнаружен контроллер диска Windows

    После загрузки драйвера вы увидите ваши накопители и закройте окно установки (прервите установку и вернитесь в консоль восстановления). Финальным этапом инсталлируйте драйвера в вашу установленную windows при помощи команды:

    > dism /Image:e:\ /Add-Driver:D:\ /Recurse

    Установка Windows-драйверов командой DISM

    В рекурсивном режиме будут добавлены все драйвера с диска D (в противном случае уберите рекурсивный ключ и укажите полный путь до INF-файла драйвера). По завершении установки драйверов перезагрузитесь и система сможет загрузиться в штатном режиме.

    Постарался объяснить подробно и на всякий случай я подготовил видео.


    Связанные записи в блоге

    Обсуждение статьи
    Вопрос нашего пользователяОтличная статья. Сильно помогла. Только есть 2 ошибки.
    1. Драйвер называется viostor.inf, а не voistor.inf
    2. Ключ в dism не /driver, а /add-driver.
    Исправьте и будет все отлично.
    Ответ на комментарийСпасибо за поправку. Действительно, на скриншотах именно /add-driver. Куда смотрел непонятно, но сейчас исправлю.
    Вопрос нашего пользователяЖесть как сложно!
    Ответ на комментарийА вы попробуйте у Windows просто материнку поменять в которой контроллер диска отличается и будут такие же танцы.
    Вопрос нашего пользователяА как Windows загружается в режим восстановления если жесткий диск она не находит?
    Ответ на комментарийТам схема похожая на Initrd в Linux. В последних версия Windows вообще много чего позаимствовали. Как проходит режим загрузки ОС я уже как то писал, там довольно интересная схема и на пальцах не объяснить.

    Ваш комментарий: