Zepsułem podsystem Windows Linux (Bash na Ubuntu na Windows 10). Linux Pomoc?


22

Grałem z nowym podsystemem linux w systemie Windows i jakoś go zepsułem, a teraz większość elementów wewnętrznych Ubuntu (apt-get, dpkg itp.) Nie działa. Wszystko, czego próbuję, dostaję tę samą wiadomość ...

    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)

Wszelkie pomysły, jak to naprawić?


Czy jest dostępna opcja „resetuj” lub odinstaluj / zainstaluj ponownie? To chyba najłatwiejszy i najszybszy. Masz pojęcie, co zrobiłeś, aby to się stało? Usunąć root ( /) czy coś?
— Xen2050

1
Na AskUbuntu spróbuj: w sudo apt-get install upstart-sysv celu szybkiej poprawki - ten post zawiera również link do „zalecanej” poprawki. Nie jestem pewien, czy to ten sam problem, ale wygląda na to, że może być powiązany.
— garbarz


1
@ Ramhound Nie zapytałem, jak ponownie zainstalować Bash na Ubuntu w systemie Windows 10, zapytałem, jak rozwiązać problem. W rzeczywistości nigdy nie miałem tego problemu w Ubuntu. Jeśli przejście na Nuclear naprawia problemy, to nie chcę być w pobliżu, gdy naprawiają globalne ocieplenie
— Mike Pengelly

1
@Ramhound Ale nie odpowiadam na moje pytanie. To tak, jakby powiedzieć „zainstaluj ponownie system Windows za każdym razem, gdy pojawi się komunikat o błędzie” lub „kup nowy samochód za każdym razem, gdy usłyszysz hałas” ... Rozwiązuje problem, ale nie jest to praktyczne rozwiązanie.
— Mike Pengelly,

Odpowiedzi:


34

Ostrzeżenie, ten proces przywróci Lxss do początkowej konfiguracji

Aby ponownie zainstalować Lxss, otwórz Windows cmdjako administrator i uruchom:

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

Następnie:

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

1
Nie zaznaczyłem tego jako odpowiedzi, ponieważ jest to nuklearne podejście do problemu, który miałem. Tak, naprawiłoby to (teoretycznie nie próbowałem), ale sposób, w jaki to naprawiłem, rozwiązuje mój dokładny problem z brakiem broni jądrowej. Ale jeśli nadal mam problem, zaleciłbym to podejście, jeśli chcesz zaoszczędzić godziny. W przyszłości jednak wątpię, by ludzie chcieli rekonfigurować tam Podsystem Linux za każdym razem, gdy coś pójdzie nie tak.
— Mike Pengelly,

Problem dotyczy samego podsystemu Ubuntu. Ponowna instalacja nic nie naprawi
— Panagiotis Kanavos

2
@PanagiotisKanavos dla tych z nas, którzy znaleźli pytanie za pośrednictwem Google (zrobili bałagan w naszych instalacjach): Mogę zapewnić, że odpowiedź jest nadal bardzo doceniana!
— Marc Gravell

2
Macie rację, to nie jest odpowiedź i powinniśmy użyć tego jako ostatniej opcji.
— Jonas

Pojawia się, Access is denied.gdy uruchamiam, C:\WINDOWS\system32>LxRun.exe /uninstallnawet jeśli sesja cmd jest uruchamiana „jako administrator”. Jakieś pomysły?
— fredrik

18

Naprawione.

Biegł:

apt-get remove upstart

następnie

apt-get remove udev

następnie

apt-get autoremove

i wydaje się, że teraz wszystko działa.


1
Musiałem mieć zainstalowany, gdy zainstalowałem x11 (zbyt nowa wersja) ... btw x serwer musi działać w systemie Windows poza podsystemem Linux. a następnie przekazujesz aplikację, uruchamiając DISPLAY = 0: firefox
— Mike Pengelly,

9

Oficjalna odpowiedź od Microsoft

github: Microsoft / BashOnWindows

Jest to problem, który wszyscy zaczną widzieć. Musimy coś do tego dodać w naszych oficjalnych dokumentach.

Jak wskazuje @nuclearmistake, udev to coś, co psuje się w apt-get, ale błędy nie powinny powodować żadnych problemów w WSL. Skontaktowaliśmy się z firmą Canonical w tej sprawie, prosząc o najlepsze rozwiązanie, i zalecają następujące zmiany:

Napisz następujące informacje do /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

Próbowałem tego sam i wygląda na to, że działa całkiem dobrze.


6

Oto bardziej ukierunkowane rozwiązanie. Utwórz skrypt o nazwie /usr/sbin/policy-rc.d( nano /usr/sbin/policy-rc.d) o następującej treści:

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

Zapisz i wyjdź ( Ctrl+ O Ctrl+ X). Oznacz skrypt jako wykonywalny ( chmod +x /usr/sbin/policy-rc.d). Ten skrypt mówi, dpkgaby nie próbować uruchomić udevlub systemd-logind.

Będziesz wtedy mógł wykonać poprzednio nieudany dpkgkrok konfiguracji ( dpkg --configure -a).


2
Jest to odpowiedź, którą można poprawić, wyjaśniając, co się stało , czym właściwie było „jakoś” w pytaniu i jak ta seria kroków rozwiązuje ten problem. Oto jeden wskaźnik do użycia. Oto kolejna .
— JdeBP
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.