Установка virtio драйверов в windows

Introduction

VirtIO Drivers are paravirtualized drivers for kvm/Linux (see http://www.linux-kvm.org/page/Virtio). In short, they enable direct (paravirtualized) access to devices and peripherals for virtual machines using them, instead of slower, emulated, ones.
A quite extended explanation about VirtIO drivers can be found here http://www.ibm.com/developerworks/library/l-virtio.

At the moment these kind of devices are supported:

  • block (disks drives), see Paravirtualized Block Drivers for Windows
  • network (ethernet cards), see Paravirtualized Network Drivers for Windows
  • balloon (dynamic memory management), see Dynamic Memory Management

You can maximize performances by using VirtIO drivers. The availability and status of the VirtIO drivers depends on the guest OS and platform.

Windows OS Support

Windows does not have native support for VirtIO devices included.
But, there is excellent external support through opensource drivers, which are available compiled and signed for Windows:

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/?C=M;O=D

Note that this repository provides not only the most recent, but also many older versions.
Those older versions can still be useful when a Windows VM shows instability or incompatibility with a newer driver version.

The binary drivers are digitally signed by Red Hat, and will work on 32-bit and 64-bit versions of Windows

Installation

Using the ISO

You can download the latest stable or you can download the most recent build of the ISO.
Normally the drivers are pretty stable, so one should try out the most recent release first.

You can access the ISO in a VM by mounting the ISO with a virtual CD-ROM/DVD drive on that VM.

Wizard Installation

You can use an easy wizard to install all, or a selection, of VirtIO drivers.

  1. Open the Windows Explorer and navigate to the CD-ROM drive.
  2. Simply execute (double-click on) virtio-win-gt-x64
  3. Follow its instructions.
  4. (Optional) use the virtio-win-guest-tools wizard to install the QEMU Guest Agent and the SPICE agent for an improved remote-viewer experience.
  5. Reboot VM

Manual Installation

  1. Open the Windows Explorer and navigate to the CD-ROM drive.
    There you can see that the ISO consists of several directories, each having sub-directories for supported OS version (for example, 2k19, 2k12R2, w7, w8.1, w10, …).
    • Balloon
    • guest-agent
    • NetKVM
    • qxl
    • vioscsi

  2. Navigate to the desired driver directories and respective Windows Version
  3. Right-click on the file with type «Setup Information»
  4. A context menu opens, select «Install» here.
  5. Repeat that process for all desired drivers
  6. Reboot VM.

Downloading the Wizard in the VM

You can also just download the most recent virtio-win-gt-x64.msi or virtio-win-gt-x86.msi from inside the VM, if you have already network access.

Then just execute it and follow the installation process.

Troubleshooting

Try an older version of the drivers first, if that does not help ask in one of our support channels:
https://pve.proxmox.com/wiki/Get_support

Further Reading

https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html

http://www.linux-kvm.org/page/WindowsGuestDrivers

The source code of those drivers can be found here: https://github.com/virtio-win/kvm-guest-drivers-windows

http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers

See also

  • Paravirtualized Block Drivers for Windows
  • Paravirtualized Network Drivers for Windows
  • Dynamic Memory Management

Современную ИТ-инфраструктуру уже нельзя представить себе без виртуализации. Настолько повсеместно она используется (и не без основания). Операционные системы уже даже давно научились понимать то, что она работаю в качестве виртуальной машине, а не на физическом оборудовании. Правда, иногда в этом им приходится помогать. Например, в Proxmox для того, чтобы виртуальные машины могли использовать “нарисованный” (VirtIO) тип контроллера SCSI необходимо, чтобы была выполнена установка драйвера VirtIO для Windows. VirtIO является рекомендуемым типом контроллера SCSI, т.к. он позволяет виртуальной машине напрямую обращаться к виртуальным ресурсам, а не через эмуляцию IDE или какого-то другого протокола.

Есть несколько вариантов или сценариев установки драйвера VirtIO для Windows. Каждый из них применим к определенным случаям. Ниже я постараюсь кратко рассказать про каждый из этих сценариев.

Этот сценарий применим к тем случаям, когда вы выполняете установку новой операционной системы Windows.

Если вы настроите для виртуальной машины Windows тип SCSI контроллера VirtIO и попробуете выполнить установку операционной систем, то на этапе выбора диска вы не увидите виртуальный диск ВМ:

Для того, чтобы установить драйвер VirtIO на этапе установки системы выполните следующие действия:

1. Загрузить дистрибутив с гостевыми средствами интеграции Proxmox.

2. Подключить дополнительный ISO образ к виртуальной машине.

3. На этапе выбора диски для установки операционной системы нажать кнопку “Load Driver”.

4. В следующем диалоговом коне нажмите кнопку “Browse”.

5. В дереве доступных путей найдите смонтированный ISO образ. В корне образа найдите директорию “vioscsi”. Внутри этой директории найдите нужную вам версию и редакции ОС. Нажмите кнопку “OK”.

6. На следующей странице выберите один доступный драйвер и нажмите кнопку “Next”.

7. После завершения процедуры добавления драйвера диск, подключенный по SCSI через VirtIO будет доступен в качестве диска для установки операционной системы.

8. Дальнейшая установка операционной системы выполняется как обычно – дополнительных сложнойстей возникнуть не должно.

Вариант 2. Установка драйвера VirtIO для уже установленной ОС

Этот сценарий применим к тем случаям, когда у вас уже есть виртуальная машина с установленной операционной системой, но виртуальный жесткий диск подключен, например, к IDE контроллеру, а не к контроллеру VirtIO.

Приведенный ниже метод я протестировал на Windows 10. На других версиях ОС Windows, возможно, алгоритм может немного отличаться.

Например, есть подопытная машина:

т.е. в качестве SCSI контроллера выступает эмуляция контроллера LSI53C895A, а в качестве интерфейса подключения диска с операционной системой – SATA.

Для того, чтобы переключить системный диск на использование контроллера VirtIO нужно выполнить следующие действия:

1. В гостевой операционной системе установить средства интеграции Proxmox.

2. Выключить виртуальную машину.

3. Измените тип SCSI контроллера в параметрах оборудовании виртуальной машины.

4. Добавляем какой-то пустой диск (не важно какого размера). Обязательно подключаем его по SCSI протоколу. Почему то без этого шага переключение непосредственно диска с ОС сразу на SCSI протокол успехом не увенчалось. Видимо, сама ОС догружает еще какие-то драйвера. Какие именно я быстро не смог найти. Поэтому быстрее было через вот такой шаг с дополнительным диском реализовать автоматическую установку необходимых драйверов.

5. Запускаем виртуальную машину. Дожидаемся окончания загрузки операционной системы и выключаем виртуальную машину.

6. Отсоединить виртуальный жесткий диск с операционной системой.

7. Перейдите в режим редактирования виртуального жесткого диска.

8. Укажите тип контроллера – SCSI и нажмите кнопку “Add”.

9. Убедитесь, что диск с операционной системой, который вы подключили по SCSI является первым загрузочным устройством (Options – Boot order).

10. Запустите виртуальную машину. После выполнения всех действий виртуальный диск операционной системы будет подключен через VirtIO, что позволит обеспечить максимальную эффективность и производительность работы.

Вариант 3. Подготовка шаблона ВМ с установленным драйвером VirtIO

Если вам приходится часто разворачивать виртуальные машины Windows, то вы можете подготовить базовый образ с уже установленным драйвером для VirtIO. Затем в любой момент времени вы можете из готового шаблона развернуть новую виртуальную машину Windows. И в ней уже будет установлен драйвер для VirtIO.

Как подготовить образ:

1. Сначала необходимо выполнить подготовку операционной системы. Далее на выбор – либо вариант 1, либо вариант 2 из разлов выше. Все зависит от ваших предпочтений и стартовых условйи.

2. Дополнительно вы можете установить весь необходимый набор ПО – архиваторы, офисное ПО и любое другое необходимое вам ПО.

3. Далее необходимо подготовить систему – удалить всю идентифицирующую информацию и идентификаторы для того, чтобы в последующем можно было сделать копию системы. Для этих целей у Microsoft есть утилита sysprep. Расположена вот тут:

C:\windows\system32\sysprep\sysprep.exe

4. В утилите sysprep нужно выбрать следующие параметры:

5. Дождитесь завершения работы утилиты sysprep и выключения системы. После этого наша исходная система готова для конвертирования её в шаблон виртуальной машины.

6. Конвертируем виртуальную машину в шаблон.

7. Теперь вы можете клонировать подготовленный вами образ ОС, в котором будут все необходимые драйвера для VirtIO, а также все необходимое вам дополнительное ПО и обновления (если вы включили эти шаги в образ системы).

Использование шаблона позволит значительно сократить время создания и подготовки новой виртуальной машины. Особенно, если вам приходится часто приходится подготавливать типовое развертывание операционной системы.

В данной статье мы проиллюстрируем пошаговую установку драйверов VirtIO на примере операционной системы Microsoft Windows Server.

Для начала авторизуйтесь в панели управления Cloud2 для присоединения ISO-образа диска с драйверами VirtIO к существующей виртуальной машине:

1. Авторизуемся в панели управления по адресу: https://ru.cloud-2.io/ui/premium/

Авторизуемся с собственным логином и паролем

2. Выбираем нужную виртуальную машину кликая по её названию (1). В открывшейся панели управления переходим во вкладку устройств (2) и нажимаем стилизованную под плюс кнопку подключения ISO-образа (3):

Подключаем ISO-образ в меню устройств виртуальной машины

3. В открывшемся окне прикрепления ISO-образа указываем тип операционной системы Windows (1), отмечаем образ диска с драйверами VirtIO (2) и подключаем его к нашей машине (3):

Выбираем ISO-образ из библиотеки

4. Переходим в операционную систему. Для этого подключаемся к машине по RDP или используем встроенную консоль панели управления. Для этого кликаем по стилизованной под три точки кнопке меню виртуальной машины (1) и выбираем пункт «Доступ к ВМ» (2):

Открываем пункт Доступ к ВМ

В открывшемся окне нажимаем ссылку «Открыть VNC консоль» (1):

Запускаем консоль

5. В операционной системе с помощью проводника Windows проверяем наличие присоединённого нужного образа с драйверами:

Наличие ISO-образа в виртуальном приводе

В контекстном меню (правая кнопка мыши) кнопки «Пуск» выбираем пункт «Управление компьютером»:

Запускаем Управление компьютером

6. В открывшейся панели переходим в Диспетчер устройств (1), где наблюдаем ряд неизвестных нашей системе девайсов (2), которые нам предстоит инициализировать:

Переходим в диспетчер устройств

7. Поочерёдно устанавливаем драйвера на каждое устройство с подключенного диска. Устанавливаем драйвер устройства Virtio RNG Device:

Контекстное меню на неизвестном устройстве -> Обновить драйвер
Выбираем поиск драйвера на текущем компьютере
Указываем диск подключенного образа с драйверами, в нашем примере это диск D, отмечаем галочкой поиск по вложенным папкам
Соглашаемся доверять ПО от Red Hat 😉 — устанавливаем драйвер
Получаем искомый результат
Новое устройство появляется в списке

Аналогично устанавливаем последующие драйвера устройств VirtIO Serial Driver и Red Hat VirtIO Ethernet Adapter:

Запускам процедуру обновления драйвера устройства
Сообщение об успешно установленном драйвере
То же самое проделываем с сетевым устройством

В результате проделанных манипуляций мы получаем полностью установленные VirtIO устройства в нашей системе. Не забудьте отключить ISO в самой системе или в панели управления виртуальной машиной по окончании работ.

После установки гостевой Windows в виртуальную машину на хосте KVM, нужно добавить корректные драйвера (kvm virtio driver). Без этих драйверов гостевая Windows не сможет определить виртуальные сетевые адаптеры и ряд другого оборудования.

Скачайте актуальную версию ISO образа с драйверами KVM для Windows (около 500 Мб):

$ wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso -P /vm/kvm/iso/

Создайте конфигурационной файл для монтирования iso образа в виртуальную машину:

$ vi /etc/libvirt/qemu/guest-virtio-drivers.xml

Добавьте в него следующую конфигурацию:

<disk type='file' device='cdrom'>
 <driver name='qemu' type='raw'/>
 <source file='/vm/kvm/iso/virtio-win.iso'/>
 <target dev='hdb' bus='ide'/>
 <readonly/>
 <address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>

Чтобы смонтировать ISO образ в виртуальную машину KVM, выполните:

$ virsh update-device test-win1 /etc/libvirt/qemu/guest-virtio-drivers.xml

Подключитесь к консоли виртуальной машины Windows, запустите диспетчер устройств и найдите оборудование Ethernet Controller в секции Other Device. Как вы видите, Windows не нашла драйвер для сетевой карты.

отсуствует драйвер для Ethernet Controller на виртуальной машине Windowso на KVM

Щелкните по контроллеру правой клавишей и выберите: Update Driver -> Browse my computer for driver software, укажите путь к виртуальному CD диску, в который смонтирован ISO образ.

установка драйвера Hat VirtIO Ethernet Adapter в Windows 10 на KVM

Подтвердите установку драйвера Red Hat VirtIO Ethernet Adapter.

Аналогичным образом установите все остальные драйвера, для оборудования, которое Windows не смогла обнаружить.

Обновлено Обновлено:
Опубликовано Опубликовано:

После установки гостевой операционной системы Windows на гипервизор KVM мы можем столкнуться с проблемой отсутствия драйверов. Как правило, больше всего неудобств вызывает отсутствие сетевых драйверов. Мы рассмотрим универсальный способ установки драйверов на Windows, который установлен на виртуальную машину KVM.

Предполагается, что наш KVM установлен на операционную систему семейства Linux, например, CentOS или Ubuntu. Все команды в данной инструкции будут выполняться из командной строки.

Загрузка драйверов и их монтирование

Первым делом загрузим ISO образ с набором драйверов и примонтируем его к операционной системе. Для этого заходим на хост виртуализации по SSH и вводим команду:

wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso -P /data/kvm/iso/

* где https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso — источник файла iso с драйверами KVM; /data/kvm/iso/ — каталог на сервере, в который мы загрузим образ.
* если при вводе команды система выдаст ошибку, необходимо установить wget командой yum install wget или apt-get install wget.

Дожидаемся загрузки файла на сервер, после чего создаем конфигурационный файл для монтирования образа в операционную систему:

vi /etc/libvirt/qemu/guest-virtio-drivers.xml

Добавляем в него следующее:

<disk type=’file’ device=’cdrom’>
  <driver name=’qemu’ type=’raw’/>
  <source file=’/data/kvm/iso/virtio-win.iso’/>
  <target dev=’hdb’ bus=’ide’/>
  <readonly/>
  <address type=’drive’ controller=’0′ bus=’0′ target=’0′ unit=’1’/>
</disk>

/data/kvm/iso/virtio-win.iso — путь до файла, который мы загрузили на сервер. В данном файле мы создали описание для монтирования устройства cdrom.

С помощью созданного файла XML мы монтируем ISO образ в CDROM на виртуальной машине:

virsh update-device WIN /etc/libvirt/qemu/guest-virtio-drivers.xml

* где WIN — имя виртуальной машины.

Установка драйверов

Подключаемся к виртуальной машине с помощью VNC. Мы должны увидеть примонтированный CD-ROM с драйверами virtio:

Примонтированный диск с драйверами

Кликаем правой кнопкой мыши по пуск и выбираем Диспетчер устройств:

Переходим в диспетчер устройств

* в ранних версиях Windows необходимо кликнуть правой кнопкой мыши по Мой компьютерУправлениеДиспетчер устройств.

В разделе «Другие устройства» кликаем правой кнопкой мыши по устройству, для которого необходим драйвер и выбираем Обновить драйверы:

Обновляем драйвер для устройства

В открывшемся окне выбираем Выполнить поиск драйверов на этом компьютере:

Выполняем поиск драйверов на этом компьютере

… и выбираем наш CD-ROM с драйверами:

Ищем драйверы на виртуальном приводе

Если система выдаст предупреждение безопасности, кликаем по Установить:

Устанавливаем драйверы от издателя Red Hat

Драйвер установлен. Повторяем процедуру для каждого устройства, для которого система не смогла установить драйвер.

Дмитрий Моск — частный мастер

Была ли полезна вам эта инструкция?

Да            Нет

  • Установка windows 10 из облака
  • Установка windows 10 microsoft com
  • Установка techstream на windows 10 64 bit
  • Установка virtualbox extension pack на windows
  • Установка openvpn сервера на windows server