Comment accéder aux fichiers linux / Ubuntu à partir de Windows 10 WSL?

72

Cette question explique comment accéder aux fichiers Windows à partir d'Ubuntu Bash, mais comment puis-je faire le contraire?

Plus précisément, je dois accéder à ma clé SSH à partir de Windows, qui se trouve /home/mark/.ssh/id_rsasous Bash.

mpen
la source
(J'ai suggéré de fermer la question liée de phuclv en tant que dupe par ordre chronologique inverse, car cette question est à la fois plus générale et a des réponses bien meilleures et plus récentes.)
Bob

Réponses:

26

PM pour Windows en ligne de commande ici:

Mise à jour en octobre 2019 : mise à jour de la réponse ci-dessous pour refléter la possibilité nouvellement ajoutée d' accéder directement aux fichiers Linux des distributions via le serveur P9 nouvellement intégré dans Win10 1903 (et versions ultérieures) .

IMPORTANT : La spéléologie via le système de fichiers Windows pour accéder aux fichiers Linux a été et restera non prise en charge et FORTEMENT recommandée. Pour comprendre pourquoi, s'il vous plaît lisez ce post

Alors, comment accéder aux fichiers Linux avec les outils Windows (par exemple, le bloc-notes, VS / VScode, etc.)? Auparavant, vous ne pouviez pas le faire, mais à partir de Windows 10 1903, nous exposons (enfin!) Les systèmes de fichiers de votre distribution à Windows via un serveur de fichiers P9. Nous avons également publié une vidéo détaillée expliquant comment cela fonctionne ! Vous pouvez également lire un résumé de cette nouvelle fonctionnalité dans ce blog

entrez la description de l'image ici

Nous avons hâte de savoir comment vous allez avec cette fonctionnalité. Si vous rencontrez des problèmes, veuillez signaler les problèmes sur le référentiel WSL GitHub ici: https://github.com/Microsoft/wsl .

Richard Turner
la source
Monsieur, cette fonctionnalité de serveur de fichiers 9P est-elle stable pour les utilisateurs normaux? Si ce n'est pas le cas, il peut être préférable d'ajouter un avertissement sur l'utilisation des versions instables d'initié. De nombreux utilisateurs peuvent ne pas le connaître. Un fait intéressant cependant, votre réponse contient des blogs de 2016 et 2019, ~ 3 ans;)
Biswapriyo
Ooh, c'est une nouvelle excitante !! Merci pour le partage!
mardi
@ biswaprio.it est très clairement expliqué dans les étapes manuelles que vous devez suivre pour rejoindre le programme Insider: ces éditions sont littéralement des ajouts hebdomadaires de la prochaine version de Windows en cours de construction. Et oui, le serveur 9P sera stable pour les utilisateurs généraux dans la version de système d'exploitation principal dans laquelle il arrive. Et oui, le fait qu’il nous ait fallu autant de temps pour concevoir et commencer à fournir une solution décente ici devrait vous donner une idée de la difficulté que représente pour notre petite équipe la hiérarchisation et l’ingénierie.
Richard Turner
1
J'essaie cette commande d'Ubuntu à chaque mise à jour de mon système depuis que j'ai entendu parler de cela pour la première fois. Mon explorateur va toujours dans mon dossier Documents. Et je n'ai pas encore découvert d' étapes pour "activer" cette fonctionnalité.
Axeman
3
Situation similaire à Axeman, lorsque je l’exécute, explorer.exe .il ouvre le dossier System32. @RichardTurner Où sont les étapes manuelles?
Chris
58

L'emplacement a été déplacé dans la dernière version vers:

C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\

Voir ce numéro GitHub dans Microsoft / WSL N ° 2578

Comme mentionné dans le numéro ci-dessus et dans les commentaires ci-dessous, ne jouez pas avec ces fichiers sous Windows.

https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

drew7721
la source
1
Merci! Pensant que je devenais fou en essayant de suivre les anciennes instructions, je n’avais même pas de dossier Lxss.
Alex S
1
Cette information est-elle toujours vraie? Je ne trouve pas ce dossier sur Windows 10.
Bruno Finger,
6
NOUS VOUS RECOMMANDONS FORTEMENT DE NE PAS SPELUNK DANS LES DOSSIERS ROOT DISTRO SOUS WINDOWS. SI VOUS LE POUVEZ, LA PERTE DE DONNÉES ET / OU LA CORRUPTION SONT FORTEMENT PROBABLES: Veuillez lire cet article pour plus de détails: blogs.msdn.microsoft.com/commandline/2016/11/17/…
Richard Turner
1
"Je doute que quiconque tente de manipuler ou de modifier les fichiers de cette manière". Pourquoi pensez-vous que j'ai crié le conseil ci-dessus? Nous entendons des gens plusieurs fois par semaine avoir ignoré ou ne pas lire ce conseil et finir par corrompre les fichiers de leurs dossiers racine. Heck, il existe des outils qui remplacent souvent vos fichiers de distribution (bêta).
Richard Turner
1
J'ai parcouru un dossier que j'avais créé via Ubuntu WSL dans l'Explorateur et, de ce fait, il a enfreint les autorisations de manière irréversible ... alors, je ne recommanderais pas cela!
SamAndrew81
9

Je l'ai trouvé en cherchant dans tout mon lecteur C. Les fichiers sont ici:

C:\Users\<username>\AppData\Local\lxss

par exemple, ma clé SSH est ici:

C:\Users\Mark\AppData\Local\lxss\home\mark\.ssh\id_rsa
mpen
la source
2
Il semble que le chemin ait changé depuis la mise à jour officielle de FCU.
Briefkasten
1
@Briefkasten Je viens de mettre à jour FCU et mes fichiers sont toujours là. Créé un nouveau fichier sous Bash juste pour être sûr. Avez-vous mis à niveau WSL ou quelque chose?
mardi
2
@John D Le WSL est situé dans le dossier Package où l'application sera installée. Pour moi, il s’agit de: C: / Utilisateurs / {nom_utilisateur} /AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/rootfs/ Cont. to github.com/Microsoft/WSL/issues/402#issuecomment-321853125
Briefkasten
9

Oui, mais il n'est pas recommandé de manipuler ce dossier à partir de l'explorateur Windows. Si vous voulez copier, déplacer, éditer ou effacer des fichiers du dossier lxss, vous devez le faire dans bash avec des outils en ligne de commande. Seuls les fichiers qui se trouvent sur / mnt / * sont vraiment manipulables à partir de l’explorateur Windows.

onoma
la source
1
Même de simples fichiers texte? Quels sont les pièges?
mardi
3
Chaque fichier qui réside dans un dossier Volfs (comme / home) a des attributs étendus qui stockent les autorisations Linux de ce fichier. Si vous éditez ce fichier dans un éditeur Windows, ces attributs sont perdus et le fichier disparaîtra de bash. Vous pouvez en lire plus ici: blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support
onoma
4
On dirait que ça devrait être un bug. Windows ne devrait pas non plus nous donner accès à ces fichiers, ou nous donner un accès en lecture seule, ou bien ils devraient intercepter les appels d'écriture dans les fichiers linux et ne pas simplement modifier les attributs. Merci pour le conseil. Je voulais seulement lire les fichiers, alors j'espère que ce n'est pas un problème.
mardi
5

Dans powershell, utiliser

cd ${env:appdata}\..\local\packages\canonical*\localstate\rootfs

puis

ls

renvoie la même liste de dossiers que

ls / 

dans bash sur WSL.

masterxilo
la source
4

Comme cela a été mentionné ci-dessus par [onoma], les fichiers dans les répertoires WSL ont des attributs qui auraient disparu si on le manipulait à l'aide de l'explorateur ou de l'éditeur de texte exécuté sous Windows. La solution pourrait être de démarrer ssh-server dans WSL (une réinstallation peut être nécessaire) en écoutant localhost, puis en montant un système de fichiers WSL en tant que lecteur utilisant, par exemple, win-sshfs ou simplement utiliser le client Bitvise SSH pour se connecter via ssh. et manipuler des fichiers par la fenêtre de sftp. Le sujet a été partiellement discuté ici: Comment puis-je SSH dans «Bash sur Ubuntu sur Windows 10»?

Shamar
la source
3

subst L: $env:LOCALAPPDATA\lxss (pour Powershell)

ou subst L: %LocalAppData%\lxss(de cmd)

Cela place votre système de fichiers sous-système Linux-root /sur votre lecteur L : .

Vous pouvez également mapper uniquement votre répertoire personnel ou simplement cliquer %LocalAppData%\lxssdans une fenêtre d’explorateur. N'essayez pas de naviguer sur L: \ mnt \ c, sinon votre cerveau pourrait exploser.

Cheezmeister
la source
3
Belle solution! Pour Windows 10 actuel, il s'agit de la base L: $ env: LOCALAPPDATA \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs
Andreas M. Oberheim le
3

J'ai finalement créé un moyen d'ouvrir l'explorateur (et le vscode) avec le contexte de dossier correct dans le WSL: https://github.com/andymule/wslwin

Par exemple, une fois que vous avez installé ceci, vous devez simplement cd /home/mark/.ssh/taper dans linux (WSL) exploreret ouvrir Windows Explorer à cet emplacement, quel qu’il soit.

EDIT: cette fonctionnalité est officiellement prise en charge dans WSL et vous ne devriez plus utiliser mes scripts.

Andymule
la source
2

Im sur la mise à jour de créateurs Windows 10. J'utilise SFTP NetDrive pour monter le système de fichiers WSL dans Windows en tant que lecteur réseau.

Certains ports Windows sshFS permettent d'atteindre le même objectif.

Vous aurez besoin de démarrer le démon ssh via "sudo service ssh start"

mliang2
la source
Quel est l’avantage de cela par rapport à la consultation directe des fichiers?
mardi
Des métadonnées sont attachées aux fichiers et peuvent être perdues lors de l'accès direct à des applications ne comprenant pas les métadonnées.
mlk
0
\\wsl$\Ubuntu\home\user\whatever 

Dans l'explorateur ou dans le widget Exécuter (Cmd + R). Fonctionne comme un partage réseau normal et permet de manipuler des fichiers en toute sécurité.

Vous pouvez également le mapper sur un lecteur ou un dossier, comme pour tout autre partage réseau.

Remarque: il s'agit d'une nouvelle fonctionnalité implémentée dans Windows 10 build 18342.

runlevel0
la source