Importare qualsiasi distribuzione Linux da usare con WSLImport any Linux distribution to use with WSL

È possibile usare qualsiasi distribuzione Linux all'interno del sottosistema Windows per Linux (WSL), anche se non è disponibile nel Microsoft Store, importando il file con un file tar.You can use any Linux distribution inside of the Windows Subsystem for Linux (WSL), even if it is not available in the Microsoft Store, by importing it with a tar file.

Questo articolo illustra come importare la distribuzione Linux, CentOS, da usare con WSL ottenendo il relativo file tar usando un contenitore docker.This article shows how to import the Linux distribution, CentOS, for use with WSL by obtaining its tar file using a Docker container. Questo processo può essere applicato per importare qualsiasi distribuzione Linux.This process can be applied to import any Linux distribution.

Ottenere un file tar per la distribuzioneObtain a tar file for the distribution

Per prima cosa è necessario ottenere un file tar che contiene tutti i file binari Linux per la distribuzione.First you'll need to obtain a tar file that contains all the Linux binaries for the distribution.

È possibile ottenere un file con estensione tar in diversi modi, due dei quali includono:You can obtain a tar file in a variety of ways, two of which include:

  • Scaricare un file tar fornito.Download a provided tar file. Per un esempio di Alpine, vedere la sezione "mini root filesystem" del sito di download di Alpine Linux .You can find an example for Alpine in the "Mini Root Filesystem" section of the Alpine Linux downloads site.
  • Trovare un contenitore di distribuzione Linux ed esportare un'istanza come file tar.Find a Linux distribution container and export an instance as a tar file. Nell'esempio seguente viene illustrato questo processo mediante il contenitore CentOS.The example below will show this process using the CentOS container.

Esempio di recupero di un file tar per CentOSObtaining a tar file for CentOS example

In questo esempio si userà Docker all'interno di una distribuzione WSL per ottenere il file tar per CentOS.In this example, we'll use Docker inside of a WSL distribution to obtain the tar file for CentOS.

PrerequisitiPrerequisites

Esportare il tar da un contenitoreExport the tar from a container

  1. Aprire la riga di comando (bash) per una distribuzione Linux già installata dal Microsoft Store (Ubuntu in questo esempio).Open the command line (Bash) for a Linux distribution that you've already installed from the Microsoft Store (Ubuntu in this example).

  2. Avviare il servizio docker:Start the Docker service:

sudo service docker start
  1. Eseguire il contenitore CentOS all'interno di Docker:Run the CentOS container inside Docker:
docker run -t centos bash ls /
  1. Acquisire l'ID del contenitore CentOS con grep e awk:Grab the CentOS container ID using grep and awk:
dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
  1. Esportare l'ID del contenitore in un file tar nell'unità c montata:Export the container ID to a tar file on your mounted c-drive:
docker export $dockerContainerID > /mnt/c/temp/centos.tar

Esempio di esecuzione dei comandi precedenti

Questo processo Esporta il file tar CentOS dal contenitore Docker in modo che sia ora possibile importarlo per l'uso localmente con WSL.This process exports the CentOS tar file from the Docker container so that we can now import it for use locally with WSL.

Importare il file tar in WSLImport the tar file into WSL

Quando si dispone di un file tar pronto, è possibile importarlo usando il comando: wsl --import <Distro> <InstallLocation> <FileName> .Once you have a tar file ready, you can import it using the command: wsl --import <Distro> <InstallLocation> <FileName>.

Esempio di importazione di CentOSImporting CentOS example

Per importare il file tar di distribuzione CentOS in WSL:To import the CentOS distribution tar file into WSL:

  1. Aprire PowerShell e assicurarsi che sia stata creata una cartella in cui si vuole archiviare la distribuzione.Open PowerShell and ensure that you have a folder created where you'd like the distribution to be stored.
cd C:\temp
mkdir E:\wslDistroStorage\CentOS
  1. Usare il comando wsl --import <DistroName> <InstallLocation> <InstallTarFile> per importare il file tar.Use the command wsl --import <DistroName> <InstallLocation> <InstallTarFile> to import the tar file.
wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
  1. Usare il comando wsl -l -v per verificare quali distribuzioni sono state installate.Use the command wsl -l -v to check which distributions you have installed.

Esempio dei comandi precedenti in esecuzione in WSL

  1. Usare infine il comando wsl -d CentOS per eseguire la distribuzione di CentOS Linux appena importata.Finally, use the command wsl -d CentOS to run your newly imported CentOS Linux distribution.

Aggiungere componenti specifici di WSL come un utente predefinitoAdd WSL specific components like a default user

Per impostazione predefinita, quando si usa--import, viene sempre avviato come utente root.By default when using --import, you are always started as the root user. È possibile configurare il proprio account utente, ma si noti che il processo di installazione varia leggermente in base a ogni distribuzione Linux.You can set up your own user account, but note that the set up process will vary slightly based on each different Linux distribution.

Per configurare l'account utente con la distribuzione CentOS appena importata, aprire prima PowerShell e avviare CentOS usando il comando:To set up user account with the CentOS distribution we just imported, first open PowerShell and boot into CentOS, using the command:

wsl -d CentOS

Successivamente, aprire la riga di comando CentOS.Next, open your CentOS command line. Usare questo comando per installare gli strumenti di impostazione di sudo e password in CentOS, creare un account utente e impostarlo come utente predefinito.Use this command to install sudo and password setting tools into CentOS, create a user account, and set it as the default user. In questo esempio il nome utente sarà' caloewen '.In this example, the username will be 'caloewen'.

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 di WSL siano interrotte.You must now quit out of that instance and ensure that all WSL instances are terminated. Avviare di nuovo la distribuzione per visualizzare il nuovo utente predefinito eseguendo questo comando in PowerShell:Start your distribution again to see your new default user by running this command in PowerShell:

wsl --shutdown
wsl -d CentOS

Verrà ora visualizzato [caloewen@loewen-dev]$ come output basato su questo esempio.You will now see [caloewen@loewen-dev]$ as the output based on this example.

Esempio del codice precedente in esecuzione in WSL

Per altre informazioni sulla configurazione delle impostazioni di WSL, vedere comandi di avvio & configurazioni.To learn more about configuring WSL settings, see Launch commands & configurations.

Usare una distribuzione Linux personalizzataUse a custom Linux distribution

È possibile creare una distribuzione Linux personalizzata, in pacchetto come app UWP, che si comporterà esattamente come le distribuzioni di WSL disponibili nella Microsoft Store.You can create your own customized Linux distribution, packaged as a UWP app, that will behave exactly like the WSL distributions available in the Microsoft Store. Per informazioni, vedere creazione di una distribuzione Linux personalizzata per WSL.To learn how, see Creating a Custom Linux Distribution for WSL.