Importar qualquer distribuição do Linux para usar com WSLImport any Linux distribution to use with WSL

Você pode usar qualquer distribuição do Linux dentro do subsistema do Windows para Linux (WSL), mesmo que ele não esteja disponível no Microsoft Store, importando-o com um arquivo 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.

Este artigo mostra como importar a distribuição do Linux, CentOS, para uso com o WSL, obtendo seu arquivo tar usando um contêiner do Docker.This article shows how to import the Linux distribution, CentOS, for use with WSL by obtaining its tar file using a Docker container. Esse processo pode ser aplicado para importar qualquer distribuição do Linux.This process can be applied to import any Linux distribution.

Obter um arquivo tar para a distribuiçãoObtain a tar file for the distribution

Primeiro, você precisará obter um arquivo tar que contém todos os binários do Linux para a distribuição.First you'll need to obtain a tar file that contains all the Linux binaries for the distribution.

Você pode obter um arquivo tar de várias maneiras, dois dos quais incluem:You can obtain a tar file in a variety of ways, two of which include:

  • Baixe um arquivo tar fornecido.Download a provided tar file. Você pode encontrar um exemplo de Alpine na seção "mini-raiz FileSystem" do site de downloads do Alpine Linux .You can find an example for Alpine in the "Mini Root Filesystem" section of the Alpine Linux downloads site.
  • Localize um contêiner de distribuição do Linux e exporte uma instância como um arquivo tar.Find a Linux distribution container and export an instance as a tar file. O exemplo a seguir mostrará esse processo usando o contêiner CentOS.The example below will show this process using the CentOS container.

Obtendo um arquivo tar para exemplo de CentOSObtaining a tar file for CentOS example

Neste exemplo, usaremos o Docker dentro de uma distribuição WSL para obter o arquivo tar para CentOS.In this example, we'll use Docker inside of a WSL distribution to obtain the tar file for CentOS.

Pré-requisitosPrerequisites

Exportar o tar de um contêinerExport the tar from a container

  1. Abra a linha de comando (bash) para uma distribuição do Linux que você já instalou do Microsoft Store (Ubuntu, neste exemplo).Open the command line (Bash) for a Linux distribution that you've already installed from the Microsoft Store (Ubuntu in this example).

  2. Inicie o serviço do Docker:Start the Docker service:

sudo service docker start
  1. Execute o contêiner CentOS dentro do Docker:Run the CentOS container inside Docker:
docker run -t centos bash ls /
  1. Pegue a ID do contêiner CentOS usando grep e awk:Grab the CentOS container ID using grep and awk:
dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
  1. Exporte a ID do contêiner para um arquivo tar em sua unidade c-montada:Export the container ID to a tar file on your mounted c-drive:
docker export $dockerContainerID > /mnt/c/temp/centos.tar

Exemplo de execução dos comandos acima

Esse processo exporta o arquivo CentOS tar do contêiner do Docker para que agora possamos importá-lo para uso local com WSL.This process exports the CentOS tar file from the Docker container so that we can now import it for use locally with WSL.

Importar o arquivo tar para o WSLImport the tar file into WSL

Quando tiver um arquivo tar pronto, você poderá importá-lo usando o 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>.

Importando exemplo de CentOSImporting CentOS example

Para importar o arquivo tar de distribuição CentOS para o WSL:To import the CentOS distribution tar file into WSL:

  1. Abra o PowerShell e verifique se você tem uma pasta criada onde você gostaria que a distribuição fosse armazenada.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. Use o comando wsl --import <DistroName> <InstallLocation> <InstallTarFile> para importar o arquivo tar.Use the command wsl --import <DistroName> <InstallLocation> <InstallTarFile> to import the tar file.
wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
  1. Use o comando wsl -l -v para verificar quais distribuições você instalou.Use the command wsl -l -v to check which distributions you have installed.

Exemplo dos comandos acima em execução no WSL

  1. Por fim, use o comando wsl -d CentOS para executar sua distribuição do CentOS Linux recém importada.Finally, use the command wsl -d CentOS to run your newly imported CentOS Linux distribution.

Adicionar componentes específicos do WSL como um usuário padrãoAdd WSL specific components like a default user

Por padrão, ao usar--Import, você sempre será iniciado como o usuário raiz.By default when using --import, you are always started as the root user. Você pode configurar sua própria conta de usuário, mas observe que o processo de configuração variará um pouco com base em cada distribuição do Linux diferente.You can set up your own user account, but note that the set up process will vary slightly based on each different Linux distribution.

Para configurar a conta de usuário com a distribuição CentOS que acabamos de importar, abra primeiro o PowerShell e inicialize no CentOS, usando o 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

Em seguida, abra a linha de comando do CentOS.Next, open your CentOS command line. Use este comando para instalar as ferramentas de configuração sudo e password no CentOS, criar uma conta de usuário e defini-la como o usuário padrão.Use this command to install sudo and password setting tools into CentOS, create a user account, and set it as the default user. Neste exemplo, o nome de usuário será ' 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

Agora você deve sair dessa instância e garantir que todas as instâncias de WSL sejam encerradas.You must now quit out of that instance and ensure that all WSL instances are terminated. Inicie sua distribuição novamente para ver seu novo usuário padrão executando este comando no PowerShell:Start your distribution again to see your new default user by running this command in PowerShell:

wsl --shutdown
wsl -d CentOS

Você verá agora [caloewen@loewen-dev]$ como a saída com base neste exemplo.You will now see [caloewen@loewen-dev]$ as the output based on this example.

Exemplo do código acima em execução no WSL

Para saber mais sobre como definir as configurações de WSL, consulte iniciar comandos & configurações.To learn more about configuring WSL settings, see Launch commands & configurations.

Usar uma distribuição personalizada do LinuxUse a custom Linux distribution

Você pode criar sua própria distribuição personalizada do Linux, empacotada como um aplicativo UWP, que se comportará exatamente como as distribuições WSL disponíveis no 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. Para saber como, consulte criando uma distribuição personalizada do Linux para WSL.To learn how, see Creating a Custom Linux Distribution for WSL.