Install Arch Linux on WSL (Português)

Status de tradução:
Esse artigo é uma tradução de
Install Arch Linux on WSL
. Data da última tradução: 2025-05-14. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
Arch Linux fornece uma imagem oficial de
WSL (Windows Subsystem for Linux ou, em português, Subsistema do Windows para Linux)
como parte do projeto
archlinux-wsl
.
As imagens são criadas e lançadas mensalmente e têm como objetivo fornecer o sistema mais simples, porém completo, para oferecer uma experiência completa do Arch Linux com WSL.
Nota
Estas imagens são construídas para o
WSL 2
. WSL 1
não
é suportado.
Instalação
Instalação do WSL
Habilitar virtualização
na configuração UEFI e, em seguida,
instalar
o
Subsistema Windows para Linux
na Microsoft Store.
Nota
A versão da Store do WSL é
agora a versão padrão
do WSL. Você não deve habilitar o componente opcional "Subsistema Windows para Linux" nem instalar o kernel do WSL ou os pacotes MSI do WSLg, pois eles não são mais necessários.
Usar a versão da Store do WSL permite que você
obtenha atualizações do WSL muito mais rápido
em comparação a quando ele era um componente do Windows.
O WSLg
agora também está incluído.
Atualização do WSL
Para atualizar para a versão estável mais recente do WSL e do WSLg, execute o seguinte comando em um prompt elevado do PowerShell.
> wsl --update
Para atualizar para a versão de pré-lançamento mais recente, execute:
> wsl --update --pre-release
Instalar Arch Linux no WSL
Em um sistema Windows
com WSL 2 instalado
, use um dos seguintes métodos de instalação.
Instalação automatizada
Execute o seguinte comando em um prompt do PowerShell:
> wsl --install archlinux
Você pode então executar o Arch Linux no WSL por meio do aplicativo
archlinux
no menu Iniciar ou executando
wsl -d archlinux
em um prompt do PowerShell.
Instalação manual
Nota
Isso requer
WSL 2.4.4
ou superior.
Baixe a imagem
mais recente do .wsl do Arch Linux
e clique duas vezes nela para iniciar a instalação ou execute o seguinte comando em um prompt do PowerShell:
> wsl --install --from-file
image_WSL
Por exemplo:
> wsl --install --from-file C:\Users\
Nome_de_usuário
\Downloads\archlinux-2025.04.01.121271.wsl
Dica
Isso instalará a imagem WSL com o nome de distribuição padrão
archlinux
. Se desejar importá-lo com um nome diferente, adicione a opção
--name [Nome_da_distro]
.
Você pode então executar o Arch Linux no WSL por meio do aplicativo
archlinux
no menu Iniciar ou executando
wsl -d archlinux
em um prompt do PowerShell.
Dicas e truques
Definir o usuário padrão
Para definir um usuário padrão diferente de
root
, primeiro
certifique-se de que o usuário foi criado
e, em seguida, anexe o seguinte ao arquivo
/etc/wsl.conf
:
[user]
default=
nome_de_usuário
Certifique-se de fornecer uma senha ao seu usuário
root
antes de encerrar a sessão. Se você estiver "bloqueado", execute
> wsl -u root
a partir de uma janela de comando no host Windows.
A alteração será aplicada na próxima sessão. Para encerrar a sessão atual, execute o seguinte comando em um prompt do PowerShell:
> wsl --terminate archlinux
Executar aplicativos gráficos com WSLg
WSLg (Windows Subsystem for Linux GUI)
é um projeto que visa permitir
a execução de aplicativos Linux com suporte a áudio (PulseAudio) e gráficos (X11 e Wayland) dentro do WSL
.
Para poder executar aplicativos gráficos com o WSLg, habilite o suporte a aplicativos GUI no arquivo
%USERPROFILE%\.wslconfig
do seu sistema Windows (crie-o se ainda não existir) com o seguinte conteúdo:
[wsl2]
guiApplications = true
Com o conjunto acima, o WSL cria links simbólicos ao abrir uma sessão para os soquetes dos servidores X11 e Wayland, mas estes são sobrescritos pelo systemd durante a inicialização. Consulte
microsoft/wslg#1032
para obter mais detalhes.
Nota
O problema de sobrescrita de links simbólicos foi corrigido na
versão de pré-lançamento 2.5.7.0 do WSL
, embora ainda seja necessário definir a variável de ambiente GALLIUM_DRIVER como d3d12.
Enquanto aguarda a resolução do problema pelo upstream, crie os links simbólicos manualmente. Primeiro, crie uma configuração
systemd-tmpfiles
para vincular o diretório que contém o soquete do servidor X11:
/etc/tmpfiles.d/wslg.conf
#      Path         Mode UID  GID  Age Argument
L+     %T/.X11-unix -    -    -    -   /mnt/wslg/.X11-unix
Em seguida, crie o seguinte arquivo para vincular o diretório que contém o soquete do servidor PulseAudio e Wayland, bem como definir o driver Gallium:
/etc/profile.d/wslg.sh
export GALLIUM_DRIVER=d3d12

for i in "/mnt/wslg/runtime-dir/"*; do
  [ "$XDG_RUNTIME_DIR" = "$HOME" ] && XDG_RUNTIME_DIR="/var/run/user/$UID"
  if [ ! -L "$XDG_RUNTIME_DIR$(basename "$i")" ]; then
    [ -d "$XDG_RUNTIME_DIR$(basename "$i")" ] && rm -r "$XDG_RUNTIME_DIR$(basename "$i")"
    ln -s "$i" "$XDG_RUNTIME_DIR$(basename "$i")"
  fi
done
As alterações serão aplicadas na próxima sessão. Para encerrar a sessão atual, execute o seguinte comando em um prompt do PowerShell:
> wsl --terminate archlinux
Renderização acelerada por hardware
Para utilizar a renderização acelerada por hardware no WSL,
instale
os seguintes pacotes:
mesa
- Contém o driver Gallium
d3d12
para OpenGL
vulkan-dzn
- Contém o driver Vulkan experimental
dzn
(também conhecido como
microsoft-experimental
)
Você precisará instalar o
vulkan-icd-loader
(e o
lib32-vulkan-icd-loader
se também quiser executar aplicativos de 32 bits).
Se o OpenGL recorrer ao renderizador de software llvmpipe para GPUs Intel, você precisará criar um link simbólico para o libedit:
# ln -s /usr/lib/libedit.so /usr/lib/libedit.so.2
Consulte
https://github.com/microsoft/wslg/issues/996
e
https://wiki.gentoo.org/wiki/Gentoo_in_WSL#OpenGL_falling_back_to_llvmpipe_software_renderer_on_Intel_GPUs
para obter mais informações.
Interoperabilidade do WSL
O WSL contém
[1]
interoperabilidade entre o Windows e o WSL. Isso permite que você execute binários do Windows a partir do WSL.
Para usar a interoperabilidade, certifique-se de que ela esteja habilitada no arquivo
/etc/wsl.conf
com o seguinte conteúdo:
[interop]
enabled = true
Diversas ferramentas foram criadas para permitir que você utilize serviços e recursos do Windows a partir do WSL.
Fazer ponte do serviço ssh-agent do Windows
wsl2-ssh-agent
é uma ferramenta que permite usar o
agente SSH
do Windows de dentro do WSL.
Isso é especialmente útil se você utiliza chaves SSH
*-sk
que exigem o uso de chaves de segurança físicas ou mesmo
Windows Hello
.
Instale o
wsl2-ssh-agent
AUR
e adicione o seguinte ao seu
~/.bashrc
:
eval "$(/usr/sbin/wsl2-ssh-agent)"
Reinicie o shell e a
variável de ambiente
SSH_AUTH_SOCK
deverá estar configurada corretamente.
Autenticação PAM com Windows Hello
WSL-Hello-Sudo
é um plugin
PAM
que permite autenticar seu usuário via
Windows Hello
.
Instale
wsl-hello-sudo-bin
AUR
e execute
/opt/wsl-hello-sudo/install.sh
. O instalador copiará um executável do Windows para um diretório de sua escolha e armazenará um certificado usado para autenticação ao lado dele.
Dica
https://github.com/nullpo-head/WSL-Hello-sudo
não é atualizado há 4 anos, então
wsl-hello-sudo-bin
AUR
utiliza um fork (
https://github.com/lzlrd/wsl-hello-sudo
) que foi mesclado com atualizações de dependências.
Adicione
auth enough pam_wsl_hello.so
a quaisquer arquivos de configuração
/etc/pam.d
que você deseja autenticar com o Windows Hello. Por exemplo, com sudo:
/etc/pam.d/sudo
#%PAM-1.0
auth            sufficient      pam_wsl_hello.so
auth            include         system-auth
account         include         system-auth
session         include         system-auth
Passando dispositivos para WSL
O WSL 2 é uma máquina virtual
Hyper-V
. Isso permite a passagem de dispositivos físicos do host (Windows) para o convidado (WSL 2).
Montar um disco
O WSL 2 suporta a anexação e montagem de discos disponíveis para Windows.
Para isso, primeiro identifique o
DeviceID
do disco fornecido com o seguinte comando do PowerShell:
> GET-CimInstance -query "SELECT * from Win32_DiskDrive"
Depois de encontrar o disco que deseja passar, execute o seguinte no Windows (com privilégios de administrador):
> wsl --mount
DeviceID
--bare
Atenção
Isso deixará o disco offline no Windows! Certifique-se de ter fechado todos os aplicativos em execução no disco.
Após a conexão, você poderá visualizar o dispositivo com
lsblk
.
Para desmontar um disco, execute:
> wsl --unmount
DeviceID
Para mais informações, veja
https://learn.microsoft.com/pt-br/windows/wsl/wsl2-mount-disk
.
Conectar dispositivos USB
usbipd-win
é um projeto que permite o compartilhamento de dispositivos USB conectados localmente com outras máquinas, incluindo o WSL 2.
Primeiro, você precisa instalar o software no Windows. Você pode executar o instalador (
.msi
) a partir da
versão mais recente
ou usar o
Gerenciador de Pacotes do Windows
:
> winget install usbipd
Após a instalação, identifique os dispositivos USB disponíveis e anote o ID do barramento executando o seguinte no Windows:
> usbipd list
Prepare o dispositivo USB que você selecionou executando (isso requer privilégios de Administrador):
> usbipd bind --busid
id_barramento
Atenção
Certifique-se de ter fechado todos os aplicativos em execução usando o dispositivo USB.
Em seguida, conecte o dispositivo USB ao WSL 2 usando:
> usbipd attach --wsl --busid
id_barramento
Uma vez conectado, você poderá ver o dispositivo com
lsusb
.
Para desconectar um dispositivo USB, execute:
> usbipd detach --busid
id_barramento
Para mais informações, veja
https://learn.microsoft.com/pt-br/windows/wsl/connect-usb
.
Solução de problemas
Suporte a systemd
A imagem WSL do Arch Linux oferece suporte ao
systemd
.
No entanto, existem problemas pendentes conhecidos que podem exigir ações adicionais para que o systemd funcione corretamente.
systemd requer suporte a cgroup v2
Nota
Isso não é mais necessário desde
WSL 2.4.12
.
Atualmente, o WSL inicia sistemas com suporte a cgroup v1 por padrão
[2]
, mas o systemd >= 256 removeu o suporte para ele
[3]
e requer suporte a cgroup v2 simples.
Enquanto aguarda o WSL iniciar sistemas com suporte a cgroup v2 simples por padrão, você pode forçar isso desabilitando o suporte a cgroup v1 no arquivo
%USERPROFILE%\.wslconfig
do seu sistema Windows (crie-o se ele não existir) com o seguinte conteúdo:
[wsl2]
kernelCommandLine = cgroup_no_v1=all systemd.unified_cgroup_hierarchy=1
A alteração será aplicada na próxima sessão. Para encerrar sua sessão atual, execute o seguinte comando em um prompt do PowerShell:
> wsl --terminate archlinux
Falha ao executar contêineres Docker
Você pode enfrentar o seguinte erro ao executar um contêiner
Docker
do WSL:
Error response from daemon: path / is mounted on / but it is not a shared or slave mount
Error: failed to start containers
Também é possível que comandos como
docker run
simplesmente travem para sempre sem produzir nenhuma saída.
Isso ocorre porque o Docker espera que o diretório raiz (
/
) seja montado com propagação de rshared.
Para isso, execute:
# mount --make-rshared /
Para tornar a alteração persistente, você pode
criar um serviço systemd
que execute este comando no início da inicialização:
/etc/systemd/system/mount-root-rshared.service
[Unit]
Description=Remount / with shared propagation
Requires=-.mount
After=-.mount

[Service]
Type=oneshot
ExecStart=/bin/mount --make-rshared /

[Install]
WantedBy=local-fs.target
Então,
inicie/habilite
mount-root-rshared.service
.
Veja também
Wikipedia:pt:Subsistema Windows para Linux
Gentoo:Gentoo in WSL
Documentação oficial
Wiki no GitHub do WSLg