Importar qualquer distribuição do Linux a ser usada com o WSL

Você pode usar qualquer distribuição do Linux dentro do Subsistema do Windows para Linux (WSL), mesmo que não esteja disponível na Microsoft Store, importando-a com um arquivo tar.

Esse 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. Esse processo pode ser aplicado para importar qualquer distribuição do Linux.

Obter um arquivo tar para a distribuição

Primeiro, você precisará obter um arquivo tar que contenha todos os binários do Linux para a distribuição.

Você pode obter um arquivo tar de várias maneiras, duas das quais incluem:

  • Baixe um arquivo tar fornecido. Você pode encontrar um exemplo para Alpine na seção "Mini Sistema de Arquivos Raiz" do site de downloads do Alpine Linux .
  • Localize um contêiner de distribuição do Linux e exporte uma instância como um arquivo tar. O exemplo a seguir mostrará esse processo usando o contêiner CentOS.

Obtendo um arquivo tar para o exemplo centOS

Neste exemplo, usaremos o Docker dentro de uma distribuição WSL para obter o arquivo tar para CentOS.

Pré-requisitos

Exportar o tar de um contêiner

  1. Abra a linha de comando (Bash) para uma distribuição do Linux que você já instalou na Microsoft Store (Ubuntu nesse exemplo).

  2. Inicie o serviço de "docker":

    sudo service docker start
    
  3. Execute o contêiner do CentOS dentro do Docker:

    docker run -t centos bash ls /
    
  4. Pegue a ID do contêiner do CentOS usando grep e awk:

    dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
    
  5. Exporte a ID do contêiner para um arquivo tar em sua unidade c montada:

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

Example of running the commands above

Esse processo exporta o arquivo tar do centOS do contêiner do Docker para que agora possamos importá-lo para uso local com o WSL.

Importar o arquivo tar para o WSL

Depois de ter um arquivo tar pronto, você poderá importá-lo por meio do comando : wsl --import <Distro> <InstallLocation> <FileName>.

Exemplo de importação do CentOS

Para importar o arquivo tar de distribuição do CentOS para o WSL:

  1. Abra o PowerShell e verifique se você tem uma pasta criada onde deseja que a distribuição seja armazenada.

    cd C:\temp
    mkdir E:\wslDistroStorage\CentOS
    
  2. Use o comando wsl --import <DistroName> <InstallLocation> <InstallTarFile> para importar o arquivo tar.

    wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
    
  3. Use o comando wsl -l -v para marcar quais distribuições você instalou.

    Example of the above commands running in WSL

  4. Por fim, use o comando wsl -d CentOS para executar sua distribuição do CentOS Linux recém-importada.

Adicionar componentes específicos do WSL como um usuário padrão

Por padrão, ao usar --import, você sempre é iniciado como o usuário raiz. Você pode configurar sua própria conta de usuário, mas observe que o processo de configuração variará ligeiramente com base em cada distribuição diferente do Linux.

Para configurar a conta de usuário com a distribuição centOS que acabamos de importar, primeiro abra o PowerShell e inicialize no CentOS, usando o comando :

wsl -d CentOS

Em seguida, abra a linha de comando do CentOS. Use este comando para instalar as ferramentas de configuração de sudo e senha no CentOS, criar uma conta de usuário e defini-la como o usuário padrão. Neste exemplo, o nome de usuário será "caloewen".

Observação

Você desejará adicionar o nome de usuário ao arquivo sudoers para permitir que o usuário use sudo. O comando adduser -G wheel $myUsername adiciona o usuário myUsername ao grupo. Os usuários do grupo de rodas recebem automaticamente privilégios sudo e podem executar tarefas que exigem permissão elevada.

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 do WSL sejam encerradas. Inicie a distribuição novamente para ver o novo usuário padrão executando este comando no PowerShell:

wsl --terminate CentOS
wsl -d CentOS

Agora você verá [caloewen@loewen-dev]$ como a saída com base neste exemplo.

Example of the code above running in WSL

Para saber mais sobre como definir as configurações do WSL, consulte Definir configurações com .wslconfig e wsl.conf.

Criar distribuição personalizada do Linux

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 na Microsoft Store. Para saber como fazer isso, consulte Como criar uma distribuição personalizada do Linux para WSL.