Rompí el subsistema de Windows Linux (Bash en Ubuntu en Windows 10). Ayuda de Linux?

22

He estado jugando con el nuevo subsistema de Linux en Windows y de alguna manera lo he roto y ahora la mayoría de los componentes internos de Ubuntu (apt-get, dpkg, etc.) no funcionan. Todo lo que intento algo me sale el mismo mensaje ...

    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)

Alguna idea de cómo solucionar este problema?

Mike Pengelly
fuente
¿Existe una opción de "restablecer" o desinstalar / reinstalar? Esa es probablemente la más fácil y rápida. ¿Alguna idea de lo que hiciste para que esto sucediera? ¿Borrar root ( /) o algo así?
Xen2050
1
Según AskUbuntu , intente: sudo apt-get install upstart-sysv para una solución rápida: esa publicación también tiene un enlace a la solución "recomendada". No estoy seguro de que sea el mismo problema, pero parece que podría estar relacionado.
curtidor
1
@ Ramhound No pregunté cómo reinstalar Bash en Ubuntu en Windows 10, pregunté cómo solucionar el problema. Nunca he tenido este problema en realidad Ubuntu. Si ir a Nuclear está solucionando problemas, entonces no quiero estar cerca cuando arreglen el calentamiento global
Mike Pengelly
1
@Ramhound Pero no respondo mi pregunta. Es como decir "reinstalar Windows cada vez que reciba un mensaje de error" o "comprar un auto nuevo cada vez que escuche un ruido" ... Resuelve el problema pero no es una solución práctica.
Mike Pengelly

Respuestas:

34

Advertencia, este proceso restaurará Lxss a la configuración inicial

Para reinstalar el Lxss, abra Windows cmdcomo administrador y ejecute:

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

Luego:

C:\WINDOWS\system32>LxRun.exe /install
Jonas
fuente
1
No marqué esto como la respuesta porque es un enfoque nuclear del problema que estaba teniendo. Sí, lo solucionaría (en teoría, no lo intenté), pero la forma en que lo solucioné corrige mi problema exacto sin salir nuclear. Pero si sigo teniendo problemas, recomendaría este enfoque si desea ahorrar horas. En el futuro, dudo que la gente quiera reconfigurar el subsistema Linux cada vez que algo sale mal.
Mike Pengelly
El problema es con el subsistema Ubuntu en sí. Reinstalarlo no solucionará nada
Panagiotis Kanavos
2
@PanagiotisKanavos para aquellos de nosotros que encontramos la pregunta a través de Google (después de haber hecho un desastre en nuestras instalaciones): ¡Puedo asegurarles que la respuesta es muy apreciada!
Marc Gravell
2
Ustedes tienen razón, esta no es la respuesta y deberíamos usar esto como última opción.
Jonas
Recibo un mensaje Access is denied.cuando ejecuto C:\WINDOWS\system32>LxRun.exe /uninstallincluso si la sesión de cmd se ejecuta "como Administrador". ¿Algunas ideas?
fredrik
18

Arreglado.

Corrió:

apt-get remove upstart

luego

apt-get remove udev

luego

apt-get autoremove

y todo parece estar funcionando ahora.

Mike Pengelly
fuente
1
Debe haber instalado cuando instalé x11 (una versión demasiado nueva) ... por cierto, el servidor x debe ejecutarse en Windows, no en el subsistema de Linux. y luego reenvías la aplicación ejecutando DISPLAY = 0: firefox
Mike Pengelly el
9

La respuesta oficial de microsoft

github: Microsoft / BashOnWindows

Este es un problema que todos comenzarán a ver. Necesitamos agregar algo sobre esto en nuestros documentos oficiales.

Como señala @nuclearmistake, udev es algo que se rompe en apt-get pero los errores no deberían causar ningún problema en WSL. Nos hemos comunicado con Canonical para pedirle la mejor solución y recomiendan los siguientes cambios:

Escriba lo siguiente en /usr/sbin/policy-rc.d

#!/bin/sh exit 101

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

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

ln -s / bin / true / sbin / initctl

He probado este mismo y parece funcionar bastante bien.

libre de bueyes
fuente
6

Aquí hay una solución más específica. Cree un script llamado /usr/sbin/policy-rc.d( nano /usr/sbin/policy-rc.d) con los siguientes contenidos:

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

Guardar y salir ( Ctrl+ O Ctrl+ X). Marque el script como ejecutable ( chmod +x /usr/sbin/policy-rc.d). Este script le dice que dpkgno intente iniciar udevo systemd-logind.

Entonces podrá completar el dpkgpaso de configuración que falló anteriormente ( dpkg --configure -a).

Anders Kaseorg
fuente
2
Esta es una respuesta que podría mejorarse al explicar lo que sucedió , cuál fue el "de alguna manera" en la pregunta y cómo esta serie de pasos lo aborda. Aquí hay un puntero para usar. Aquí hay otro .
JdeBP