Ho rotto il sottosistema Windows Linux (Bash su Ubuntu su Windows 10). Aiuto di Linux?


22

Ho giocato con il nuovo sottosistema Linux su Windows e in qualche modo l'ho rotto e ora la maggior parte degli interni di Ubuntu (apt-get, dpkg, ecc) non funzionano. Tutto ciò che provo qualcosa ricevo lo stesso messaggio ...

    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)

Qualche idea su come risolvere questo problema?


Esiste un'opzione di "ripristino" o di disinstallazione / reinstallazione? Questo è probabilmente il più semplice e veloce. Hai idea di cosa hai fatto per fare in modo che ciò accada? Cancella root ( /) o qualcosa del genere?
Xen2050,

1
Per AskUbuntu , prova: sudo apt-get install upstart-sysv per una soluzione rapida - quel post ha anche un collegamento alla correzione "consigliata". Non sono sicuro che sia lo stesso problema, ma sembra che potrebbe essere correlato.
conciatore


1
@ Ramhound Non ho chiesto come reinstallare Bash su Ubuntu su Windows 10, ho chiesto come risolvere il problema. Non ho mai avuto questo problema in realtà Ubuntu. Se andare al nucleare sta risolvendo problemi, allora non voglio essere in giro quando risolvono il riscaldamento globale
Mike Pengelly,

1
@Ramhound Ma non rispondo alla mia domanda. È come dire "reinstalla Windows ogni volta che ricevi un messaggio di errore" o "acquista una nuova auto ogni volta che senti un rumore" .... Risolve il problema ma non è una soluzione pratica.
Mike Pengelly,

Risposte:


34

Attenzione, questo processo ripristinerà Lxss alla configurazione iniziale

Per reinstallare Lxss, apri Windows cmdcome amministratore ed esegui:

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

Poi:

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

1
Non ho indicato questa come risposta perché è un approccio nucleare al problema che stavo avendo. Sì, lo avrebbe risolto (in teoria, non ho provato), ma il modo in cui l'ho risolto correggeva il mio esatto problema senza andare sul nucleare. Ma se continuo ad avere problemi, consiglierei questo approccio se vuoi risparmiare ore. In futuro, anche se dubito che le persone vorrebbero riconfigurare il sottosistema Linux ogni volta che qualcosa va storto.
Mike Pengelly,

Il problema è con il sottosistema Ubuntu stesso. La reinstallazione non risolverà nulla
Panagiotis Kanavos

2
@PanagiotisKanavos per quelli di noi che trovano la domanda tramite Google (dopo aver fatto un pasticcio nelle nostre installazioni): posso assicurarti che la risposta è ancora molto apprezzata!
Marc Gravell

2
Ragazzi, avete ragione, questa non è la risposta e dovremmo usarla come ultima opzione.
Jonas,

Ricevo un Access is denied.quando corro C:\WINDOWS\system32>LxRun.exe /uninstallanche se la sessione cmd viene eseguita "come amministratore". Qualche idea?
Fredrik,

18

Aggiustato.

Corse:

apt-get remove upstart

poi

apt-get remove udev

poi

apt-get autoremove

e tutto sembra funzionare ora.


1
Deve essere installato quando ho installato x11 (una versione troppo nuova) ... btw x server deve essere eseguito in Windows non nel sottosistema Linux. e quindi si inoltra l'applicazione eseguendo DISPLAY = 0: firefox
Mike Pengelly,

9

La risposta ufficiale di Microsoft

GitHub: Microsoft / BashOnWindows

Questo è un problema che tutti inizieranno a vedere. Dobbiamo aggiungere qualcosa al riguardo nei nostri documenti ufficiali.

Come sottolinea @nuclearmistake, udev è qualcosa che si rompe in apt-get ma gli errori non dovrebbero causare alcun problema in WSL. Su questo abbiamo contattato Canonical chiedendo la soluzione migliore e raccomandano le seguenti modifiche:

Scrivi quanto segue 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

Ho provato questo da solo e sembra funzionare abbastanza bene.


6

Ecco una soluzione più mirata. Crea uno script chiamato /usr/sbin/policy-rc.d( nano /usr/sbin/policy-rc.d) con i seguenti contenuti:

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

Salva ed esci ( Ctrl+ O Ctrl+ X). Contrassegna lo script come eseguibile ( chmod +x /usr/sbin/policy-rc.d). Questo script dice di dpkgnon tentare di avviare udevo systemd-logind.

Sarai quindi in grado di completare il dpkgpassaggio di configurazione precedentemente non riuscito ( dpkg --configure -a).


2
Questa è una risposta che potrebbe essere migliorata spiegando cosa è successo , che cosa in realtà era il "in qualche modo" nella domanda e come questa serie di passaggi la affronta. Ecco un puntatore da usare. Eccone un altro .
JdeBP,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.