WSL: cos'è e come importare ed esportare macchine Linux in Windows

Cos'è WSL in breve e come fare per importare ed esportare le immagini delle macchine virtuali Linux utilizzate in ambiente Windows. A scopo di backup oppure per eseguire più istanze della stessa distribuzione contemporaneamente.

Grazie alla virtualizzazione di Hyper-V è possibile installare qualunque distribuzione Linux in Windows con pochi semplici passi.

WSL (Windows Subsystem for Linux) è un componente introdotto in Windows 10 e confermato in Windows 11 che permette di eseguire Linux in una macchina virtuale. Originariamente nato per supportare le distribuzioni e le applicazioni che funzionano da finestra del terminale, WSL permette oggi di installare programmi Linux in Windows anche basati su interfaccia grafica.
Le applicazioni Linux diventano avviabili dal menu Start di Windows, la loro icona compare nella barra delle applicazioni del sistema operativo, sul desktop e ciascun programma viene eseguito in una normale finestra Windows.

WSL permette di installare più distribuzioni Linux sullo stesso sistema come abbiamo visto nell’articolo su come eseguire Linux in Windows. Le distribuzioni Linux possono inoltre essere avviate ed eseguite contemporaneamente sullo stesso sistema.

Al momento ciò che WSL non permette di fare in maniera diretta è installare più istanze della stessa distribuzione.

Per impostazione predefinita WSL (da avviare da prompt dei comandi digitando cmd nella casella di ricerca di Windows e scegliendo Esegui come amministratore) installa l’ultima versione di Ubuntu quando si utilizza il comando wsl --install provvedendo anche a scaricare e configurare tutti i requisiti, ad esempio Hyper-V.
Con il comando wsl --list --online è possibile ottenere l’elenco delle distribuzioni Linux direttamente installabili (per installarle si usa il comando wsl --install -d nome-distribuzione).

Esportare e importare un’installazione di Linux con WSL

In ambienti aziendali può risultare molto utile creare una copia di un’installazione Linux configurata con WSL.

Si supponga di aver configurato una macchina Linux secondo le proprie necessità. Per esportare con WSL basta aprire il prompt dei comandi di Windows quindi digitare quanto segue:

wsl --export Ubuntu-20.04 %userprofile%\Ubuntu-20.04-2.tar

Il file .tar contenente la configurazione di Linux Ubuntu-20.04 viene in questo caso salvato in un file memorizzato nella cartella del profilo utente correntemente in uso (%userprofile%).

D’ora in avanti, digitando un altro semplice comando, sarà possibile importare in WSL un’installazione di Linux precedentemente memorizzata come file .tar. Esempio:

md %userprofile%\WSL
wsl --import Ubuntu-20.04-2 %userprofile%\WSL\Ubuntu-20.04-2 %userprofile%\Ubuntu-20.04-2.tar

In questo caso creiamo una cartella WSL in %userprofile% quindi vi importiamo il contenuto del file %userprofile%\Ubuntu-20.04-2.tar.
Al termine dell’importazione digitando wsl -l -v si vedrà apparire il nome della distribuzione specificato in precedenza (nell’esempio Ubuntu-20.04-2).

Nella cartella %userprofile%\WSL\Ubuntu-20.04-2 si troverà un file d’immagine in formato .VDHX pronto per essere gestito da WSL/Hyper-V.

Per avviare la copia della macchina virtuale Linux basterà quindi digitare quanto segue, almeno nel nostro esempio:

wsl -d Ubuntu-20.04-2

Dopo aver effettuato il boot della macchina virtuale ci si troverà con l’utente root abilitato. L’utente creato nell’installazione di Linux a partire dalla quale si è creata una copia esiste ma non è configurato come predefinito.
Per provvedere in tal senso basta digitare nano /etc/wsl.conf quindi incollare due righe:

[user]
default=nome-utente

Al posto di nome-utente va specificato il nome utente da utilizzare all’avvio della distribuzione Linux. Chiudendo la finestra di WSL quindi digitando di nuovo il comando wsl -d Ubuntu-20.04-2 si accederà alla copia dell’installazione di Linux usando il nome utente indicato nel file /etc/wsl.conf.
Per passare al contenuto della cartella home dell’utente basta digitare semplicemente cd e premere Invio.

Chi utilizza Windows Terminal può impostare la cartella da aprire all’avvio di Linux in WSL con semplice trucco.

Infine, il comando wsl --import visto in precedenza può essere utilizzato anche per importare altre distribuzioni Linux scaricate dalla rete in formato .tar.gz.

Ti consigliamo anche

Link copiato negli appunti