J'ai cassé le sous-système Windows Linux (Bash sur Ubuntu sur Windows 10). Aide Linux?

22

J'ai joué avec le nouveau sous-système Linux sur Windows et je l'ai en quelque sorte cassé et maintenant la plupart des composants internes d'Ubuntu (apt-get, dpkg, etc.) ne fonctionnent pas. Tout ce que j'essaie quelque chose, je reçois le même message ...

    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)

Une idée de comment réparer ça?

Mike Pengelly
la source
Existe-t-il une option de «réinitialisation» ou de désinstallation / réinstallation? C'est probablement le plus simple et le plus rapide. Une idée de ce que vous avez fait pour que cela se produise? Effacer root ( /) ou quelque chose?
Xen2050
1
Par AskUbuntu , essayez: sudo apt-get install upstart-sysv pour une solution rapide - ce message a également un lien vers le correctif "recommandé". Je ne sais pas si c'est le même problème, mais il semble qu'il pourrait être lié.
tanner le
1
@ Ramhound Je n'ai pas demandé comment réinstaller Bash sur Ubuntu sur Windows 10, j'ai demandé comment résoudre le problème. Je n'ai jamais eu ce problème dans Ubuntu. Si le nucléaire résout des problèmes, je ne veux pas être là quand ils corrigent le réchauffement climatique
Mike Pengelly
1
@Ramhound Mais je ne réponds pas à ma question. C'est comme dire "réinstaller Windows à chaque fois que vous recevez un message d'erreur" ou "acheter une nouvelle voiture à chaque fois que vous entendez un bruit" ... Cela résout le problème mais ce n'est pas une solution pratique.
Mike Pengelly

Réponses:

34

Attention, ce processus restaurera Lxss à la configuration initiale

Pour réinstaller le Lxss, ouvrez Windows en cmdtant qu'administrateur et exécutez:

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

Ensuite:

C:\WINDOWS\system32>LxRun.exe /install
Jonas
la source
1
Je n'ai pas marqué cela comme la réponse parce que c'est une approche nucléaire du problème que j'avais. Oui, cela le corrigerait (en théorie, je n'ai pas essayé), mais la façon dont je l'ai corrigé corrige mon problème exact avec le nucléaire. Mais si je continue d'avoir des problèmes, je recommanderais cette approche si vous voulez gagner des heures. À l'avenir, je doute que les gens veuillent reconfigurer le sous-système Linux chaque fois que quelque chose se passe mal.
Mike Pengelly
Le problème vient du sous-système Ubuntu lui-même. La réinstaller ne
résoudra
2
@PanagiotisKanavos pour ceux d'entre nous qui trouvent la question via google (après avoir fait un gâchis dans nos installations): je peux vous assurer que la réponse est toujours très appréciée!
Marc Gravell
2
Vous avez raison, ce n'est pas la réponse et nous devrions l'utiliser comme dernière option.
Jonas
Je reçois un message Access is denied.lorsque j'exécute C:\WINDOWS\system32>LxRun.exe /uninstallmême si la session cmd est exécutée "en tant qu'administrateur". Des idées?
fredrik
18

A corrigé.

Ran:

apt-get remove upstart

puis

apt-get remove udev

puis

apt-get autoremove

et tout semble fonctionner maintenant.

Mike Pengelly
la source
1
Doit avoir installé quand j'ai installé x11 (une version trop nouvelle) ... btw x server doit fonctionner sous windows pas dans le sous-système linux. puis vous transférez l'application en exécutant DISPLAY = 0: firefox
Mike Pengelly
9

La réponse officielle de Microsoft

github: Microsoft / BashOnWindows

C'est un problème que tout le monde commencera à voir. Nous devons ajouter quelque chose à ce sujet dans nos documents officiels.

Comme le souligne @nuclearmistake, udev est quelque chose qui casse dans apt-get mais les erreurs ne devraient pas causer de problèmes dans WSL. Nous avons contacté Canonical à ce sujet pour lui demander la meilleure solution et ils recommandent les modifications suivantes:

Écrivez ce qui suit dans /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

J'ai essayé celui-ci moi-même et il semble fonctionner assez bien.

sans bœuf
la source
6

Voici une solution plus ciblée. Créez un script nommé /usr/sbin/policy-rc.d( nano /usr/sbin/policy-rc.d) avec le contenu suivant:

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

Enregistrez et quittez ( Ctrl+ O Ctrl+ X). Marquez le script comme exécutable ( chmod +x /usr/sbin/policy-rc.d). Ce script indique de dpkgne pas tenter de démarrer udevou systemd-logind.

Vous pourrez alors terminer l' dpkgétape de configuration précédemment défaillante ( dpkg --configure -a).

Anders Kaseorg
la source
2
Il s'agit d'une réponse qui pourrait être améliorée en expliquant ce qui s'est passé , en quoi consistait le "quelque chose " dans la question et comment cette série d'étapes y répond. Voici un pointeur à utiliser. En voici un autre .
JdeBP