Windows 7 не видит virtio драйвера

Обновлено: 06.07.2024

Я решил перевести заметку из proxmox wiki на тему рекомендаций по установке в качестве гостевой системы Windows 10. Там нет каких-то особых и критичных замечаний. Просто последовательно изложен порядок рекомендуемых действий и настроек для максимального быстродействия и стабильной работы системы.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Введение

В данной статье будут даны общие рекомендации, так называемые best practices на тему установки Windows 10 или 11 на гипервизор Proxmox. Данное руководство можно использовать как how to для проверки себя во время настройки виртуальных машин.

Подготовка к установке

Для того, чтобы получить хорошее быстродействие операционной системы Windows на хосте Proxmox, мы установим Windows VirtIO Drivers во время установки VM.

  • Создайте новую виртуальную машину, выберите тип "Microsoft Windows 10/2016/2019" и активируйте функцию "Qemu Agent" на вкладке System. Далее укажите свой iso образ в качестве источника установки.
  • В качестве Bus/Device для виртуального диска укажите SCSI, контроллер должен быть VirtIO SCSI. Можете указать опцию кэширования Write back. Это увеличит быстродействие, но есть некоторые риски потери данных. Подробно про варианты кэширования я писал отдельно. Укажите параметр Discard для более эффективного использования места на диске. Этот параметр работает примерно так же, как технология TRIM в SSD дисках. Подчищает реально удаленные данные с диска, уменьшая занимаемое место.
  • Настройки памяти и процессора укажите в зависимости от потребностей виртуальной машины. Модель сетевой карты укажите VirtIO (paravirtualized).
  • Для того, чтобы во время установки системы использовать драйверы virtio, загрузите iso образ с ними. Добавьте новый CD-ROM к VM и подключите этот образ.
  • Теперь у вас всё готово для установки системы Windows.

Выбор Windows OS

Активация Qemu Agent

Настройки виртуального диска Windows в Proxmox

Virtio (paravirtualized) сетевая карта Windows

Запуск установки Windows в Proxmox

  • После запуска установки системы, подключитесь к консоли виртуальной машины.
  • Дойдите до этапа установки, где нужно выбрать жёсткий диск. Скорее всего список доступных дисков будет пуст.
  • Нажмите "Загрузить драйвер" для того, чтобы установить драйвер жесткого диска и сетевой карты.
  • Для установки драйвер диска перейдите в директорию vioscsi\w10\amd64 и подтвердите выбор. Выберите "Red Hat VirtIO SCSI pass-through controller". Ваш виртуальный жёсткий диск должен появиться в списке для установки на него системы.
  • Повторите то же самое для выбора драйвера сетевой карты. Он находится в директории NetKVM\w10\amd64. Выберите "Redhat VirtIO Ethernet Adapter".
  • Драйвер выделения динамической оперативной памяти находится в Balloon\w10\amd64. Перейдите в эту директорию и выберите драйвер "VirtIO Balloon Driver".
  • Загрузка этих трёх драйверов позволит установщику Windows определить всё оборудование, так что можно продолжить установку системы в обычном режиме.

Подробно описанную процедуру можно лицезреть на видео на примере установки Windows Server 2016 на ProxMox. Установка Windows 10 или 11 будет проходить точно так же.

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

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

Выбор драйвера scsi

Драйвер для Red Hat VirtIO SCSI pass-through controller

Драйвер для Red Hat VirtIO SCSI pass-through controller

Установка Windows в Proxmox

Установка Qemu Guest Agent на Windows

Для того, чтобы корректно работал Guest Agent на Windows, необходимо его установить отдельно. Он находит в iso образе virtio в корне диска, в папке guest-agent. Для x64 архитектуры установочный файл будет называться qemu-ga-x86_64.msi. Просто запустите установку и дождитесь окончания. Больше ничего делать не надо, агент автоматически установится и запустится.

Если всё прошло успешно, то вы сразу же в веб интерфейсе Proxmox увидите ip адреса на сетевых интерфейсах Windows.

Драйвера и Службы

Чтобы установить все недостающие драйвера для корректной работы Windows на Proxmox, запустите virtio-win-gt-x64.msi в корне диска virtio. Можете убрать установку тех драйверов и служб, что вы точно не будете использовать. Например, Qxl и Spice. После этого не только ip адреса, но и использования оперативной памяти должны корректно отображаться в веб интерфейсе.

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

Установка Guest-agent

Установка virtio drivers

Список оборудования Windows в Proxmox

Формат диска raw vs qcow2

Историю с выбором типа диска в proxmox я разбирал подробно в отдельной заметке. В общем случае формат raw обеспечивает лучшее быстродействие, но у qcow2 есть дополнительный полезный функционал. Речь идёт о технологии copy on write и возможности делать Live Snapshots. В настоящий момент формат qcow2 выбирается по умолчанию.

VirtIO drivers

Make it really easy: Build your ISO with drivers already included:

Можно достаточно просто подготовить свой образ операционной системы Windows с интегрированными VirtIO драйверами. Для этого можно можно воспользоваться отдельной статьёй - Windows guests - build ISOs including VirtIO drivers.

Проблема с драйвером создания виртуальной машины Windows на oVirt

oVirt может выбрать тип диска виртуальной машины при создании виртуальной машины. Если вы используете режим IDE, общие окна могут распознавать виртуальный диск во время установки, но в этом случае производительность ввода-вывода относительно низкая. При создании виртуальной машины, если вы используете virtio для повышения производительности ввода-вывода виртуальной машины, сетевая карта, управляемая virtio, также расширит исходные 100 Мбит / с до гигабитного.

1. Установите драйвер virtio

2. Вручную скачайте драйвер

Последняя версия в настоящее время virtio-win-0.1.160


3. Загрузите файл драйвера

Найдите настроенный домен хранения ISO и скопируйте файлы virtio-win-0.1.160_amd64.vfd, virtio-win-0.1.160.iso, virtio-win-0.1.160_x86.vfd в соответствующий каталог

4. Загрузите, когда система Windows установленаДрайвер VirtIO

Нажмите наCompute → Virtual Machines.

Нажмите наRun → Run Once.

открытыйBoot Optionsменю

выбратьAttach FloppyВыпадающий список и выберитеvirtio-win.vfd.

выбратьПрикрепите CD выпадающий список и выберите окно iso файл

волиCD-ROM установлен в качестве первого загрузочного элемента

Настроить другие необходимыеОпция Run Once

Нажмите наOK.

5. Установите драйвер виртуального устройства в системе Windows.

Нажмите наCompute → Virtual Machines.

Нажмите наRun → Run Once.

открытыйBoot Optionsменю

выбратьAttach CDВыпадающий список и выберитеvirtio-win-0.1.160.isoфайл

волиCD-ROMУстановить в качестве второй загрузочной записи

Настроить другие необходимыеRun Once опции

Нажмите наOK.

После запуска виртуальной машиныкомпьютер →собственности →Диспетчер устройствВыберите неопознанное оборудование, затемОбновить драйверВыберите вCD-ROMСканирование и установка

Интеллектуальная рекомендация

Поверните строку в целые числа

Тема Описание Преобразуйте строку в целое число (реализация функции integer.valueof (строка), но строка не совпадает 0), требуя функции библиотеки, которая нельзя использовать для преобразования целых.

Docker создает репликацию Redis Master-Slave

Centos установить докер быстрый старт докера Создать Dockerfile Поместите файл на сервер Linux, создайте папку / usr / docker / redis и поместите его в этот каталог Выполните следующий код в каталоге .


Установка GateOne на новом CentOS7

Установка GateOne на новом CentOS7 В последнее время исследуются такие инструменты, как WebSSH2, в настоящее время требуется встроить терминал ssh в веб-приложение и найти GateOne. GateOne - это веб-в.


Примечания к исследованию Qt4 (5), QWaitCondition of QThread Learning


Практические занятия: решения проблем системы управления обучением

Сразу после получения задания будет много трудностей и много проблем. Хорошо иметь проблему, а это значит, что вы можете получить новые знания. Неважно, есть ли проблемы, ключ в том, как их решить. пр.

Вам также может понравиться


искробезопасная практика (5) обратный индекс

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


Решение центра тяжести неправильного многоугольника

Справочник статей Во-первых, решение центра тяжести неправильных многоугольников 1.1 Метод расчета треугольника центра тяжести 1.2 Метод расчета площади треугольника 1.3 Метод расчета площади полигона.

Задача: запустить некоторое количество виртуальных машин с Windows на типовом Линукс-сервере.

Решение: любой современный Linux-дистрибутив, «родная» технология виртуализации KVM, Windows 2003 и настройки, описанные ниже.

Выбор гостевой ОС

Windows XP работает под Linux KVM неустойчиво. Основные ошибки — потребление 100% процессора процессом csrss.exe (вплоть до обрыва RDP-сессий) и BSOD с кодом IRQL_NOT_LESS_OR_EQUAL в HAL.DLL. Если удалось достичь стабильной работы, обязательно отключите автоматическую установку обновлений! По нашему опыту, для работы WinXP под KVM они стали главным источником проблем.

Windows 7 работает нормально, но согласно счётчикам Proxmox, требует для работы более 3 гигабайт ОЗУ.

  • работает надёжно, в т.ч. с virtio,
  • проблем совместимости с XP не имеет (даже внешний вид может быть сделан таким же),
  • занимает в ОЗУ менее 800 мегабайт.

Для ознакомительных целей годится любой опубликованный на RuTracker дистрибутив.

Первый запуск и virtio

Параметр "-vnc . " имеет смысл только на сервере без GUI. По умолчанию KVM откроет окно через SDL. В обоих случаях Ctrl+Alt+Shift+1 и Ctrl+Alt+Shift+2 служат для переключения внутри окна между гостевой и управляющей консолью.

Параметр " -net nic,model=virtio. " создаст внутри ВМ сетевую карту неизвестного Windows типа, для которого мастер настройки оборудования предложит выбрать драйвер. Парный ему параметр " -net tap. " создаст в хост-ОС сетевой интерфейс для связи с ВМ. Назначение IP-адресов, настройка DHCP и выхода во внешний мир через ProxyARP, NAT или Bridge не имеют прямого отношения к Windows, поэтому здесь не рассматриваются.

Теперь про самое важное на данном этапе, т.е. про диски.

HDC — это ISO-образ с дистрибутивом Windows. Имя файла взято из торрента в предыдущем разделе. С него внутри ВМ произойдет первая загрузка системы (" -boot order=d ").

HDA — это пустой образ диска, на который будет устанавливаться система. Создан командой " kvm-img create -f qcow2 vm_10.img 50G ".

HDB — это пустой образ диска, созданный через " kvm-img create -f qcow2 temp.img 1G " с единственной целью — показать Windows устройство незнакомого типа, чтобы она затребовала драйвер для него. Установка в систему драйвера virtio для временного диска позволит переключить затем с IDE на virtio системный диск.

После того, как установка системы и драйверов будет полностью завершена, в команде запуска следует убрать "-boot" и все строки "-drive", кроме первой, т.к. временный диск и ISO-образы станут не нужны (обратите внимание на добавленный " if=virtio "!):

Рекомендуемые настройки Windows

Во-первых, по умолчанию Windows создаёт при BSOD'ах полный дамп памяти. В лучшем случае, это существенно замедлит перезагрузку. В худшем, приведёт к полному зависанию.

Во-вторых, автоматические обновления по умолчанию включены, и есть риск, что одно из них сделает работу под KVM нестабильной.

  • Автоматическое обновление: Отключить
  • Дополнительно => Отчет об ошибках => Отключить
  • Дополнительно => Загрузка и восстановление => Параметры => Отказ системы => Запись отладочной информации => Малый дамп памяти (64КБ)

После этого можете приступать к установке драйверов для диска (virt-stor) и сетевой карты (virt-net). После их установки в Диспетчере оборудования появятся «Red Hat VirtIO SCSI Controller», «Red Hat VirtIO SCSI Disk Device» и «Red Hat VirtIO Ethernet Adapter».

Ballooning

Традиционный подход — сразу при запуске виртуальной машины (ВМ) выделять ей блок ОЗУ заданного размера, например, 512 мегабайт. Его недостаток — в те моменты, когда в памяти ВМ есть неиспользуемое пространство, в других ВМ и хост-системе её может не хватать.

Memory ballooning — это механизм динамического (а) выделения хост-ОЗУ для ВМ по мере необходимости и (б) возвращения неиспользуемых блоков по мере освобождения. Благодаря ему становится возможным одновременно запускать множество ВМ, суммарный объём виртуального ОЗУ в которых больше объёма физического ОЗУ в хост-системе, при условии, что они не станут использовать максимально разрешённый объём все сразу. Благодаря этому память хост-системы распределяется между ВМ так же гибко, как между обычными процессами.

Создание виртуальных ресурсов, превышающих физические по объёму, обозначается любимыми для многих хостеров терминами «overcommit» и «overselling».

    (memory overcommitment manager) в хост-системе, меняющего объём ОЗУ для ВМ на основании запросов из неё,
  • VMM (менеджера виртуальной памяти) в гостевой ОС, взаимодействующего с MOM через виртуальный PCI-контроллер.

Гостевое устройство для связи с MOM диспетчер оборудования (devmgmt.msc) Windows увидит как «PCI standard RAM controller» неизвестного типа. В отличие от virt-stor и virt-net, драйвер к нему не будет предложено установить автоматически. Вместо этого, следует зайти в свойства устройства, на вкладке «Драйвер» выбрать обновление и вручную указать путь к balloon.inf на VirtIO CD (пруф). После этого устройство переименуется в «VirtIO Balloon Driver».

По умолчанию Windows 2003 разрешает выключать себя единственным способом — ввести логин-пароль, выбрать Пуск => «Завершение работы», ввести примечание, нажать «OK». Разумеется, на VDS-ферме такой подход неприемлем. KVM (и QEMU) умеет эмулировать ACPI. Команда «system_powerdown» аналогична нажатию кнопки питания на физическом компьютере, но Windows её проигнорирует. Лечится следующим REG-файлом:

Кэширование

Если образ гостевого диска хранится на VDS-ферме в виде файла, кэширование гостевых файлов может оказаться двойным — сначала их кэширует гостевая ОС при обращениях к виртуальному диску, затем ОС фермы при обращениях к физическому.

  • none — хост-система не кэширует файл-образ ни на чтение, ни на запись
  • writeback — запись выполняется немедленно, чтение кэшируется
  • writethrough — чтение и запись кэшируются

Все без исключения источники в Сети советуют не использовать writethrough как наиболее медленный. По субъективной оценке, для ВМ с Windows оптимален writeback, для ВМ с Linux и FreeBSD — none.

Зависания сети

Рекомендации, предлагаемые участниками обсуждений (обновление qemu-kvm и ядра, изменение параметров командной строки, использование vhost-net), к сожалению, пока не сумели её решить.

При каждом подвисании приходится заходить на консоль ВМ по VNC и выполнять сброс сетевого интерфейса, после чего трафик снова начинает ходить нормально.

Автоматизировать данное действие в Windows можно с помощью AutoIt, если создать файл PingFailed_ResetNic.au3 и вызывать его Диспетчером заданий каждые несколько минут:

Подобное «решение» не везде может рассматриваться как удовлетворительное, но в ряде случаев его достаточно, чтобы свести негативный эффект к приемлемому минимуму, позволяющему дождаться выхода исправления вместо более кардинальных мер.

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

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

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


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

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


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


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


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

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


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


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

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


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

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

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

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

Читайте также: