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, importarla con un file tar.

Questo articolo illustra come importare la distribuzione Di Linux, CentOS, per l'uso con WSL ottenendo il relativo 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 di download di Alpine Linux .
  • Trovare un contenitore di distribuzione Linux ed esportare un'istanza come file tar. L'esempio seguente illustra questo processo usando il contenitore CentOS.

Come ottenere 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

Esportare il tar da un contenitore

  1. Aprire la riga di comando (Bash) per una distribuzione Linux già installata dal Microsoft Store (Ubuntu in questo esempio).

  2. Avviare il servizio Docker:

    sudo service docker start
    
  3. Eseguire il contenitore CentOS all'interno di Docker:

    docker run -t centos bash ls /
    
  4. Afferrare l'ID contenitore CentOS usando grep e awk:

    dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
    
  5. Esportare l'ID contenitore in un file tar nell'unità C montata:

    docker export $dockerContainerID > /mnt/c/temp/centos.tar
    

Example of running the commands above

Questo processo esporta il file tar CentOS dal contenitore Docker in modo che sia ora possibile importarlo per l'uso in locale con WSL.

Importare il file tar in WSL

Dopo aver pronto un file tar, è possibile importarlo usando il comando : wsl --import <Distro> <InstallLocation> <FileName>.

Esempio di importazione di CentOS

Per importare il file tar di distribuzione CentOS in WSL:

  1. Aprire PowerShell e assicurarsi di avere creato una cartella in cui si desidera archiviare la distribuzione.

    cd C:\temp
    mkdir E:\wslDistroStorage\CentOS
    
  2. Usare il comando wsl --import <DistroName> <InstallLocation> <InstallTarFile> per importare il file tar.

    wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
    
  3. Usare il comando wsl -l -v per controllare le distribuzioni installate.

    Example of the above commands running in WSL

  4. Infine, usare il comando per wsl -d CentOS 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 un account utente personalizzato, ma si noti che il processo di configurazione varierà leggermente in base a ogni distribuzione di 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 di 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

È necessario 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 wheel. Agli utenti del gruppo wheel vengono concessi automaticamente privilegi sudo e possono eseguire attività che richiedono l'autorizzazione con privilegi elevati.

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 siano 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 come [caloewen@loewen-dev]$ output basato su questo esempio.

Example of the code above running in WSL

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 comporterà esattamente come le distribuzioni WSL disponibili nel Microsoft Store. Per informazioni su come, vedere Creazione di una distribuzione Linux personalizzata per WSL.