QEMU, što znači Brzi emulator (eng. Quick Emulator), je svestran alat za emulaciju i virtualizaciju otvorenog koda koji omogućava izvođenje različitih operacijskih sustava i softvera na domaćem sustavu. Pruža širok spektar značajki, uključujući punu emulaciju sustava, emulaciju načina rada korisnika i podršku za virtualizaciju hardvera. Razvijen od strane QEMU projekta, ovaj softver široko koriste programeri, testeri i istraživači kako bi stvorili, upravljali i eksperimentirali s virtualnim okruženjima.

Ključne značajke QEMU-a uključuju:

  1. Emulacija više platformi: QEMU omogućava emulaciju različitih arhitektura i izvođenje gostujućih operacijskih sustava koji se razlikuju od domaćeg sustava. Ova značajka je korisna za razvoj softvera, testiranje i pokretanje starih sustava.
  2. Puna emulacija sustava: QEMU može simulirati cijeli računalni sustav, uključujući CPU, memoriju, pohranu i periferne uređaje. To ga čini prikladnim za pokretanje potpunih virtualnih strojeva (VM) s različitim gostujućim operacijskim sustavima.
  3. Emulacija načina rada korisnika: Osim pune emulacije sustava, QEMU također može izvoditi emulaciju načina rada korisnika. To vam omogućuje izvođenje pojedinačnih binarnih aplikacija kompiliranih za različite arhitekture izravno na domaćem sustavu.
  4. Virtualizacija hardvera: QEMU podržava tehnologije virtualizacije hardvera poput KVM-a (Virtualizacija temeljena na jezgri) i Xen-a, što poboljšava izvedbu virtualiziranih okruženja prebacivanjem nekih zadataka na hardver domaćeg sustava.
  5. Snimanje i kloniranje: QEMU vam omogućava stvaranje snimki pokrenutih virtualnih strojeva, hvatajući njihovo stanje u određenom trenutku. To je korisno za testiranje i povrat na prethodne konfiguracije. Kloniranje omogućuje brzo dupliciranje virtualnih strojeva.
  6. Mrežno povezivanje i I/O: QEMU pruža različite mogućnosti umrežavanja, uključujući umrežavanje načina rada korisnika i umrežavanje mosta, omogućujući VM-ovima komunikaciju međusobno i s vanjskom mrežom. Također podržava niz uređaja za unos i izlaz.
  7. Podrška za više platformi: QEMU radi na različitim platformama, uključujući Linux, macOS, Windows i druge operacijske sustave slične Unixu.
  8. Otvoreni kod: QEMU je softver otvorenog koda koji je izdan pod GNU Općom javnom licencom (GPL) i aktivno se razvija od strane zajednice suradnika.

QEMU-ova svestranost čini ga neophodnim alatom za različite primjene, kao što su razvoj softvera, testiranje, emulacija sustava, upravljanje virtualnim strojevima i više. Mogućnost emulacije različitih arhitektura i podrška za različite gostujuće operacijske sustave čini ga vrijednim alatom za razvoj i istraživanje preklopnih platformi i arhitektura.

Instalacija

Prvo ćemo ažurirati sustav:

sudo apt update && sudo apt upgrade

Zatim instaliramo paketiće:

sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon

Treba nam i servis:

sudo systemctl enable --now libvirtd

E sada, postoji i GUI alat s kojim možemo ovo napraviti ali zašto koristiti Linux a ne koristiti bash skripte?

QEMU koristi virtualni hard disk kojega moramo napraviti sa naredbom:

qemu-img create -f qcow2 ./40gb_windows8.qcow2 40G

Zatim nam treba instalacijska skripta. Skripta nam služi samo sa instalaciju Windows 8. Skriptu pravimo sa:

touch start_windows8_installation.sh
chmod +x start_windows8_installation.sh

A sadržaj je:

#!/bin/bash

VIRTUAL_DISK="./40gb_windows8.qcow2"
WINDOWS_ISO="./Windows_8.1_Pro_X64.iso"

RESOLUTION="800x600"  
SOCKET_PATH="/tmp/qemu_vnc_socket"  
                   
qemu-system-x86_64 -m 2G \
                   -boot d \
                   -drive file="$VIRTUAL_DISK",format=qcow2 \
                   -cdrom "$WINDOWS_ISO" \
                   -vga std \
                   -rtc base=localtime \
                   -usb \
                   -device usb-tablet \
                   -vnc unix:"$SOCKET_PATH" \
                   -k hr ;

Treba nam naravno i Window 8 iso datoteka. Zašto Windows 8? Pa zato što je “lakši” od Windows 10.

Pokrenimo skriptu:

./start_windows8_installation.sh

VNC (Virtualna mrežna veza) je tehnologija koja omogućava udaljeni pristup i upravljanje računalom putem internetske ili lokalne mreže. Osnovna svrha VNC-a je prikazivanje udaljenog zaslona i omogućavanje interakcije kao da ste pred računalom. To je korisno za tehničku podršku, dijeljenje radnog prostora i upravljanje udaljenim računalima bez fizičke prisutnosti.

Za prikaz ćemo koristiti VNC protokol za koji nam treba paketiće:

sudo apt-get install ssvnc tigervnc-viewer

Da bi izbjegli svakojake sigurnosne probleme koristimo file socket, odnosno datoteku koja nam služi za VNC prijenos umjesto internet porta.

I na kraju naredba koja nam daje prikaz:

vncviewer /tmp/qemu_vnc_socket