Partilhar via


Importe qualquer distribuição Linux para usar com o WSL

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

Este artigo mostra como importar a distribuição Linux, CentOS, para uso com WSL obtendo seu arquivo tar usando um contêiner Docker. Este processo pode ser aplicado para importar qualquer distribuição 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:

  • Faça o download de um arquivo tar fornecido. Você pode encontrar um exemplo para a Alpine na seção "Mini Root Filesystem" do site de downloads do Alpine Linux .
  • Encontre um contêiner de distribuição Linux e exporte uma instância como um arquivo tar. O exemplo abaixo mostrará esse processo usando o contêiner do CentOS.

Obtendo um arquivo tar para o exemplo do CentOS

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

Pré-requisitos

Exportar o ficheiro tar de um contentor

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

  2. Certifique-se de ter o Docker Desktop em execução (Ou, se você tiver o Docker instalado na distro WSL, inicie o serviço com sudo service docker start )

  3. Execute o contêiner do CentOS dentro do Docker:

    docker run -t --name wsl_export centos ls /
    
  4. Exporte o ID do contêiner para um arquivo tar em sua unidade c-drive montada:

    docker export wsl_export > /mnt/c/temp/centos.tar
    

    Exemplo de execução dos comandos acima

  5. Limpar o recipiente

    docker rm wsl_export
    

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ê pode importá-lo usando o comando:

wsl.exe --import <Distro> <InstallLocation> <FileName> [Options]
Options:
    --version <Version>
    --vhd

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 <Distro> <InstallLocation> <FileName> para importar o arquivo tar.

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

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

    Exemplo dos comandos acima em execução no WSL

Adicionar componentes específicos do WSL, como um utilizador predefinido

Por padrão, ao usar --import, você começa sempre como o usuário root. 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 Linux diferente.

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ê vai querer adicionar o nome de usuário ao arquivo sudoers para que permita que o usuário use sudo. O comando adduser -G wheel $myUsername adiciona o utilizador myUsername ao grupo wheel. Os utilizadores no grupo wheel recebem automaticamente privilégios sudo e podem executar tarefas que exigem permissões elevadas.

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 WSL sejam encerradas. Inicie sua distribuição novamente para ver seu 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.

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

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

Usar uma distribuição Linux personalizada

Você pode criar sua própria distribuição Linux personalizada, empacotada como um aplicativo UWP, que se comportará exatamente como as distribuições WSL disponíveis na Microsoft Store. Para saber como, consulte Criando uma distribuição Linux personalizada para WSL.