Importare qualsiasi distribuzione Linux da usare con WSL
È possibile usare qualsiasi distribuzione Linux all'interno del sottosistema Windows per Linux (WSL), anche se non è disponibile nel Microsoft Store, importandolo con un file tar.
Questo articolo illustra come importare la distribuzione Linux, CentOS, per l'uso con WSL ottenendo il file tar usando un contenitore Docker. Questo processo può essere applicato per importare qualsiasi distribuzione Linux.
Ottenere un file tar per la distribuzione
Prima di tutto è necessario ottenere un file tar che contiene tutti i file binari Linux per la distribuzione.
È possibile ottenere un file tar in diversi modi, due dei quali includono:
- Scaricare un file tar fornito. È possibile trovare un esempio per Alpine nella sezione "Mini Root Filesystem" del sito Download di Alpine Linux.
- Trovare un contenitore di distribuzione Linux ed esportare un'istanza come file tar. L'esempio seguente mostrerà questo processo usando il contenitore CentOS.
Recupero di un file tar per l'esempio CentOS
In questo esempio si userà Docker all'interno di una distribuzione WSL per ottenere il file tar per CentOS.
Prerequisiti
- È necessario che WSL sia abilitato con una distribuzione Linux installata che esegue WSL 2.
- È necessario che Docker Desktop per Windows sia installato con il motore WSL 2 abilitato e l'integrazione sia selezionata Vedere il contratto di licenza di Docker Desktop per gli aggiornamenti in base alle condizioni per l'utilizzo.
Esportare il tar da un contenitore
Aprire la riga di comando (Bash) per una distribuzione Linux già installata da Microsoft Store (Ubuntu in questo esempio).
Assicurarsi che Docker Desktop sia in esecuzione (oppure se Docker è installato nella distribuzione WSL avviare il servizio con
sudo service docker start
)Eseguire il contenitore CentOS all'interno di Docker:
docker run -t --name wsl_export centos ls /
Esportare l'ID contenitore in un file tar nell'unità c montata:
docker export wsl_export > /mnt/c/temp/centos.tar
Pulire il contenitore
docker rm wsl_export
Questo processo esporta il file tar CentOS dal contenitore Docker in modo da poterlo importare per l'uso in locale con WSL.
Importare il file tar in WSL
Quando un file tar è pronto, è possibile importarlo usando il comando: wsl --import <Distro> <InstallLocation> <FileName>
.
Esempio di importazione di CentOS
Per importare il file tar della distribuzione CentOS in WSL:
Aprire PowerShell e assicurarsi di avere una cartella creata in cui archiviare la distribuzione.
cd C:\temp mkdir E:\wslDistroStorage\CentOS
Usare il comando
wsl --import <DistroName> <InstallLocation> <InstallTarFile>
per importare il file tar.wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
Usare il comando
wsl -l -v
per verificare le distribuzioni installate.Usare infine il comando
wsl -d CentOS
per eseguire la distribuzione centOS Linux appena importata.
Aggiungere componenti specifici di WSL come un utente predefinito
Per impostazione predefinita, quando si usa --import, si viene sempre avviati come utente radice. È possibile configurare il proprio account utente, ma si noti che il processo di configurazione varia leggermente in base a ogni distribuzione Linux diversa.
Per configurare l'account utente con la distribuzione CentOS appena importata, aprire prima PowerShell e avviare CentOS usando il comando :
wsl -d CentOS
Aprire quindi la riga di comando centOS. Usare questo comando per installare gli strumenti di impostazione sudo e password in CentOS, creare un account utente e impostarlo come utente predefinito. In questo esempio il nome utente sarà 'caloewen'.
Nota
Si vuole aggiungere il nome utente al file sudoers in modo che consenta all'utente di usare sudo. Il comando adduser -G wheel $myUsername
aggiunge l'utente myUsername
al gruppo di wheel. Agli utenti del gruppo wheel vengono concessi automaticamente privilegi sudo e possono eseguire attività che richiedono autorizzazioni elevate.
yum update -y && yum install passwd sudo -y
myUsername=caloewen
adduser -G wheel $myUsername
echo -e "[user]\ndefault=$myUsername" >> /etc/wsl.conf
passwd $myUsername
È ora necessario uscire da tale istanza e assicurarsi che tutte le istanze WSL vengano terminate. Avviare di nuovo la distribuzione per visualizzare il nuovo utente predefinito eseguendo questo comando in PowerShell:
wsl --terminate CentOS
wsl -d CentOS
Verrà ora visualizzato [caloewen@loewen-dev]$
come output in base a questo esempio.
Per altre informazioni sulla configurazione delle impostazioni WSL, vedere Configurare le impostazioni con .wslconfig e wsl.conf.
Usare una distribuzione Linux personalizzata
È possibile creare una distribuzione Linux personalizzata, in pacchetto come app UWP, che si comporta esattamente come le distribuzioni WSL disponibili in Microsoft Store. Per informazioni su come, vedere Creazione di una distribuzione Linux personalizzata per WSL.
Windows Subsystem for Linux