Qemu – emulatore virtuale di sistemi operativi

  • Categoria dell'articolo:Linux / Tutorial

Qemu è l’acronimo di Quick EMUlator, un software che crea delle virtual machine ( ovvero macchine virtuali da questo momento indicate con “VM”) che consentono di far “girare” (emulare) un sistema operativo all’interno di una macchina ospite purché con architettura x86, AMD64, PowerPC, MIPS e ARM. Supporta Linux, Windows e Mac.
Disponibile per Linux, Windows e Mac.
Sito ufficiale https://www.qemu.org

Installazione su Linux Mint
  1. da terminale digita il comando:
    apt install bridge-utils virt-manager
  2. Dal menu lancia il programma [Virtual Machine Manager].
  3. Se ricevi l'errore "Unable to connect to libvirt qemu:///system" prova a riavviare il computer.

Crea una macchina virtuale
  1. click [Menu/File/New virtual machine].
  2. scegli [local install].
  3. seleziona la ISO contenente il sistema operativo da installare.
    nel caso Qemu non abbia i permessi per accedere alla ISO, esegui la correzione come proposto dal programma.
    tuttavia è possibile che la ISO risieda in uno spazio non accessibile e che dia errore al momento dell'installazione.
    copia la ISO in un hardisk locale.
  4. imposta la memoria ram e il numero di processori da associare alla VM.
  5. gestisti lo spazio destinato alla VM.
    • spunta [v] enable storage...
    • digita la dimensione in GiB.
    • spunta (o) select or create... + click [Manage...].
    • se già non esiste, crea un Pool dove allocare la tua VM.
      • click [+ Add Pool].
      • dai un nome al Pool.
      • seleziona il tipo di Pool, se locale: dir:Filesystem Dir.
      • click [Browse] e seleziona la dir che conterrà il Pool.
    • crea il volume.
      • click [+ Create new volume].
      • dai un nome al volume, solitamente il nome del sistema operativo.
      • format: raw
      • digita la capacità della VM.
      • spunta [v] Allocate entire volume now.
    • attendi la creazione del volume.
    • seleziona il volume appena creato e click [Choose volume].
    • nella finestra "New VM step 4/5" click [Forward].
    • nella finestra "New VM step 5/5" scegli iltipo di network:
      • NAT : la VM sarà isolata dal resto della intranet, ma potrà comunque accedere ad internet.
      • Bridge : la VM farà parte della intranet e riceverà un IP dal modem/router DHCP.
        la scelta Bridge non viene ben supportata das Qemu.
      • Macvtap : funziona per OS Linux Debian, ma potrebbe non funzionare con altri OS.
        • device name: il nome della scheda di rete delpc host, es. enp0s31f6.
        • device model: e1000e
    • il programma lancia l'installazione del OS dalla ISO selezionata.

Avvia una macchina virtuale

Dalla finestra di [Virtual Machine Manager] seleziona la VM e click su [> Power on].

Aggiungi una cartella condivisa
  1. aggiungi la cartella da condividere alla VM.
    1. dal programma VMM seleziona la VM e click [open].
    2. click [details].
    3. click [Add hardware].
    4. seleziona [Filesystem].
    5. seleziona il driver: "virtiofs" per Linux, "virtio-9p" per Windows.
    6. click [Source path/Browse].
    7. click [Browse local], seleziona la cartella da condividere, click [open].
    8. digita il nome con cui la cartella verrà condivisa nella VM, es xxpcnnnnName
    9. click [finish].
  2. crea il punto di mount nella VM Linux.
    1. crea una cartella nel punto di mount con il nome digitato  al punto 1.h
      se necessario esegui esegui con i privilegi di admin, da terminale digita:
      mkdir /mnt/xxpcnnnnName
    2. monta la cartella,da terminale digita:
      sudo mount -t virtiofs xxpcnnnnName /mnt/xxpcnnnnName
    3.  
  3. modifica il file [/etc/fstab] in modo damontare la cartella ad ognni avvio della VM.
    1. apri il file [/etc/fstab] con l'editor, da terminale digita:
      sudo nano /etc/fstab
    2. aggiungi la seguente riga:
      xxpcnnnnName /mnt/xxpcnnnnName virtiofs defaults 0 0
  4. crea il punto di mount nella VM Windows.
    1. scarica ed installa WinFSP da https://winfsp.dev/rel/
    2. scarica la ISO Virtio-Win da https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso
    3. apri [Device Manager] ed esegui l'aggiornamento del drive non funzionante "Mass Storage Controller".
    4. cerca i drive nella ISO scaricata sotto la cartella dei driver.
    5. After that, it’s a good idea to create a service for the drivers, so they are automatically loaded during system startup.
      sc.exe create VirtioFsSvc binpath="C:\ProgramData\Chocolatey\bin\virtiofs.exe" start=auto depend="WinFsp.Launcher/VirtioFsDrv" DisplayName="Virtio FS Service"
      sc.exe start VirtioFsSvc
      If you’ve installed manually, find the location of the .exe and change the binpath.

Attivare una connessione Bridge

Potrebbe essere necessario configurare un bridge di rete per facilitare la comunicazione tra sistemi sulla stessa subnet.
Un bridge di rete è uno switch virtuale che incanala i guest virtuali verso la scheda di interfaccia di rete (NIC) fisica dell'host RHEL.
La NIC fisica del server host è collegata a un router vero e proprio con accesso al resto della LAN.

Internet connection ISP --- router/firewall --- NIC "eno1" [Server] --- Bridge "br0" [KVM Host RHEL] --- VM Guest [Ubuntu/Windows]

  1. Da terminale Host digita: sudo nmtui
  2. seleziona [Edit a connection].
  3. se già non esiste una connessione di tipo "Bridge" usa l'opzione [Add] per crearne una.
  4. oppure seleziona la connessione [Bridge/virbr0] esistente.
    │ ┌────────────────────────┐           │
    │ │ Ethernet             ↑ │ <Add>     │
    │ │ Wired connection 1   ▒ │           │
    │ │ Wi-Fi                ▒ │ <Edit...> │
    │ │ zis-wifi             ▒ │           │
    │ │ Bridge               ▮ │ <Delete>  │
    │ │ lxcbr0               ▒ │           │
    │ │ virbr0               ▒ │           │
    │ │                      ▒ │           │
    │ │                      ↓ │ <Back>    │
    │ └────────────────────────┘           │
  5. Se vedi un dispositivo Bridge elencato, sai che un software (GNOME Boxes, Vagrant, VirtualBox o simili) ha già generato uno switch virtuale per te. Se hai bisogno di un solo switch virtuale, il tuo lavoro è tecnicamente completato; tuttavia, potresti voler creare un bridge aggiuntivo per una rete più complessa o semplicemente per tua comodità.
  6. Inserisci una connessione Ethernet come agente ("slave" nell'interfaccia nmtui) per questa nuova connessione bridge.
    È possibile specificare le impostazioni di rete per questo nuovo Bridge (indirizzo IP, maschera di sottorete, gateway e DNS) se la connessione cablata richiede una configurazione manuale.
    • Device: il nome della scheda di rete dell'Host.
    • IPv4: l'indirizzo ip dell'Host.
    • Gateway, DNS server e Seaarch domain gli stessi dell'Host.
      ┌────────────────┤ Edit Connection ├─────────────────────┐
      │                                                       ↑│
      │ Profile name Wired connection 1______________________ ▮│
      │ Device enp0sf6 (4a:5a:6a:0a:0a:8a)___________       ▒│
      │                                                       ▒│
      │ ═ ETHERNET                             <Show>         ▒│
      │                                                       ▒│
      │ ╤ IPv4 CONFIGURATION <Automatic>       <Hide>         ▒│
      │ │ Addresses 192.168.1.31/24__________ <Remove>        ▒│
      │ │ <Add...>                                            ▒│
      │ │ Gateway 192.168.1.254____________                   ▒│
      │ │ DNS servers 192.168.1.254____________ <Remove>      ▒│
      │ │ <Add...>                                            ▒│
      │ │ Search domains 8.8.8.8_______________ <Remove>      ▒│
      │ │ <Add...>                                            ▒│
      │ │                                                     ▒│
      │ │ Routing (No custom routes) <Edit...>                ▒│
      │ │ [ ] Never use this network for default route        ▒│
      │ │ [ ] Ignore automatically obtained routes            ▒│
      │ │ [ ] Ignore automatically obtained DNS parameters    ▒│
      │ │                                                     ▒│
      │ │ [ ] Require IPv4 addressing for this connection     ▒│
      │ └                                                     ▒│
      │ ═ IPv6 CONFIGURATION <Automatic>      <Show>          ▒│
      │                                                       ▒│
      │ [X] Automatically connect                             ▒│
      │ [X] Available to all users                            ▒│
      │                                                       ▒│
      │                                       <Cancel> <OK>   ▮│
      │                                                       ↓│
      └────────────────────────────────────────────────────────┘
  7. Chiudi il programma e dopo un paio di secondi, la nuova connessione bridge sarà attiva e funzionante; potrebbe essere necessario riavviare il pc Host.
  8. Per verificare se l'indirizzo IP locale è ora assegnato alla nuova connessione bridge (virbr0), da terminale digita: ip a
    ed osserva la risposta:
    4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether fa:3a:9a:3a:ba:6a brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.74/24 brd 192.168.1.255 scope global dynamic noprefixroute virbr0
    valid_lft 508sec preferred_lft 508sec
    inet6 fs80::fs31:9sff:fs36:bs6d/64 scope link
    valid_lft forever preferred_lft forever
  9. avvia [Virtual Machine Manager].
    • 2click sulla VM per aprirla.
    • seleziona la vista [Details].
    • seleziona [NIC] dalla lista degli elementi posta sulla sinistra dell'interfaccia.
    • Networ source: Bridge.
    • Device name: virbr0 , ovvero il nome dato precedentemente alla connessione Bridge.
    • Device model: virtio.
  10. avvia la VM e verifica il corretto funzionamento della connessione Bridge.

-

 

 

 

 

 

 

 

 

 

 

Immagini collegate:

Lascia un commento

7 − tre =