Встановлення віртуалок з QEMU та Virt-Manager + virsh, SSH у віртуальні машини!

Нащо лінукс на лінуксі? Тому що віруталки це зручно. Можна постворювати різні машини для різних задач і не боятися, що ви зламаєте собі комп’ютер.

Відеоверсія з використанням Virt-Manager:

В біосі має бути увімкнута віртуалізація!

Потрібні пакунки §

pacman -S qemu-full  virt-manager virt-viewer dnsmasq dnsmasq-runit vde2 bridge-utils openbsd-netcat
	# libguestfs # для зручного керування файловими системами віртуалок
- qemu-full 			 емулятор
- virt-manager virt-viewer 	 GUI для менеджменту та взаємодії
- dnsmasq dnsmasq-runit 	 dns + dhcp сервер
- vde2 				 Virtual Distributed Ethernet блаблаа
- bridge-utils 			 Utilities for configuring the Linux ethernet bridge
- openbsd-netcat 		 TCP/IP swiss army knife

libguestfs необов’язково, можна використовувати nbd або ssh.

Також якщо ви користуєтесь не systemd, а іншими системами ініціалізації, потрібно встановити скрипти для libvirt. Наприклад, libvirt-runit для runit.

Налаштування §

  1. Конфіг демона. На systemd не треба такого робити, а на інших:
vim /etc/libvirt/libvirtd.conf
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
  1. Додати себе до групи лібвірт 1:
sudo usermod -aG libvirt <user>
# а також kvm, а libvirt-qemu не тре
  1. Стартуєм сервіс libvirt і сервіс логування (показую на runit)
ln -s /etc/runit/sv/libvirtd /run/runit/service
ln -s /etc/runit/sv/virtlogd /run/runit/service

Можна ставити віртуалку

Встановлення через командний рядок §

virt-install --name n00buntu --memory 1024 --disk path=vms/n00buntu.qcow2,size=20 --os-variant ubuntu22.10 --cdrom /home/sasha/vms/iso/ubuntu-22.04.3-live-server-amd64.iso

Але щоб працювати з машинами з вірт-менеджера, потрібно встановити посилання для з’єднання 2 :

virsh --connect qemu:///system list --all
export LIBVIRT_DEFAULT_URI='qemu:///system' # або записати це в VIRSH_DEFAULT_CONNECT_URI

або розкоментувати в .config/libvirt/libvirt.conf

uri_default = "qemu:///system"

Отримати IP віртуалки §

virsh net-dhcp-leases default

або (зручніше)

virsh list
virsh domifaddr <Name>

логінимось:

ssh <отримана_адреса>

Підвищення швидкодії шинди 10 (11?) §

 <clock offset='localtime'>
   <!-- прибрати
   <timer name='rtc' tickpolicy='catchup'/>
   <timer name='pit' tickpolicy='delay'/>
   -->
   <timer name='hpet' present='no'/> <!-- змінити на yes -->
   <timer name='hypervclock' present='yes'/>
 </clock>