Compartilhar via


Perguntas frequentes sobre o Subsistema do Windows para Linux

Geral

O que é o Subsistema do Windows para Linux (WSL)?

O Subsistema do Windows para Linux (WSL) é um recurso do sistema operacional Windows que permite executar um sistema de arquivos Linux, juntamente com ferramentas de linha de comando do Linux e aplicativos GUI, diretamente no Windows, juntamente com sua área de trabalho e aplicativos tradicionais do Windows.

Consulte a página sobre para obter mais detalhes.

Para quem é o WSL?

Essa é principalmente uma ferramenta para desenvolvedores, especialmente desenvolvedores Web, aqueles que trabalham em projetos de software livre ou implantando em ambientes de servidor Linux. O WSL é para quem gosta de usar o Bash, ferramentas comuns do Linux (sedetc awk.) e estruturas do Linux (Ruby, Python etc.), mas também gosta de usar ferramentas de produtividade do Windows.

O que posso fazer com o WSL?

O WSL permite que você execute o Linux em um shell bash com sua escolha de distribuição (Ubuntu, Debian, OpenSUSE, Kali, Alpine etc). Usando o Bash, você pode executar aplicativos e ferramentas linux de linha de comando. Por exemplo, digite lsb_release -a e pressione enter; você verá detalhes da distribuição do Linux em execução no momento:

Captura de tela dos detalhes da distribuição

Você também pode acessar o sistema de arquivos do computador local de dentro do shell do Linux Bash. Você encontrará suas unidades locais montadas na /mnt pasta. Por exemplo, sua C: unidade é montada em /mnt/c:

Captura de tela da unidade C montada

Você poderia descrever um fluxo de trabalho de desenvolvimento típico que incorpora o WSL?

O WSL tem como destino um público-alvo de desenvolvedores com a intenção de ser usado como parte de um loop de desenvolvimento interno. Digamos que Sam esteja criando um pipeline de CI/CD (Integração Contínua & Entrega Contínua) e deseja testá-lo primeiro em um computador local (laptop) antes de implantá-lo na nuvem. O Sam pode habilitar o WSL (> WSL 2 para melhorar a velocidade e o desempenho) e, em seguida, usar uma instância original do Ubuntu linux localmente (no laptop) com quaisquer comandos e ferramentas bash que preferirem. Depois que o pipeline de desenvolvimento for verificado localmente, o Sam poderá efetuar push desse pipeline de CI/CD para a nuvem (ou seja, Azure) transformando-o em um contêiner do Docker e enviando o contêiner por push para uma instância de nuvem em que ele é executado em uma VM do Ubuntu pronta para produção.

O que é Bash?

Bash é um shell baseado em texto popular e linguagem de comando. É o shell padrão incluído no Ubuntu e em outras distribuições do Linux. Os usuários digitam comandos em um shell para executar scripts e/ou executar comandos e ferramentas para realizar muitas tarefas.

Como isso funciona?

Confira este artigo no blog da Linha de Comando do Windows: Um aprofundamento em como o WSL permite que o Windows acesse arquivos Linux que entram em detalhes sobre a tecnologia subjacente.

Por que eu usaria o WSL em vez do Linux em uma VM?

O WSL requer menos recursos (CPU, memória e armazenamento) do que uma máquina virtual completa. O WSL também permite que você execute ferramentas e aplicativos de linha de comando do Linux juntamente com seus aplicativos de linha de comando, área de trabalho e loja do Windows e acesse seus arquivos do Windows de dentro do Linux. Isso permite que você use aplicativos do Windows e ferramentas de linha de comando do Linux no mesmo conjunto de arquivos, se desejar.

Por que eu usaria, por exemplo, Ruby no Linux em vez de no Windows?

Algumas ferramentas multiplataforma foram criadas supondo que o ambiente no qual elas são executadas se comporte como o Linux. Por exemplo, algumas ferramentas pressupõem que são capazes de acessar caminhos de arquivo muito longos ou que existem arquivos/pastas específicos. Isso geralmente causa problemas no Windows que geralmente se comportam de forma diferente do Linux.

Muitas linguagens como Ruby e Node.js geralmente são portadas e executadas de forma excelente no Windows. No entanto, nem todos os proprietários da biblioteca Ruby Gem ou node/NPM portam suas bibliotecas para dar suporte ao Windows e muitos têm dependências específicas do Linux. Isso geralmente pode resultar em sistemas criados usando essas ferramentas e bibliotecas que sofrem de erros de build e, às vezes, de runtime ou comportamentos indesejados no Windows.

Esses são apenas alguns dos problemas que fizeram com que muitas pessoas pedissem à Microsoft para melhorar as ferramentas de linha de comando do Windows e o que nos levou a fazer parceria com a Canonical para permitir que as ferramentas nativas de linha de comando Bash e Linux sejam executadas no Windows.

O que isso significa para o PowerShell?

Ao trabalhar com projetos do OSS, há vários cenários em que é imensamente útil inserir o Bash em um prompt do PowerShell. O suporte ao Bash é complementar e fortalece o valor da linha de comando no Windows, permitindo que o PowerShell e a comunidade do PowerShell aproveitem outras tecnologias populares.

Leia mais no blog da equipe do PowerShell – Bash para Windows: Por que é incrível e o que significa para o PowerShell

Quais processadores dão suporte ao WSL?

O WSL dá suporte a CPUs x64 e Arm64.

Como fazer para acessar minha unidade C: ?

Os pontos de montagem para discos rígidos no computador local são criados automaticamente e fornecem acesso fácil ao sistema de arquivos do Windows.

/mnt/<drive letter>/

O uso de exemplo seria cd /mnt/c acessar c:\

Como configurar o Git Credential Manager? (Como posso usar minhas permissões do Windows Git no WSL?)

Confira o tutorial Introdução ao uso do Git no Subsistema do Windows para Linux, que apresenta uma seção sobre como configurar o Git Credential Manager e armazenar tokens de autenticação no Gerenciador de Credenciais do Windows.

Como usar um arquivo do Windows com um aplicativo Linux?

Um dos benefícios do WSL é poder acessar seus arquivos por meio de aplicativos ou ferramentas do Windows e do Linux.

O WSL monta as unidades fixas do computador sob a /mnt/<drive> pasta nas distribuições do Linux. Por exemplo, sua C: unidade é montada em /mnt/c/.

Usando suas unidades montadas, você pode editar o código, por exemplo, C:\dev\myproj\ usando o Visual Studio ou o VS Code, e compilar/testar esse código no Linux acessando os mesmos arquivos por meio /mnt/c/dev/myprojde .

Saiba mais em Trabalhar no artigo sobre sistemas de arquivos Windows e Linux .

Os arquivos na unidade do Linux são diferentes da unidade do Windows montada?

  1. Os arquivos na raiz do Linux (ou seja /) são controlados pelo WSL que se alinha ao comportamento do Linux, incluindo, mas não se limitando a:

    • Arquivos que contêm caracteres de nome de arquivo inválidos do Windows
    • Symlinks criados para usuários não administradores
    • Alterando atributos de arquivo por meio chmod e chown
    • Confidencialidade de maiúsculas e minúsculas de arquivo/pasta
  2. Os arquivos em unidades montadas são controlados pelo Windows e têm os seguintes comportamentos:

    • Diferenciação de maiúsculas e minúsculas de suporte
    • Todas as permissões são definidas para refletir melhor as permissões do Windows

Como desinstalar uma distribuição WSL?

Para remover uma distribuição do WSL e excluir todos os dados associados a essa distribuição do Linux, execute wsl --unregister <Distro> onde <Distro> está o nome da distribuição do Linux, que pode ser visto na lista no wsl -l comando.

Além disso, você pode desinstalar o aplicativo de distribuição do Linux em seu computador, assim como qualquer outro aplicativo de repositório.

Para saber mais sobre comandos wsl, consulte o artigo, comandos básicos para WSL.

Como executar um servidor OpenSSH?

O OpenSSH é fornecido com o Windows como um recurso opcional. Consulte o documento Instalar OpenSSH . Os privilégios de administrador no Windows são necessários para executar o OpenSSH no WSL. Para executar um servidor OpenSSH, execute sua distribuição WSL (ou seja, Ubuntu) ou o Terminal do Windows como administrador. Há vários recursos por aí que abrangem cenários SSH com WSL. Confira os artigos do blog de Scott Hanselman: Como fazer SSH em um Windows 10 Machine do Linux OU windows ou em qualquer lugar, Como fazer SSH no WSL2 no Windows 10 de um computador externo, A MANEIRA FÁCIL de SSH no Bash e WSL2 no Windows 10 de um computador externo e como usar o OpenSSH interno do Windows 10 para SSH automaticamente em um computador Linux remoto.

Como posso alterar o idioma de exibição do WSL?

A instalação do WSL tentará alterar automaticamente a localidade do Ubuntu para corresponder à localidade da instalação do Windows. Se você não quiser esse comportamento, poderá executar esse comando para alterar a localidade do Ubuntu após a conclusão da instalação. Você precisará relançar sua distribuição WSL para que essa alteração entre em vigor.

O exemplo abaixo altera a localidade para en-US:

sudo update-locale LANG=en_US.UTF8

Por que não tenho acesso à Internet do WSL?

Alguns usuários relataram problemas com aplicativos de firewall específicos bloqueando o acesso à Internet no WSL. Os firewalls relatados são:

  1. Kaspersky
  2. AVG
  3. Avast
  4. Symantec Endpoint Protection
  5. F-Secure

Em alguns casos, desativar o firewall permite o acesso. Em alguns casos, simplesmente ter o firewall instalado procura bloquear o acesso.

Como fazer para acessar uma porta do WSL no Windows?

O WSL compartilha o endereço IP do Windows, pois está em execução no Windows. Dessa forma, você pode acessar todas as portas no localhost, por exemplo, se você tiver conteúdo da Web na porta 1234, poderá https://localhost:1234 entrar no navegador Windows. Para obter mais informações, consulte Acessando aplicativos de rede.

Como fazer backup de minhas distribuições WSL?

A melhor maneira de fazer backup ou mover suas distribuições é por meio dos comandos deimportação de exportação/ disponíveis no Windows Versão 1809 e posterior. Você pode exportar toda a distribuição para uma tarball usando o wsl --export comando. Em seguida, você pode importar essa distribuição de volta para o WSL usando o wsl --import comando, que pode nomear um novo local de unidade para a importação, permitindo que você faça backup e salve estados de (ou mova) suas distribuições WSL. Para saber mais sobre como mover suas distribuições WSL, veja Como posso transferir meus arquivos WSL de um computador para outro?.

Os serviços de backup tradicionais que backupm arquivos em suas pastas AppData (como o Backup do Windows) não corromperão seus arquivos do Linux.

Posso usar o WSL para cenários de produção?

Sim, no entanto, o WSL foi projetado e criado para usar com fluxos de trabalho de desenvolvimento de loop interno. Há recursos de design no WSL que o tornam ótimo para essa finalidade, mas podem torná-lo desafiador para cenários relacionados à produção em comparação com outros produtos. Nosso objetivo é deixar claro como o WSL difere de um ambiente de VM regular, para que você possa tomar a decisão sobre se ele atende às suas necessidades comerciais.

As principais diferenças entre o WSL e um ambiente de produção tradicional são:

  • O WSL tem uma VM de utilitário leve que inicia, interrompe e gerencia recursos automaticamente.
  • Se você não tiver identificadores de arquivo abertos para processos do Windows, a VM do WSL será desligada automaticamente. Isso significa que, se você estiver usando-o como um servidor Web, SSH nele para executar seu servidor e, em seguida, sair, a VM poderá ser desligada porque está detectando que os usuários terminaram de usá-lo e limpará seus recursos.
  • Os usuários do WSL têm acesso total às instâncias do Linux. O tempo de vida da VM, as distribuições WSL registradas etc., são todos acessíveis pelo usuário e podem ser modificados pelo usuário.
  • O WSL fornece automaticamente acesso de arquivo aos arquivos do Windows.
  • Os caminhos do Windows são acrescentados ao seu caminho por padrão, o que pode causar um comportamento inesperado para determinados aplicativos Linux em comparação com um ambiente linux tradicional.
  • O WSL pode executar executáveis do Windows do Linux, o que também pode levar a um ambiente diferente de uma VM linux tradicional.
  • O kernel do Linux usado pelo WSL é atualizado automaticamente.
  • O acesso à GPU no WSL ocorre por meio de um /dev/dxg dispositivo, que encaminha chamadas de GPU para a GPU do Windows. Essa configuração é diferente de uma configuração tradicional do Linux.
  • Há outras diferenças menores em comparação com o Linux bare-metal e espera-se que mais diferenças surjam no futuro, à medida que o fluxo de trabalho de desenvolvimento de loop interno é priorizado.

Como posso transferir meus arquivos WSL de um computador para outro?

Há algumas maneiras de realizar essa tarefa:

  • A maneira mais fácil é usar o wsl --export <Distro> <FileName> --format vhd comando para exportar sua distribuição WSL para um arquivo VHD. Em seguida, você pode copiar esse arquivo para outro computador e importá-lo usando wsl --import <Distro> <InstallLocation> <FileName> --vhd. Consulte os comandos de importação e exportaçãono documento de comandos básicos do WSL para obter mais informações.
  • A implementação acima requer muito espaço em disco. Se você não tiver muito espaço em disco, poderá usar técnicas do Linux para mover seus arquivos:
    • Use tar -czf <tarballName> <directory> para criar uma tarball de seus arquivos. Em seguida, você pode copiar esses arquivos específicos para seu novo computador e executá-los tar -xzf <tarballName> para extraí-los.
    • Você também pode exportar uma lista de pacotes instalados por meio apt de um comando como esse: dpkg --get-selections | grep -v deinstall | awk '{print $1}' > package_list.txt e reinstalar esses mesmos pacotes em outro computador com um comando como sudo apt install -y $(cat package_list.txt) depois de transferir o arquivo.

Como posso mover minha distribuição WSL para uma unidade ou local diferente?

Você pode fazer isso usando o PowerShell. Abaixo estão os comandos e explicações necessários para cada etapa. Abra uma janela do PowerShell e ajuste os valores entre as <> marcas para se ajustar ao seu caso de uso específico:

# Export your distro to that folder as a VHD
wsl --export <Distro, e.g: Ubuntu> <FileName, e.g: D:\WSLDistros\Ubuntu\ext4.vhdx> --format vhd

# Unregister your old distro
# Please note this will erase your existing distro's file contents, please ensure the backup file you created in the 2nd step is present at the location and that the export operation completed successfully.
# Please exercise caution when using this command, as it is destructive and could cause data loss.
wsl --unregister <Distro, e.g: Ubuntu>

# Import your VHD backup
wsl --import-in-place <Distro, e.g: Ubuntu> <FileName, e.g: D:\WSLDistros\Ubuntu\ext4.vhdx>

Como definir sua conta de usuário padrão

Você pode configurar sua conta de usuário padrão definindo um wsl.conf valor de user.default=<name>

WSL 2

O WSL 2 está disponível no Windows 10 Home e no Windows 11 Home?

Sim. O WSL 2 está disponível em todas as SKUs da Área de Trabalho em que o WSL está disponível, incluindo o Windows 10 Home e o Windows 11 Home.

Especificamente, o WSL2 requer que dois recursos sejam habilitados:

  1. "Plataforma de Máquina Virtual" (um subconjunto de Hyper-V)
  2. "Subsistema do Windows para Linux"

O WSL 2 usa o Hyper-V?

A versão mais recente do WSL usa um subconjunto de arquitetura Hyper-V para habilitar sua virtualização. Esse subconjunto é fornecido como um componente opcional chamado "Plataforma de Máquina Virtual", disponível em todas as SKUs da Área de Trabalho.

O que acontecerá com o WSL 1? Será abandonado?

No momento, não temos planos de preterir o WSL 1. Você pode executar as distribuições WSL 1 e WSL 2 lado a lado e pode atualizar e fazer downgrade de qualquer distribuição a qualquer momento. Adicionar o WSL 2 como uma nova arquitetura apresenta uma plataforma melhor para a equipe do WSL fornecer recursos que tornam o WSL uma maneira incrível de executar um ambiente Linux no Windows.

Será possível executar o WSL 2 e outras ferramentas de virtualização de terceiros, como VMware ou VirtualBox?

Alguns aplicativos de terceiros não podem funcionar quando Hyper-V estiver em uso, o que significa que eles não poderão ser executados quando o WSL 2 estiver habilitado, como VMware e VirtualBox. No entanto, recentemente, tanto o VirtualBox quanto o VMware lançaram versões que dão suporte a Hyper-V e ao WSL2. Saiba mais sobre as alterações da VirtualBox aqui e as alterações do VMware aqui. Para solucionar problemas, examine as discussões sobre o problema do VirtualBox no repositório WSL no GitHub. O StackOverflow também oferece uma dica útil: como fazer com que o VirtualBox 6.0 e o WSL funcionem ao mesmo tempo.

Estamos trabalhando consistentemente em soluções para dar suporte à integração de terceiros do Hyper-V. Por exemplo, expõemos um conjunto de APIs chamado Plataforma hypervisor que os provedores de virtualização de terceiros podem usar para tornar seu software compatível com o Hyper-V. Isso permite que os aplicativos usem a arquitetura Hyper-V para sua emulação, como o Google Android Emulator e o VirtualBox 6 e superior, que agora são compatíveis com o Hyper-V.

Consulte o repositório de problemas do WSL para obter mais informações e discussões sobre problemas do WSL 2 com o VirtualBox 6.1.

*Se você estiver procurando uma máquina virtual do Windows, os downloads de VMWare, Hyper-V, VirtualBox e Parallels estão disponíveis no Centro de Desenvolvimento do Windows.

Posso acessar a GPU no WSL 2? Há planos para aumentar o suporte a hardware?

Lançamos suporte para acessar a GPU dentro das distribuições do WSL 2! Isso significa que agora você pode usar o WSL para aprendizado de máquina, inteligência artificial e cenários de ciência de dados com mais facilidade quando os conjuntos de Big Data estão envolvidos. Confira o tutorial de suporte para introdução à GPU . A partir de agora, o WSL 2 não inclui suporte serial ou suporte a dispositivos USB. Estamos investigando a melhor maneira de adicionar esses recursos. No entanto, o suporte a USB agora está disponível por meio do projeto USBIPD-WIN. Consulte os dispositivos USB connect para obter etapas para configurar o suporte a dispositivos USB.

O WSL 2 pode usar aplicativos de rede?

Sim, em geral, os aplicativos de rede funcionarão melhor e serão mais rápidos com o WSL 2, pois ele oferece compatibilidade completa de chamadas do sistema. No entanto, a arquitetura do WSL 2 usa componentes de rede virtualizados, o que significa que o WSL 2 se comportará de forma semelhante a uma máquina virtual. As distribuições do WSL 2 terão um endereço IP diferente do computador host (sistema operacional Windows). Para obter mais informações, veja Accessing network applications with WSL (Aceder a aplicações de rede com WSL).

Posso executar o WSL 2 em uma máquina virtual?

Sim! Você precisa garantir que a máquina virtual tenha a virtualização aninhada habilitada. Isso pode ser habilitado no host de Hyper-V pai executando o seguinte comando em uma janela do PowerShell com privilégios de Administrador:

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

Substitua '<VMName>' pelo nome da sua máquina virtual.

Posso usar wsl.conf no WSL 2?

O WSL 2 dá suporte ao mesmo arquivo wsl.conf usado pelo WSL 1. Isso significa que todas as opções de configuração definidas em uma distribuição do WSL 1, como desmontagem automática de unidades do Windows, habilitação ou desabilitação da interoperabilidade, alteração do diretório em que as unidades do Windows serão montadas, etc. funcionarão dentro do WSL 2. Saiba mais sobre as opções de configuração no WSL na página Gerenciamento de Distribuição . Saiba mais sobre o suporte para unidades de montagem, discos, dispositivos ou VHDs (discos rígidos virtuais) no artigo Montar um disco Linux no WSL 2 .

1: Changelog para VirtualBox 6.02: Hyper-V API3: Hyper-V suporte ao emulador Android4: VMware Workstation Tech Preview 20H1 — Suporte ao VBS do Hyper-V/Host

Onde posso fornecer comentários?

Os problemas do repositório de produtos do WSL permitem que você:

  • Pesquisar problemas existentes para ver se há algum associado a um problema que você está tendo. Observe que, na barra de pesquisa, você pode remover "is:open" para incluir problemas que já foram resolvidos em sua pesquisa. Considere comentar ou dar um joinha em qualquer problema aberto para expressar seu interesse em avançar como prioridade.
  • Registre um novo problema. Se você tiver encontrado um problema com o WSL e não parecer haver um problema existente, poderá selecionar o botão verde Novo problema e, em seguida, escolher WSL – Relatório de Bugs. Você precisará incluir um título para o problema, seu número de build do Windows (execute cmd.exe /c ver para ver seu build atual #), se você estiver executando o WSL 1 ou 2, sua versão atual do Kernel do Linux # (executar wsl.exe --status ou cat /proc/version), a versão # da distribuição (executar lsb_release -r), quaisquer outras versões de software envolvidas, as etapas de reprodução, o comportamento esperado, o comportamento real, e logs de diagnóstico, se disponíveis e apropriados. Para obter mais informações, consulte contribuir para o WSL.
  • Registre uma solicitação de recurso selecionando o botão Novo problema verde e, em seguida, selecione Solicitação de recurso. Você precisará responder a algumas perguntas que descrevem sua solicitação.

Você também pode:

Se você quiser se manter atualizado com as últimas notícias do WSL, poderá fazer isso com:

Como resolver 'Erro: 0x800704ec Este programa é bloqueado pela política de grupo. Para obter mais informações, entre em contato com o administrador do sistema.'?

Esse erro é causado por uma política de grupo que bloqueia o WSL. Para resolver, primeiro execute o comando wsl --update para atualizar para a versão mais recente da Store. Se isso não resolver o problema, contate o administrador. Saiba mais sobre a diferença entre a versão WSL e Store da caixa de entrada do WSL: WSL na Microsoft Store.

LxssManager foi substituído pelo WSLService?

Sim, LxssManager foi substituído pelo WSLService quando o WSL fez a transição de um componente de caixa de entrada para ser atendido pela Microsoft Store.