Хочемо ми того чи ні, але програми, для яких необхідна Windows, нікуди з офісів не зникли. У ситуації, коли їх використання безальтернативно, краще мати віртуальну ОС, наприклад для того, щоб підключитися до аудіо-конференції через Skype for Busyness.
У цій статті я розповім, як можна з мінімальними витратами встановити гостьову ОС Windows на гіпервізора QEMU за допомогою графічного інтерфейсу virt-manager. Ми завдамо на карту всі підводні камені і рифи, а жучків акуратно посадимо в банку.
підготовка
Найперший крок - настройка параметрів ядра. Обов'язкова підтримка KVM і vhost-net. бажана підтримка тунельних інтерфейсів [1] і мережевого моста [2]. Повний список на Gentoo вікі-сторінці QEMU.
Підготуйте дисковий простір. Я виділив 70 GiB, і Windows 8.1 за пару місяців використовувала майже 50 GiB так, що для поновлення до 10-ї версії місця на диску не вистачило.
Далі, нам знадобиться набір редхатовскіх драйверів virtio-win. Якщо у вас встановлений RedHat, досить запустити
і образ iso буде записаний в каталог / usr / share / virtio-win /. Також можна його скачати з репозитаріїв Fedora.
Переконайтеся, що підтримка апаратної віртуалізація включена в BIOS / UEFI. Без цього KVM не буде діяти. а virt-manager видасть ось таку помилку.
Як перевірки можна прочитати файл пристрою.
Якщо файл не виявлений, а опції ядра виставлені вірно, значить справа в налаштуваннях BIOS / UEFI.
Встановлюємо потрібні пакети.
Для RedHat 7 досить встановити тільки virt-manager. так як QEMU встановлюється за умовчанням.
Дебіанщікам треба встановити пакет qemu.
Можна тепер переходити до установки.
Запуск і інсталяція
Запускаємо virt-manager і створюємо нову віртуальну машину з локального сховища.
Вказуємо шлях до установчого iso образу Windows.
Далі, на 3-му і 4-му кроці буде вибір кількості CPU, обсяг RAM і розмір дискового простору, після чого на 5-му кроці слід вибрати додаткові конфігурації перед налаштуванням.
Вікно додаткових налаштувань потрібно для того, щоб виконати фінт вухами. Його сенс у тому, щоб додати віртуальний флопарь з драйверами з набору virtio-win. Це дасть можливість змінити тип жорсткого диска: видалити диск з шиною IDE і додати його ж, але з шиною VirtIO. Детально, в доках RedHat.
Прописуємо драйвер /usr/share/virtio-win/virtio-win.vfd і додаємо віртуальний флоппі-диск. Потім переходимо на вкладку [Шина] Диск № та проробляємо фінт з заміною шини диска: видаляємо з IDE і додаємо з VirtIO.
Мало не забув сказати, для чого потрібен цей фокус. Фахівці стверджують, що з шиною VirtIO, продуктивність диска відчутно вище.
В принципі, вже можна починати інсталяцію, але ми забули додати CD-ROM з драйверами virtio-win. а вони нам стануть в нагоді, коли диспетчер пристроїв засяє жовтими іконками знаку.
Ну ось тепер можна почати установку.
Ну добре, почали ми установку. А що, якщо інсталятор Windows попросить змінити диск. Мені через це довелося пару раз перервати і почати всю карусель заново, але з вами такого вже ніколи не станеться.
Драйвера і доведення
По закінченню процесу установки диспетчер пристроїв недорахується деяких драйверів. Імовірно, це можуть бути:
Потрібно згодувати їм драйвера з набору virtio-win. що підключені через IDE CD-ROM в попередньому розділі.
Робиться це стандартно: правою кнопкою на жовтий знак питання, оновити драйвера, шлях до файлів.
Ось весь список, а це сусідня сторінка RedHat доків. де установка драйверів показана докладніше.
- Balloon. the balloon driver, affects the PCI standard RAM Controller in the System devices group.
- vioserial. the serial driver, affects the PCI Simple Communication Controller in the System devices group.
- NetKVM. the network driver, affects the Network adapters group. This driver is only available if a virtio NIC is configured. Configurable parameters for this driver are documented in Appendix E, NetKVM Driver Parameters.
- viostor. the block driver, affects the Disk drives group. This driver is only available if a virtio disk is configured.
устаткування
Тут поступово починається область безмежних можливостей і 101 способів зробити по-своєму, тому я покажу, як це працює у мене, а ви можете налаштувати більш точно під свої потреби.
Підключатися до ВМ можна різноманітно.
- Через графічний інтерфейс virt-manager
- Вибрати дисплей VNC-сервер і підключатися через vnc-клієнта
- Встановити Spice-клієнта і підключатися через нього
- До Windows можна підключитися через rdp, якщо включений термінальний сервер
У мене варіант 3, для Gentoo це програма spice-gtk
Такий простий вибір мережевих опцій дає результат перевершує очікування. Створюються 3 додаткових мережевих інтерфейсу: virbr0, virbr0-nic, vnet0.
У iptables створюється звід правил, ось основні:
Повторюю, все це libvirtd створює сам, нічого для цього робити не треба. В результаті маємо нормальний роутинг між хостом і ВМ, можна обмінюватися файлами по ssh / scp. Можна піти далі і створити кулі на Windows, а на Linux хост налаштувати samba, але мені це здалося надмірним.
На завершення
Важко розповісти в одній статті про всі аспекти Windows + QEMU / KVM, тому завершимо в наступній. А там буде самий смак, командний інтерфейс, дозвіл екрана максимум 1024x768, Сцилла pulseaudio і Харибда мережі, команда virsh і настройка ВМ з конфиг файлу, фейл з tpm. двійковий синтаксис пристроїв та інші тихі радощі.