Relacionado:Existe uma maneira de instalar o subsistema Windows para Linux no Win10 (v1709) sem usar a Loja?
Ao instalar uma distribuição WSLforada Microsoft Store (por exemplo, em uma rede restrita, veja o link), muitos dos meios padrão de interação com essa distribuição não estão disponíveis. No meu exemplo, quando passo por Configurações > Aplicativos e Recursos, a distro não aparece na lista e os recursos de gerenciamento não estão disponíveis. Se eu colocar minha instância do Linux instalada manualmente em um estado ruim, qual é a maneira correta de redefini-la e trazê-la de volta para uma nova instalação?
Editar: exemplos de 'estado ruim' encontrados até agora incluem um BSOD durante uma 'atualização do apt-get', levando a um estado irrecuperável. Além disso, realizar múltiplas alterações de configuração para solucionar um problema, remover ou desabilitar serviços e instalar outros pacotes sem acompanhar de perto o que foi alterado, com o desejo de "começar do zero" para testar se a solução encontrada realmente funciona por conta própria ..
Responder1
Se minha instância do Linux instalada manualmente estiver em mau estado, qual é a maneira correta de redefini-la e trazê-la de volta para uma nova instalação?
Se você estiver executando o Windows 10 versão 1903:
wsl --unregister <DistributionName>
Se você estiver executando o Windows 10 versão 1709, 1803 ou 1809:
wslconfig /unregister <DistributionName>
Responder2
Você pode usarChocolate(com um repositório NuGet privado, por exemplo) e escolha a imagem Debian com:
choco install wsl-debiangnulinux
Mas então
- apenas atalhos estão disponíveis como "Terminal WSL" e "Terminal Debian".
- você não será solicitado a criar um usuário, apenas um shell root será iniciado
- você não encontrará sua distribuição Linux para WSL em "Configurações/Aplicativos e Recursos" e, portanto, não haverá "Opções avançadas" ou "Redefinir"
A propósito, a linha de comando wsl está disponível, mas você deve criar manualmente sua conta de usuário (useradd ou adduser de acordo com a distribuição), conceder sudo (grupo sudo ou sudoers) e criar /etc/wsl.conf
com [user]
a seção e default=yourlogin
- consultewsl-configdocumentação. No meu caso, <distribution> config --default-user yourlogin
não teve efeito.
Em caso de interrupção definitiva, a única opção parece executar a seguinte sequência de:
wsl --export <distribution> wsl-backup-<distribution>.tar
wsl --unregister <distribution>
choco install wsl-<distribution>
wsl --import <distribution> wsl-backup-<distribution>.tar
com esperança de que seus problemas não o sigam com arquivos importados.
Responder3
Aviso:As informações a seguir não estão totalmente documentadas oficialmente porque a questão trata da “instalação manual” da distribuição no WSL. Portanto, o procedimento pode serpouco diferenteem versões futuras do Windows 10.
Para entender primeiro precisamos saber qual a diferença entre instalar a distribuição pela Windows Store e manualmente. Pense na Windows Store como um gerenciador de pacotes do Windows. Ele monitora todos os pacotes instalados, desinstalados, atualizados etc. Assim, há uma lista de aplicativos instalados no menu Configurações. Quando a distribuição é instalada ela vem como um pacote Appx (arquivo ZIP). Esse pacote contém um tarball rootfs (arquivo tar GZIP) dessa distribuição (exemplo install.tar.gz
), um executável do iniciador (exemplo ubuntu.exe
) e alguns outros itens.
Quando esse inicializador é executado pela primeira vez, ele extrai o tarball (como tar -xf
um comando) e cria uma entrada de registro na HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{GUID}
chave de registro. Esta chave de registro é importante, pois fornece onde a distribuição está instalada, usuário padrão, etc.
Quando a distribuição está instaladamanualmenteesta mesma chave de registro é criada, mas com caminho base diferente e outros. Como este procedimento manual não vem da Windows Store, ele não está listado no aplicativo Configurações. Mas wsl.exe --list --all
o comando pode mostrar toda a distribuição instalada no WSL. Desta forma, não obtemos o executável do inicializador, mas podemos fazer todo o trabalho com o wsl.exe
.
Como podemos sair do 'estado ruim'? Se você está familiarizado com o mundo UNIX, assuma distribuições em WSL como emambiente com chroot. Semprefazer backup de uma distribuição WSL. Como de costume em distribuições reais baseadas em Debian, geralmente executamos estes comandos para corrigir pacotes:
sudo dpkg –configure -a
sudo apt update –fix-missing
sudo apt install -f
Se isso não resolver o problema, desinstalar e reinstalar pode corrigi-lo. Você pode querer fazer backup da /home
pasta tar -czf
porque a maioria das configurações específicas do usuário são salvas lá. Em seguida, desinstale a distribuição com wsl.exe --unregister <Distribution Name>
o comando. O backup pode ser importante para os usuários porque o comando anterior remove toda a pasta raiz, também conhecida como. /
. Agora você pode instalar uma nova distribuição e extrair a /home
pasta de backup anterior tar -xf
normalmente.
Responder4
Experimente isto:
wsl --set-default-version 2
Você também pode definir a versão do wsl para qualquer distribuição instalada:
wsl --set-version Ubuntu-20.04 1