Le piattaforme di virtualizzazione come Quickemu vengono spesso sfruttate per eseguire test di applicativi, o funzionalità, in ambienti specifici. La virtualizzazione è quindi una pratica utile ai developer che necessitano di testare il proprio codice in configurazioni differenti. Soprattutto quando si stanno sviluppando soluzioni da rendere disponibili su più OS.
Ecco perché in rete sono disponibili decine di alternative per creare e gestire macchine virtuali. In questo tutorial abbiamo deciso di concentrarci appunto su Quickemu.
Cos'è Quickemu
Questo progetto open source permette di realizzare in modo semplice e rapido delle VM ottimizzate con Linux, Windows e macOS. L'utente non deve fare altro che selezionare il sistema operativo da virtualizzazione e Quickemu si occupa autonomamente della sua esecuzione.
L'intento originale del progetto era quello di consentire il testing veloce delle distribuzioni Linux, permettendo di salvare diverse configurazioni in supporti differenti per lo storage. Quindi anche su drive USB o in una directory nella home
. Con il tempo il programma si è evoluto, includendo un numero di funzionalità sempre maggiore.
Quickemu è sostanzialmente un wrapper per QEMU. Noto machine emulator e virtualizer open source che automatizza e semplifica tutta una serie di operazioni per conto dell'utente. Con l'obbiettivo di migliorare l'esperienza di virtualizzazione dei diversi OS.
Quickemu è dotato di diverse feature, come il VirtIO-webdavd file sharing per guest Linux e Windows, e supporta il file sharing con Samba (solo se presente nell'host) per guest Linux, macOS e Windows. Da segnalare inoltre una gestione completa dei sistemi EFI, anche con SecureBoot attivo.
Di base l'utente può interfacciarsi con Quickemu tramite una comoda CLI da bash o da altri emulatori di terminale. È però disponibile anche una GUI, chiamata Quickgui, con cui gli utenti meno esperti, o poco abituati all'uso della shell, possono utilizzare Quickemu senza difficoltà.
Installare e configurare Quickemu su Linux
Quickemu è disponibile per qualunque distribuzione Linux e le sue dipendenze sono reperibili nei repository dedicati. Di seguito la lista dei pacchetti necessari per Debian e derivate, come Ubuntu o Linux Mint,:
sudo apt install qemu bash coreutils ovmf grep jq lsb-base procps python3 genisoimage usbutils util-linux sed spice-client-gtk libtss2-tcti-swtpm0 wget xdg-user-dirs zsync unzip
Qui sotto invece trovate la controparte per Fedora e altre distro basate su RHEL (Red Hat Enterprise Linux):
sudo dnf install qemu bash coreutils edk2-tools grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-gtk-tools swtpm wget xdg-user-dirs xrandr unzip
Cloniamo quindi il repository del programma da GitHub:
git clone --filter=blob:none https://github.com/wimpysworld/quickemu
cd quickemu
Per praticità possiamo anche aggiungere una path personalizzata:
export PATH="$HOME/quickemu:$PATH"
Quindi invece di evocare lo script in questo modo:
./quickget nomedelladistribuzione
Si può operare direttamente con:
quickget nomedelladistribuzione
Se desideriamo accedere alla GUI punta e clicca andiamo ad installare il pacchetto apposito. Su Ubuntu esiste un comodo PPA extra:
sudo add-apt-repository ppa:yannick-mauray/quickgui
sudo apt update && sudo apt install quickgui
Per le altre distribuzioni l'autore ha rilasciato un binario precompilato disponibile su GitHub. Possiamo quindi estrarlo e poi eseguirlo manualmente:
xz quickgui-releaseXYZ.tar.xz
tar xvf quickgui-releaseXYZ.tar
/path/to/quickgui
Se lo preferiamo possiamo rendere disponibile il binario in tutto il sistema con questo comando:
sudo update-alternatives --install /usr/local/bin/quickgui quickgui /path/to/quickgui 50
Il codice sorgente permette invece di compilare il programma in piena autonomia:
git clone https://github.com/quickgui/quickgui.git
cd quickgui
flutter build linux --release
./build/linux/x64/release/bundle/quickgui
Creare una VM con Quickemu su Linux
Ora siamo pronti per creare una macchina virtuale con Quickemu. Torniamo in bash e digitiamo:
quickget nomedistribuzione release
Con tale comando il programma scarica il file ISO della distribuzione selezionata in previsione del primo avvio del sistema virtualizzato. Il download viene effettuato nella home
directory, quindi è possibile cancellare il tutto al volo senza nemmeno utilizzare sudo
o loggarsi come utente amministratore.
Ultimato il download del sistema operativo basta lanciare questo comando per avviare la VM:
quickemu --vm nomedistro-release.conf
Dopo aver terminato l'installazione standard della distribuzione per abilitare il copia e e incolla tra l'host ed il sistema guest, oltre al file sharing, bisogna installare i pacchetti spice-vdagent
e spice-webdavd
all'interno della macchina virtuale. Quindi in base al package manager di riferimento si può procedere alla loro installazione. Ad esempio in Debian o in Ubuntu:
sudo apt install spice-vdagent spice-webdavd
Mentre su RHEL o Fedora:
sudo dnf install spice-vdagent spice-webdavd
Se si ha già a disposizione il file ISO della distribuzione da virtualizzare si può invece creare manualmente un VM configuration file con l'editor di testo nano:
nano nomedistribuzione-release.conf
guest_os="linux"
disk_img="distro-release/disk.qcow2"
iso="directorydelfileISO"
Quindi si può invocare il servizio Quickemu per far partire la VM:
quickemu --vm distro-release.conf
Come potete notare il tutto è estremamente semplice ed intuitivo. Anche gli utenti meno propensi all'uso dei tool da shell si troveranno a loro agio.
Creare una VM con Quickgui su Linux
Quickgui consente di eseguire tutte le operazioni citate in precedenza con pochi click del mouse.
Clicchiamo sotto "Operating System" per selezionare la distribuzione dalla lista di quelle supportate, impostiamo la versione dalla sezione "Version" e infine scegliamo "Download" per scaricare il tutto. Dopo che il tool avrà terminato il download basta cliccare su "Play" per avviare la virtualizzazione del sistema operativo. Per arrestare la VM basterà cliccare invece sul tasto "Stop".
Quickemunon ha dunque nulla da invidiare alle alternative più blasonate e consente a tutti di avvicinarsi al mondo della virtualizzazione senza dover studiare configurazioni complesse.
Ovviamente la qualità della virtualizzazione dipende in larga parte dall'hardware che abbiamo a disposizione. Quindi se una determinata distribuzione o configurazione non viene eseguita correttamente, o registra degli impuntamenti, potrebbe non essere colpa di Quickemu.