- Запускаем Windows в KVM на Fedora
- Введение
- Установка KVM
- Выбор режима работы KVM
- Настройка системного сеанса KVM
- Настройка прав доступа
- Создание подключения к пулу
- Создание каталогов для образов
- Настройка пользовательского сеанса KVM
- Создание подключения к сеансу
- Создание каталогов для образов
- Настройка сети в пользовательском сеансе
- Подготовка к установке
- Создание гостевой ОС Windows 10
- Настройка гостевой ОС Windows 10
- Установка гостевой Windows 10
- Установка драйверов Virtio гостевой ОС
- Установка гостевых дополнений SPICE
- 2 комментария к записи
Запускаем Windows в KVM на Fedora
В данной статье мы подробно рассмотрим как правильно настроить систему виртуализации KVM/libvirt в Fedora и установим в качестве гостевой ОС Microsoft Windows 10.
Введение
Многие пользователи для запуска виртуальных машин до сих пор предпочитают использовать VirtualBox, поэтому в данной статье мы решили рассмотреть альтернативу, имеющую ряд серьёзных преимуществ:
- нет необходимости в установке out-of-tree модулей ядра, т.к. они уже входят в его состав;
- корректная работа на конфигурациях с активной технологией UEFI Secure Boot;
- более быстрая работа гипервизора за счёт отсутствия необходимости переключения между режимами ядра и пользователя.
Установка KVM
Первым делом установим ряд необходимых пакетов:
По окончании активируем автоматическую загрузку сервиса libvirtd при помощи systemd:
Внимание! Сразу после этого действия может отключиться текущее сетевое соединение из-за изменения в конфигурации адаптеров и появления новых виртуальных. Это нормальное явление. Именно по этой причине не следует пытаться установить KVM через SSH подключение.
Выбор режима работы KVM
KVM поддерживает работу в двух режимах:
- системный сеанс — qemu:///system — виртуальные машины будут запускаться с повышенными правами от имени пользователя libvirt с полноценной поддержкой сети и общими для всех пулами данных;
- пользовательский сеанс — qemu:///session — виртуальные машины будут запускаться с правами текущего пользователя с индивидуальным пулом и поддержкой сети при помощи qemu-bridge.
Более полное сравнение можно найти здесь (на английском языке).
Системный сеанс считается enterprise-ready решением, а пользовательский наиболее безопасным.
Настройка системного сеанса KVM
Настройка прав доступа
Для работы с виртуальными машинами внутри системного сеанса необходимо состоять в особой группе libvirt, поэтому добавим нашу основную учётную запись в неё:
Создание подключения к пулу
Запустим Менеджер виртуальных машин (virt-manager) из меню используемой графической среды.
Главное окно Virt Manager
Если в списке отсутствует пункт QEMU/KVM, добавим его, вызвав диалог создания нового подключения через меню Файл — Добавить соединение.
Создание подключения
В поле Гипервизор выберем пункт QEMU/KVM, затем установим флажок в чекбокс Подключаться автоматически и нажмём Подключиться. Новый пункт появится в списке как показано на скриншоте выше.
Создание каталогов для образов
По умолчанию предлагается использовать каталог /var/lib/libvirt/images для хранения дисковых образов виртуальных машин, однако место внутри корневого раздела у большинства ограничено, поэтому мы создадим новое на отдельном разделе диска.
Внимание! Для системного сеанса не следует указывать в качестве хранилища каталоги, расположенные внутри /home, т.к. SELinux настроен на полную блокировку доступа к домашним каталогам пользователей для любых системных сервисов и по этой причине гипервизор не сможет работать с ними.
В главном окне менеджера выделим пункт QEMU/KVM, затем в меню Правка выберем пункт Свойства подключения и переключимся на вкладку Пространство данных.
Стандартные настройки хранения образов
Создадим новый раздел диска, отформатируем его в любую поддерживающую Unix-права доступа файловую систему (рекомендуется ext4 или xfs), пропишем в /etc/fstab и смонтируем например в качестве /media/virt.
Перейдём в созданный раздел и создадим два каталога: images для дисковых образов виртуальных машин и iso для ISO образов, из которых будет производиться установка операционных систем:
В левой панели окна менеджера пространств данных нажмём кнопку Добавить пул (с символом плюс).
Добавление нового пула
В поле Название для пула с дисковыми образами укажем images, Тип — каталог в файловой системе, а Target Path — каталог на диске (в нашем случае — созданный ранее /media/virt/images). Нажмём Готово и пул появится в списке. Подтвердим сохранение изменений.
Повторим то же самое, но для ISO образов:
- название — iso;
- target path — /media/virt/iso.
Настроенные пулы хранения данных и образов
Если всё сделано верно, в левой панели появятся два новых пула — images и iso. Выберем каждый и убедимся, что в чекбоксе Автозапуск при загрузке установлен флажок. Если это не так, исправим и нажмём Применить.
Пул с именем default теперь допускается удалить, хотя это и не обязательно. Для этого выберем его, нажмём кнопку Остановить пул, а затем Удалить пул и подтвердим намерение.
На этом базовая настройка завершена и можно приступать к установке гостевых операционных систем.
Настройка пользовательского сеанса KVM
Создание подключения к сеансу
Запустим Менеджер виртуальных машин (virt-manager) из меню используемой графической среды.
Главное окно Virt Manager
В главном окне менеджера виртуальных машин, нажмём правой кнопкой мыши по QEMU/KVM, затем в контекстном меню выберем вариант Отключиться и Удалить. Подтвердим удаление.
В меню Файл выберем Добавить соединение.
Создание пользовательского сеанса KVM
В поле Гипервизор выберем пункт QEMU/KVM сеанс пользователя, затем установим флажок в чекбокс Подключаться автоматически и нажмём Подключиться. Новый пункт появится в списке.
Создание каталогов для образов
По умолчанию предлагается использовать каталог
/.local/share/libvirt/images для хранения дисковых образов виртуальных машин, однако для удобства мы создадим новые.
Это опциональное действие. Можно использовать пул default для любых целей.
В главном окне менеджера выделим пункт QEMU/KVM сеанс пользователя, затем в меню Правка выберем пункт Свойства подключения и переключимся на вкладку Пространство данных.
Настройки пула пользовательского сеанса
Создадим два каталога: images для дисковых образов виртуальных машин и iso для ISO образов, из которых будет производиться установка операционных систем:
В левой панели окна менеджера пространств данных нажмём кнопку Добавить пул (с символом плюс).
Добавление пользовательского пула
В поле Название для пула с дисковыми образами укажем images, Тип — каталог в файловой системе, а Target Path — каталог на диске (в нашем случае — созданный ранее
/virt/images). Нажмём Готово и пул появится в списке. Подтвердим сохранение изменений.
Повторим то же самое, но для ISO образов:
- название — iso;
- target path —
/virt/iso.
Настроенные пулы пользовательского сеанса
Если всё сделано верно, в левой панели появятся два новых пула — images и iso. Выберем каждый и убедимся, что в чекбоксе Автозапуск при загрузке установлен флажок. Если это не так, исправим и нажмём Применить.
Пул с именем default теперь допускается удалить, хотя это и не обязательно. Для этого выберем его, нажмём кнопку Остановить пул, а затем Удалить пул и подтвердим намерение.
Настройка сети в пользовательском сеансе
Создадим сетевой мост для виртуальных машин:
Разрешим использование моста в qemu-bridge-helper:
Добавим правила для файрвола:
На этом настройка пользовательского сеанса завершена и можно приступать к установке гостевых операционных систем.
Подготовка к установке
Для установки нам потребуются:
- официальный ISO образ операционной системы Windows 10, который можно скачать с официального сайта Microsoft (30-дневная пробная версия);
- ISO образ с набором драйверов Virtio для гостевых операционных систем;
- образ дискеты с драйверами Virtio для ранней стадии установки.
Скачаем указанные образы, скопируем их в каталог /media/virt/iso (системный сеанс), либо
/virt/iso (пользовательский сеанс).
Создание гостевой ОС Windows 10
На главной панели инструментов нажмём кнопку Создать виртуальную машину или выберем одноимённый пункт из меню Файл.
В появившемся окне мастера на первом шаге выберем пункт Локальный ISO или cdrom.
Мастер создания виртуальной машины
На втором шаге мастера нажмём кнопку Обзор, выберем из списка загруженный ранее ISO образ и нажмём Выбор тома.
Оставляем флажок в чекбоксе Automatically detect from installation media/source, чтобы Virt Manager самостоятельно подобрал оптимальные параметры для виртуальной машины и жмём Вперёд.
Установка гостевой ОС из ISO образа
Указываем выделяемый виртуальной машине объём оперативной памяти и количество ядер процессора.
Выбор ресурсов CPU и GPU
Теперь создадим локальный дисковый образ для гостевой ОС.
Выбор пространства данных для VM
Установим флажок в чекбокс Настроить пространство хранения данных, а также точку около пункта Выбрать или создать дополнительное пространство данных и нажмём кнопку Настроить.
Создание нового тома внутри пула
В левой панели переключимся на пул images, затем нажмём кнопку Создать том.
Создание нового тома
Создадим новый том для гостевой ОС:
- название — любое, но без пробелов и русских букв;
- формат — qcow2;
- максимальный размер — не менее 40 ГБ.
Выбор созданного тома хранения данных
Выберем созданный том в списке и нажмём кнопку Выбор тома.
На заключительном шаге мастера будет предложено указать название для виртуальной машины (пробелы и русские буквы также не допускаются).
Финальный шаг мастера создания VM
Обязательно установим флажок в Проверить конфигурацию перед установкой и нажмём Готово.
Настройка гостевой ОС Windows 10
Мы не будем подробно описывать все параметры конфигурации гостевой ОС, а лишь остановимся лишь на самых важных, от правильной установки которых зависит успех всей нашей задачи.
Переключимся на страницу SATA диск 1, выберем пункт Дополнительные параметры и изменим шину диска с SATA на VirtIO.
Тонкие настройки виртуального накопителя
Здесь же допускается явно задать серийный номер накопителя, который будет передан гостевой ОС (если не указано, то генерируется автоматически), а также включить поддержку процедуры TRIM в случае если хранилище было создано на SSD накопителе.
Нажмём кнопку Добавить оборудование, выберем тип Хранилище.
Подключение дискеты с драйверами
Изменим Тип устройства на Устройство чтения дискет, затем установим точку в Выбрать или создать дополнительное пространство данных и нажмём кнопку Настроить.
Выбор файла образа дискеты с драйверами
В появившемся окне переключимся на пул iso, выберем образ дискеты, нажмём Выбор тома, а затем Готово.
Переключимся на страницу Видео и в поле Модель убедимся, что установлено значение QXL. Если это не так, внесём правки.
Все остальные параметры оставим по умолчанию и нажмём кнопку Начать установку.
Установка гостевой Windows 10
Запускаем стандартную установку данной ОС, выбираем редакцию, вводим или пропускаем (для получения 30 дневной пробной версии) серийный номер, принимаем лицензионное соглашение с конечным пользователем, затем Выборочная установка ибо нам требуется создать разделы на диске и установить драйвер VirtIO для ранней стадии загрузки системы.
Когда появится сообщение об ошибке о том, что не удалось загрузить драйверы, нажмём кнопку Загрузить, а затем в появишемся окне разрешим автоматический поиск при помощи нажатия OK.
Ошибка, связанная с отсутствием драйвера VirtIO
Укажем версию драйвера Red Hat VirtIO SCSI controller для Windows 10 и нажмём Далее.
Ручная установка драйвера VirtIO
С этого момента программа установки наконец обнаружит наш виртуальный накопитель и предложит создать разделы, а затем установить на него операционную систему.
Далее весь процесс установки вполне стандартный и описывать его мы не будем.
Установка драйверов Virtio гостевой ОС
По окончании установки сразу завершаем работу виртуальной машины (Пуск — Выключение), нажимаем кнопку Показать виртуальное оборудование на панели инструментов, переходим на страницу SATA CDROM 1, жмём Browse и внутри пула iso выбираем ISO-образ с гостевыми драйверами Virtio.
Подключение образа гостевых драйверов
Применим изменения, а затем перейдём на страницу Дисковод 1, нажмём кнопку Удалить и Применить, т.к. он более нам не требуется.
Удаление образа FDD с драйверами
На панели инструментов нажмём кнопку Показать графическую консоль, а затем Включить виртуальную машину.
Откроем Проводник Windows, перейдём на виртуальный CD диск D: и запустим программу установки virtio-win-gt-x64.exe.
Запуск установки гостевых дополнений Virtio
Выберем рекомендуемые Red Hat компоненты.
Выбор компонентов пакета драйверов Virtio
Разрешим установку драйверов с цифровой подписью Red Hat, нажав Установить.
Подтверждение установки драйверов Virtio
Установка гостевых дополнений SPICE
Для того, чтобы в гостевой ОС появилась полная поддержка обмена данными с буфером обмена хостовой ОС, динамическое изменение разрешения виртуального дисплея и т.д., установим внутри гостя пакет SPICE Guest Tools по прямой ссылке.
Запустим скачанный файл и выполним установку всех предложенных по умолчанию компонентов, включая дополнительные драйверы виртуального дисплея QXL. Перезагрузим виртуальную машину для вступления изменений в силу.
2 комментария к записи
На моей системе модуль вывода видео QXL работает значительно лучше Virtio и поддерживает автоматическое изменение разрешения виртуального экрана в зависимости от размера окна virt-manager.
Драйверы QXL входят в комплект гостевых дополнений Virtio.
Драйвер Virtio тоже должен поддерживать динамическое изменения размера.