Eu quebrei o Windows Linux Subsystem (Bash no Ubuntu no Windows 10). Ajuda do Linux?

22

Eu tenho jogado com o novo subsistema linux no Windows e de alguma forma eu o quebrei e agora a maioria dos componentes internos do Ubuntu (apt-get, dpkg, etc) não funcionam. Tudo o que eu tento, recebo a mesma mensagem ...

    Setting up udev (204-5ubuntu20.19) ...
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: No such file or directory
runlevel:/var/run/utmp: No such file or directory
 * udev requires devtmpfs support, not started
   ...fail!
invoke-rc.d: initscript udev, action "restart" failed.
dpkg: error processing package udev (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of systemd-services:
 systemd-services depends on udev (>= 175-0ubuntu23); however:
  Package udev is not configured yet.

dpkg: error processing package systemd-services (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libpam-systemd:amd64:
No apport report written because the error message indicates its a followup error from a previous failure. libpam-systemd:amd64 depends on systemd-services (= 204-5ubuntu20.19); however:
  Package systemd-services is not configured yet.


dpkg: error processing package libpam-systemd:amd64 (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
 udev
 systemd-services
 libpam-systemd:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Alguma idéia de como corrigir isso?

Mike Pengelly
fonte
Existe uma opção "redefinir" ou desinstalar / reinstalar? Provavelmente é o mais fácil e rápido. Alguma idéia do que você fez para que isso acontecesse? Apagar root ( /) ou algo assim?
Xen2050 13/04/16
1
Por AskUbuntu , tente: sudo apt-get install upstart-sysv para uma solução rápida - essa postagem também possui um link para a correção "recomendada". Não tenho certeza se é o mesmo problema, mas parece que isso pode estar relacionado.
Tanner
1
@ Ramhound Eu não perguntei como reinstalar o Bash no Ubuntu no Windows 10, perguntei como corrigir o problema. Eu nunca tive esse problema no Ubuntu. Se vai Nuclear é corrigir problemas, então eu não quero estar por perto quando eles corrigir o aquecimento global
Mike Pengelly
1
@ Ramhound Mas eu não respondo minha pergunta. É como dizer "reinstale o Windows toda vez que você receber uma mensagem de erro" ou "compre um carro novo toda vez que ouvir um barulho" ... Isso resolve o problema, mas não é uma solução prática.
Mike Pengelly

Respostas:

34

Atenção, esse processo restaurará o Lxss para a configuração inicial

Para reinstalar o Lxss, abra o Windows cmdcomo administrador e execute:

C:\WINDOWS\system32>LxRun.exe /uninstall

Então:

C:\WINDOWS\system32>LxRun.exe /install
Jonas
fonte
1
Eu não marquei isso como a resposta, porque é uma abordagem nuclear para o problema que eu estava tendo. Sim, ele iria consertar (em teoria, eu não tentei), mas a maneira como eu corrigi-lo corrige meu problema exato com a saída nuclear. Mas se eu continuar tendo problemas, eu recomendaria essa abordagem se você quiser economizar horas. No futuro, embora eu duvide que as pessoas desejem reconfigurar o Linux Subsystem toda vez que algo der errado.
Mike Pengelly
O problema está no próprio subsistema Ubuntu. Reinstalá-lo não vai resolver nada
Panagiotis Kanavos
2
@ PanagiotisKanavos para aqueles de nós que encontram a pergunta via google (tendo feito uma bagunça em nossas instalações): posso garantir que a resposta ainda é muito apreciada!
Marc Gravell
2
Vocês estão certos, essa não é a resposta e devemos usá-la como última opção.
Jonas
Estou recebendo um Access is denied.quando executo C:\WINDOWS\system32>LxRun.exe /uninstallmesmo se a sessão cmd estiver sendo executada "como Administrador". Alguma ideia?
Fredrik 17/05
18

Corrigido.

Correu:

apt-get remove upstart

então

apt-get remove udev

então

apt-get autoremove

e tudo parece estar funcionando agora.

Mike Pengelly
fonte
1
Deve ter instalado quando eu instalei o x11 (uma versão muito nova) ... o servidor btw x deve ser executado no Windows, não no subsistema linux. e então você transmitirá o pedido executando DISPLAY = 0: firefox
Mike Pengelly
9

A resposta oficial da microsoft

github: Microsoft / BashOnWindows

Esse é um problema que todos começarão a ver. Precisamos adicionar algo sobre isso em nossos documentos oficiais.

Como aponta o @nuclearmistake, o udev é algo que interrompe o apt-get, mas os erros não devem causar nenhum problema na WSL. Entramos em contato com a Canonical pedindo a melhor solução e eles recomendam as seguintes alterações:

Escreva o seguinte para /usr/sbin/policy-rc.d

#!/bin/sh exit 101

chmod + x /usr/sbin/policy-rc.d

dpkg-desvio --local --rename --add / sbin / initctl

ln -s / bin / true / sbin / initctl

Eu tentei este sozinho e parece funcionar muito bem.

livre de bois
fonte
6

Aqui está uma solução mais direcionada. Crie um script chamado /usr/sbin/policy-rc.d( nano /usr/sbin/policy-rc.d) com o seguinte conteúdo:

#!/bin/sh
case "$1" in
    udev|systemd-logind) exit 101;;
esac

Salve e saia ( Ctrl+ O Ctrl+ X). Marque o script como executável ( chmod +x /usr/sbin/policy-rc.d). Este script diz dpkgpara não tentar iniciar udevou systemd-logind.

Você poderá concluir a dpkgetapa de configuração com falha anteriormente ( dpkg --configure -a).

Anders Kaseorg
fonte
2
Essa é uma resposta que pode ser melhorada, explicando o que aconteceu , qual era o "de alguma forma" na pergunta e como essa série de etapas trata disso. Aqui está um ponteiro para usar. Aqui está outro .
JdeBP