Virtuelle maskiner med KVM og Virt-manager
Med KVM og Virt-manager kan du afvikle virtuelle maskiner på fx. Linux Mint 19 og Ubuntu.
Last updated
Med KVM og Virt-manager kan du afvikle virtuelle maskiner på fx. Linux Mint 19 og Ubuntu.
Last updated
Jeg formoder at vi alle har lidt forskellige behov for, at afvikle en virtuel maskine. I mit tilfælde har jeg indimellem et behov for adgangen til Microsoft Excel på farten, selvom jeg kun har min Linux-maskine med. Personligt har jeg dårlig erfaring med Wine, når det kommer til Microsoft Office-pakke, efter de flyttede til "skyen", så jeg benytter i stedet en virtuel maskine med Windows 7.
Inden vi går i gang med opsætningen af KVM (Kernel Virtual Machine) og Virt-Manager, skal vi lige undersøge om din processor er klar til hardware virtualisering.
Din processor omtales som CPU i resten af denne how-to.
I /proc/cpuinfo
kan du se om din CPU understøtter hardware virtualisering. Det er nemmest at kigge under flags:
. Understøttes hardware virtualisering, vil der stå svm
(Secure Virtual Machine) hvis du har en AMD-CPU, eller vmx
(Virtual Machine Extensions) hvis du har en Intel-CPU.
Du kan hurtigt farve vmx eller svm med følgende kommando: grep --color -E 'vmx|svm' /proc/cpuinfo
Finder du hverken vmx eller svm-udtrykket, kan det skyldes at du endnu ikke har aktiveret Hardware Virtulization i BIOS. Opbygningen af menu-strukturen i BIOS er meget forskelligt, alt efter hvad der kommer med din computer. Jeg underlader derfor at guide yderligere herom, men du kan evt. læse mere her. Normalt tilgås BIOS ved klik på F2, ESC eller Delete under opstart af maskinen.
Da vi nu ved at maskinen understøtter VT-x, kan vi fortsætte til næste step.
Vi er nu klar til at påbegynde installationen af henholdsvis KVM, Virt-Manager og andre påkrævede pakker. KVM styres via kommandoer i din terminal, men med Virt-Manager får du et grafisk interface der gør det hele lidt nemmere at gå til.
ebtables og dnsmasq benyttes til netværks-relaterede ting. qemu-utils indeholder bl.a. værktøjet qemu-img som skal benyttes, hvis man ønsker at lave non-raw file images. Jeg anbefaler selv at man laver raw-storage volumes, da disse har bedre performance, dog færre features. For at kunne vise grafisk output fra vores VM, skal gir1.2-spiceclientgtk-3.0 installeres.
Herefter skal vi sikre at du har de tilstrækkelige rettigheder.
Brug først sudo virsh -c qemu:///system list
til at tjekke, om virsh virker. Hvis dette virker, så fortsæt uden sudo for at tjekke om din bruger har rettigheder hertil.
Som udgangspunkt vil kommandoen fejle uden sudo. Løsningen er dog ganske ligetil, da vi hurtigt kan oprette en gruppe, og herefter tilføje vores bruger hertil. Normalt findes gruppen i forvejen, men hvis alle tre kommandoer afvikles, er du på den sikre side, hvis du efterfølgende vil rode mere med libvertd og kvm.
Herefter skal du genstarte din computer.
Når KVM og Virt-manager er installleret og vi har rettigheder hertil, så skal du blot have oprettet din nye virtuelle maskine.
Første gang kan det være lidt rodet, hvis man kommer fra fx. Oracle Virtual Box, men det kræver blot lidt tilvænning.
Du er velkommen til at stille spørgsmål nedenfor, og så skal jeg nok forsøge at lave opdateringer til guiden, om nødvendigt. Du kan dog finde step-by-step guide til resten ved howtogeek. Dernæst findes endnu en guide på dennisnotes.com hvor der også bliver nævnt væsentlige ting i forbindelse med opsætningen. Fx. raw-volume, fremfor non-raw. Caching metoder, valg af ISO-image, og opsætningen af det virtuelle netværksinterface (NIC).
I modsætningen til fx. VirtualBox, skal du indimellem arbejde lidt mere for at få tingene til at køre som smurt. Der kan forekomme fx. manglende biblioteker mm. Læs derfor altid fejlbeskederne når de forekommer. Du er velkommen til at spørge her, om nødvendigt.
Hvis du får "kabret" din cursor i en virtuel maskine, skal du blot bruge din venste Ctrl
og Alt
for at slippe cursoren fri fra din virtuelle maskine.
Find ISO-filen lige her, og læs mere her.
Som med fx. VMWare og VirtualBox, findes der også gæste-drivers til Windows afviklet via KVM. Det kendes som spice guest tool, og kan findes lige her - du kan hente nyeste version her.
Med gæste-driverne får du bedre understøttelse af grafik, copy/paste understørrelse, automatisk tilpasning af opløsing og en del andet. Se evt. mere her under Windows binaries.
Med virsh net-list --all
kan du se, om du har fået sat NAT-baseret netværk op som standard. Output skal være:
Har du ikke det, kan du læse mere her
Du kan desuden angive virsh til at starte automatisk med dit system, med kommandoen virsh net-autostart default
. Og hvis du vil angive det som standard, kan det gøres med virsh net-start default
. Du skal dog sikre at netværket er afbrudt, når du afvikler denne kommando.
Når libvirt
's default netværk er kørende, vil du se et isoleret bro-netværk på din værts-maskine. Du kan se bro-interfaces med brctl show
.
Hvis du stadig ikke har adgang til internettet via Internet Exporer, så forsøg at ping google.com via CMD. Lykkedes dette, så skal du forsøge med en anden browser. Kopier .exe-filen via et USB-stick, hvis du ikke har fået oprettet et netværk-share, eller alternativt så inkluder det i din .ISO-fil med drivers.
Konfigurationsfilen til din VM findes oftest under /etc/libvirt/qemu/
. Det kunne fx. være /etc/libvirt/qemu/windows7.xml
.
KVM kan rigtig mange ting, og i modsætning til andre løsninge, så er det stort set ingen begrænsninger. Selv har jeg kigget på fx. Looking Glass der tillader pass-through af et grafikkort, skærm, tastatur og mus. Du kan reelt slippe for dual-booting og fx. Wine. Bemærk dog at dette kræver at du har et andet grafikkort til rådighed, og at et dedikeret grafikkort i en bærbar, ikke nødvendigvis er nok. Disse kort er rent teknisk omtalt som muxless/non-MXM Optimus kort, og har ikke deres eget display output. Læs meget mere om det lige her. Hvis det har fanget din interesse og har du en bærbar hvor du alligevel vil forsøge dig frem, så kig forbi dette issue på Github. En verden åbner sig for iOOMU, initramfs, vfio_pci og meget andet.
God fornøjelse med opsætningen af KVM og Virt-manager. Jeg beklager at denne how-to er ganske rodet. Det skyldes at jeg undervejs har indsamlet en masse links samt erfaringer undervejs.
Når du starter din VM første gang, skal du huske at have tildelt en .ISO fil til et diskdrev, og dernæst også at have ændret boot-order, så maskinen starter via dette drev.
Benytter du guiden fra dennisnotes.com, skal du være OBS på, at der skal indlæses drivers under installationen af Windows - ellers kan drevet ikke findes.
OBS: Med virtio-drivers og andet nævnt i Manglende drev ved Windows-installation, er du nødsaget til at hente en .ISO-fil med flere drivers på. På denne findes også guest-agent som du med fordel kan installere. Dernæst findes bl.a. mappen NetKVM hvor netværksdrivers findes. Derfor kan det være en fordel at hente dette image og mounte som disk nr. 2. Du kan finde en glimrene guide til installation af driversne herfra på redhat.com.
Enhed
Driver fra image
Ethernet Controller
NetKVM
PCI Device
Balloon
PCI Simple Communications Controller
vioserial