Ich habe das Windows Linux Subsystem (Bash unter Ubuntu unter Windows 10) kaputt gemacht. Linux-Hilfe?

22

Ich habe mit dem neuen Linux-Subsystem unter Windows gespielt und irgendwie habe ich es kaputt gemacht, und jetzt funktionieren die meisten Interna von Ubuntu (apt-get, dpkg usw.) nicht mehr. Alles, was ich versuche, bekomme ich die gleiche Nachricht ...

    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)

Irgendwelche Ideen, wie man das behebt?

Mike Pengelly
quelle
Gibt es eine "Reset" - oder Deinstallations- / Neuinstallationsoption? Das ist wahrscheinlich die einfachste und schnellste. Hast du eine Idee, was du getan hast, damit das passiert ist? Root löschen ( /) oder so?
Xen2050,
1
Versuchen Sie es per AskUbuntu : sudo apt-get install upstart-sysv für eine schnelle Lösung - dieser Beitrag hat auch einen Link zu der "empfohlenen" Lösung. Nicht sicher , es ist das gleiche Problem, aber es sieht aus wie es vielleicht in Beziehung gesetzt werden.
Gerber
1
@ Ramhound Ich habe nicht gefragt, wie ich Bash unter Ubuntu unter Windows 10 neu installieren soll. Ich habe gefragt, wie ich das Problem beheben soll. Ich hatte dieses Problem noch nie in Ubuntu. Wenn Nuclear Probleme behebt, dann möchte ich nicht dabei sein, wenn sie die globale Erwärmung beheben
Mike Pengelly
1
@ Ramhound Aber ich beantworte meine Frage nicht. Das ist so, als würde man sagen "jedes Mal, wenn eine Fehlermeldung angezeigt wird, Fenster neu installieren" oder "jedes Mal, wenn Sie ein Geräusch hören, ein neues Auto kaufen".
Mike Pengelly

Antworten:

34

Achtung, dieser Prozess stellt Lxss auf die anfängliche Konfiguration zurück

Um Lxss neu zu installieren, öffnen Sie Windows cmdals Administrator und führen Sie Folgendes aus:

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

Dann:

C:\WINDOWS\system32>LxRun.exe /install
Jonas
quelle
1
Ich habe dies nicht als Antwort markiert, weil es ein nuklearer Ansatz für das Problem ist, das ich hatte. Ja, es würde es reparieren (theoretisch habe ich es nicht versucht), aber die Art und Weise, wie ich es repariert habe, korrigiert mein genaues Problem mit dem Ausstieg aus dem Nuklearbereich. Aber wenn ich weiterhin Probleme habe, würde ich diesen Ansatz empfehlen, wenn Sie Stunden sparen möchten. In der Zukunft, obwohl ich bezweifle, dass die Leute das Linux-Subsystem jedes Mal neu konfigurieren wollen, wenn etwas schief geht.
Mike Pengelly
Das Problem liegt beim Ubuntu-Subsystem selbst. Das erneute Installieren behebt nichts
Panagiotis Kanavos
2
@PanagiotisKanavos für diejenigen von uns, die die Frage über Google finden (nachdem wir bei unseren Installationen ein Durcheinander gemacht haben): Ich kann Ihnen versichern, dass die Antwort immer noch sehr geschätzt wird!
Marc Gravell
2
Ihr habt Recht, das ist nicht die Antwort und wir sollten dies als letzte Option verwenden.
Jonas
Ich erhalte eine, Access is denied.wenn ich ausgeführt werde, C:\WINDOWS\system32>LxRun.exe /uninstallauch wenn die Cmd-Sitzung "als Administrator" ausgeführt wird. Irgendwelche Ideen?
Fredrik
18

Behoben.

Ran:

apt-get remove upstart

dann

apt-get remove udev

dann

apt-get autoremove

und jetzt scheint alles zu funktionieren.

Mike Pengelly
quelle
1
Muss installiert sein, als ich x11 (eine zu neue Version) installiert habe ... Übrigens muss der x-Server unter Windows laufen, nicht unter Linux. und dann leiten Sie die Anwendung weiter, indem Sie DISPLAY = 0: firefox
Mike Pengelly am
9

Die offizielle Antwort von Microsoft

github: Microsoft / BashOnWindows

Dies ist ein Problem, das jeder sehen wird. Dazu müssen wir in unseren offiziellen Dokumenten etwas hinzufügen.

Wie @nuclearmistake hervorhebt, ist udev etwas, das apt-get einbricht, aber die Fehler sollten in der WSL keine Probleme verursachen. Wir haben Canonical bezüglich dieser Frage nach der besten Lösung kontaktiert und sie empfehlen die folgenden Änderungen:

Schreiben Sie Folgendes in /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

Ich habe es selbst ausprobiert und es scheint ganz gut zu funktionieren.

Ochsenfrei
quelle
6

Hier ist eine gezieltere Lösung. Erstellen Sie ein Skript namens /usr/sbin/policy-rc.d( nano /usr/sbin/policy-rc.d) mit folgendem Inhalt:

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

Speichern und beenden ( Ctrl+ O Ctrl+ X). Markieren Sie das Skript als ausführbar ( chmod +x /usr/sbin/policy-rc.d). Dieses Skript weist Sie an, dpkgnicht zu versuchen, udevoder zu starten systemd-logind.

Anschließend können Sie den zuvor fehlgeschlagenen dpkgKonfigurationsschritt ( dpkg --configure -a) abschließen .

Anders Kaseorg
quelle
2
Dies ist eine Antwort, die verbessert werden könnte, indem erklärt wird, was passiert ist , wie die Frage lautete und wie diese Abfolge von Schritten darauf reagiert. Hier ist ein zu verwendender Zeiger . Hier ist eine andere .
JdeBP