Нащо лінукс на лінуксі? Тому що віруталки це зручно. Можна постворювати різні машини для різних задач і не боятися, що ви зламаєте собі комп’ютер.
Відеоверсія з використанням 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.
Налаштування §
- Конфіг демона. На systemd не треба такого робити, а на інших:
vim /etc/libvirt/libvirtd.conf
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
- Додати себе до групи лібвірт 1:
sudo usermod -aG libvirt <user>
# а також kvm, а libvirt-qemu не тре
- Стартуєм сервіс 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?) §
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/sect-virtualization-tips_and_tricks-libvirt_managed_timers
- https://gist.github.com/matt-FFFFFF/e5df7062b344b38b7a33b86a0df7b4c5
<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>