Bash sous Windows / Windows Subsytem pour Linux (WSL) ne s'installe pas correctement / se bloque

11

J'ai reçu la mise à jour anniversaire de Windows et j'ai essayé d'installer Bash. J'ai exécuté bash à partir de l'invite de commande (mode non administrateur) et il s'est bloqué lors de la tentative d'extraction des fichiers. J'ai fermé la fenêtre et essayé de faire de même avec des privilèges élevés (invite de commande exécutée en tant qu'administrateur ).

Mais maintenant, quand j'entre dans bash, il est bloqué et ne démarre pas ou ne me demande pas d'installer bash. Je pouvais voir le processus bash consommer 25% de CPU en arrière-plan.

Lorsque j'essaie de désinstaller bash en cours d'exécution lxrun /uninstall /full, il ne parvient pas à désinstaller:

C: \ WINDOWS \ system32> lxrun / uninstall / full
Cela désinstallera Ubuntu sous Windows.

Cela supprimera l'environnement Ubuntu ainsi que toutes les modifications, nouvelles applications et données utilisateur.

Tapez "y" pour continuer: y

Désinstallation ...

Erreur: 0x80080005

Comment pourrais-je réinitialiser le sous-système Linux pour Windows 10?

EDIT : également essayé les options mentionnées ici par Microsoft.

Consultez également ce problème. Bash ne fait rien pendant un moment puis sort

Vivek Vijayan
la source
Combien de temps avez-vous réellement attendu qu'il (dés) s'installe?
gronostaj
J'ai attendu environ 30 minutes.
Vivek Vijayan
Vous pouvez également aller à Activer ou désactiver les fonctionnalités Windows et décocher le sous-système Windows pour Linux (Bêta) , puis redémarrer. Après cela, réactivez la même case à cocher et redémarrez à nouveau. Sur ma machine, je ne pouvais pas courir lxrun.
kleinfreund
J'ai essayé tout ça! Je pense que c'est un problème
Vivek Vijayan
@VivekVijayan - Prenez possession de %localappdata%\lxsspuis supprimez-le. Vous pouvez ensuite utiliser lxrun /installpour réinstaller Ubuntu on Windows. Cela suppose que le mode développeur est activé et que vous avez déjà ajouté la fonctionnalité Windows (sous-système Windows Linux).
Ramhound

Réponses:

5

J'ai initialement eu des problèmes pour désinstaller une installation échouée et supprimer le dossier lxss. Après avoir nettoyé l'installation avec succès, j'ai commencé mes essais de réinstallation, mais le problème précédent d'installation a surgi. Le processus est bloqué Extraction du système de fichiers ... comme indiqué ici .

Après des jours d'essais et d'erreurs, il me semble avoir trouvé la raison de cette agonie. Dans mon cas (et comme rapporté par beaucoup d'autres ici ), c'est l'antivirus qui est le trouble-fête. La désactivation de l'antivirus et le redémarrage semblent le faire pour moi. Aussi stupide que cela puisse paraître, l’antivirus était la principale cause de laError: 0x80080005

Maintenant, pour ceux qui ont encore cette erreur, cela devrait aider si vous essayez de faire les choses suivantes dans l'ordre:

  1. Désactiver l'antivirus de façon permanente et redémarrer (vous pouvez l'activer une fois l'installation terminée)
  2. Ouvrez l'invite de commandes ou Windows PowerShell en tant qu'administrateur
  3. Désinstallez WSL en exécutant la commande suivante lxrun /uninstall /full
  4. Arrêtez maintenant le service WSL - sc stop lxssmanager
  5. Supprimer les dossiers de données d'application - rmdir /S %LOCALAPPDATA%\lxss. Confirmez que les dossiers ont été supprimés. Vous devrez peut-être modifier la propriété pour supprimer le dossier si vous obtenez des erreurs d' accès refusé .
  6. Une fois les dossiers supprimés, essayez de réinstaller WSL en exécutant lxrun /install /y
  7. Attendez qu'il se télécharge à partir du Windows Store et extrait les fichiers. (Vous pouvez vérifier %LOCALAPPDATA%\lxss\rootfssi les fichiers ont été extraits).
  8. J'espère que vous ne devriez pas en avoir une Error: 0x80080005cette fois.
  9. Profitez de Bash sur Windows !

EDIT : Une autre raison de l'erreur est identifiée comme un bogue lorsque vous avez plusieurs fichiers d'échange . Ce problème sera résolu à l'avenir, mais pour l'instant, supprimez les autres fichiers d'échange et ne conservez qu'un seul fichier d'échange. Cela devrait le réparer.

Plus de détails pour les personnes intéressées:

" En raison de votre fichier de trace, j'ai identifié un bogue dans le code d'installation qui calcule la taille du fichier d'échange. Cette fonction est utilisée à la fois par l'appel système sysinfo et génère le contenu de / proc / meminfo. Ce problème se produit lorsque vous avez plusieurs fichiers de page sur votre machine. Il y a trois résultats différents qui peuvent se produire à la suite de ce bogue: La taille du fichier d'échange sera signalée de manière incorrecte Notre pilote déréférencera une adresse mémoire invalide et provoquera un écran bleu La machine entrera dans une boucle infinie lors du calcul de la permuter la taille du fichier (c'est celui que vous voyez) Comme solution de contournement temporaire, si vous supprimez tous vos fichiers de pages, sauf un, vous devriez pouvoir utiliser WSL. Je suis en train de coder un correctif pour cela en ce moment. "

Référence: Bash sur Ubuntu sous Windows

Vivek Vijayan
la source
Merci, cela m'a aidé. J'avais Windows Defender en cours d'exécution et je n'avais qu'à faire 1-3 et 6-9, c'est-à-dire que je n'avais pas à arrêter le service ou à supprimer quoi que ce soit.
Tom Ellis
Heureux d'aider. Dans certains cas, le service WSL empêche la suppression nette des fichiers d'installation. Heureux que vous n'ayez pas eu à traverser tout cela.
Vivek Vijayan