Comment accéder au lecteur monté sur le réseau sur le sous-système Windows Linux?

62

J'ai un lecteur de samba qui est monté sur mon ordinateur Windows local.

J'ai un lecteur "/ mnt / c" dans WLS ("Windows 10 bash"), mais pas "/ mnt / z".

Y a-t-il un moyen d'y accéder d'une manière ou d'une autre? Puis-je remonter dans WLS?

Charles Shiller
la source
3
Vous trouverez des
Nelson

Réponses:

23

[Mise à jour - apparemment, cette fonctionnalité est disponible dans la version 16176 . Je n'ai pas encore essayé.]

Non, bien qu'il y ait peut-être un truc que je n'ai pas découvert. Le sous-système Windows pour Linux ne monte pas les lecteurs réseau. Un employé de Microsoft dit ici (dans un commentaire):

Nous ne faisons que «monter» des lecteurs fixes pour le moment. Les lecteurs USB / amovibles / réseau ne sont pas gérés pour le moment. Cette capacité figure dans notre carnet de commandes, mais elle ne l’est pas bientôt.

Alors ne retiens pas ton souffle.

J'ai essayé de le contourner en utilisant un lien symbolique, comme ceci:

c:> mklink /d c:\some\directory \\some_server\some_share

Le lien fonctionne parfaitement dans Windows "normal" (cmd.exe, PowerShell, explorateur de fichiers, etc.), mais est invisible pour WSL:

$ ls -ld /mnt/c/some/directory
/mnt/c/some/directory not found

Pour ma propre utilisation, cette limitation est un obstacle. J'ai des objets sur des lecteurs réseau que je ne souhaite pas déplacer. Il y a des alternatives. J'utilise Cygwin.

Joseph Thvedt
la source
Je suis d’accord, c’est aussi un succès pour moi - je viens d’installer msys2 pour cela.
Ela782
l'ordre de vos arguments à mklink est incorrect - il devrait l'être linkname target, pastarget linkname
masterxilo
Oui, masterxilo, vous avez raison - la commande mklink était erronée ici. Fixé. Quand j'ai réellement essayé, je l'ai bien fait et cela n'a pas fonctionné vis-à-vis de WSL. C'est un point discutable maintenant, car WSL peut maintenant monter des partages réseau. Mais merci pour la correction. Même si presque personne ne regarde cette réponse, je déteste laisser une telle erreur.
Joseph Thvedt le
109

du lien bleater posté

Montage de DrvF

Pour monter un lecteur Windows à l'aide de DrvF, vous pouvez utiliser la commande de montage Linux classique. Par exemple, pour monter un lecteur amovible D: en tant que répertoire / mnt / d, exécutez les commandes suivantes:

$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d

Vous pourrez maintenant accéder aux fichiers de votre lecteur D: sous / mnt / d. Lorsque vous souhaitez démonter le lecteur, par exemple pour pouvoir le retirer en toute sécurité, exécutez la commande suivante:

$ sudo umount /mnt/d

Monter des emplacements de réseau

Lorsque vous souhaitez monter un emplacement réseau, vous pouvez bien sûr créer un lecteur réseau mappé sous Windows et le monter comme indiqué ci-dessus. Cependant, il est également possible de les monter directement en utilisant un chemin UNC:

$ sudo mkdir /mnt/share
$ sudo mount -t drvfs '\\server\share' /mnt/share

Notez les guillemets simples autour du chemin UNC; ceux-ci sont nécessaires pour éviter le besoin d'échapper aux barres obliques inverses. Si vous n'entourez pas le chemin UNC de guillemets simples, vous devez éviter les barres obliques inverses en les doublant (par exemple \\\\server\\share).

WSL ne dispose d'aucun moyen pour spécifier les informations d'identification à utiliser pour se connecter à un partage réseau. Si vous devez utiliser différentes informations d'identification pour vous connecter au serveur, spécifiez-les dans Windows en accédant au partage dans l'Explorateur de fichiers, à l'aide du Gestionnaire des informations d'identification Windows ou de la commande net use. La commande net use peut être appelée depuis WSL (à l’aide de net.exe) via interop. Tapez net.exe help use pour plus d'informations sur l'utilisation de cette commande.

gman
la source
2
totalement travaillé pour mon "bash pour Windows 10"! Merci beaucoup!
Ying Zhang
6
La réponse correcte doit être remplacée par celle-ci, car elle répond directement à la question.
Tomek
Vous avez besoin de "Windows Insider build" pour obtenir des DrvF. -1 (pas vraiment voter)
FractalSpace
5
Je n'ai pas de Windows initié construire et ça marche pour moi
gman
2
Cela monte le partage, mais tout est la propriété de root et certains fichiers sont illisibles (même avec sudo, et même si les autorisations dans WSL sont 777). Je peux lire les fichiers à partir de l'explorateur de fichiers Windows. Ajouter toutes les options de montage ( -o) me donne l'erreur "type de fs incorrect, mauvaise option, mauvais superbloc".
Jay K
2

voir https://github.com/Microsoft/WSL/issues/2999#issuecomment-455835951

Voici un moyen de monter GFS dans WSL en vous basant sur la méthode `sshfs` pour obtenir une alternative. L'astuce consiste à utiliser https://www.nsoftware.com/sftp/netdrive/ pour ssh en GFS à partir de Windows et le convertir. à un système de fichiers pouvant être monté sous WSL.

  1. Installer OpenSSH Server sous Win10 Win10 Paramètres -> Applications -> Gérer les fonctionnalités facultatives -> Ajouter une fonctionnalité -> Redémarrage du serveur OpenSSH si nécessaire, ouvrez Services -> OpenSSH -> Propriétés -> Type de démarrage -> Automatique (différé)

  2. Installez et exécutez SFTPNetDrive, faites un clic droit sur l'icône dans les icônes masquées -> Fenêtre principale (ou peut-être déjà ouverte) -> Profil -> nouveau profil (serveur: localhost, utilisateur: * pwd: * Lettre du lecteur: F (ou autre) Avancé - > (Protocole -> décocher la compression; dossier spécifié: G: \))

  3. dans Bash (WSL): sudo mkdir / mnt / f; sudo mount -t drvfs F: / mnt / f

Je ne suis pas sûr de sa stabilité, mais j'ai pu ouvrir des fichiers au format WSL.

Christopher Crawford
la source
-2

Il y a (au moins) deux façons d'utiliser Bash dans Windows:

  1. Le Bash fourni avec WLS (lors de l'installation de Linux sur Windows 10 à partir du Windows Store ou d'autres sources)
  2. Git-Bash sous Windows

Git-Bash a accès aux dossiers réseau (installez git-bash> allez dans le dossier réseau> cliquez avec le bouton droit de la souris> "Git Bash Here"> exécutez pwdpour voir le chemin).

Si vous devez utiliser la version WLS de bash, vous pouvez appeler Git-Bash à partir de WLS bash comme suit:

WLS_Bash_Shell:$ /mnt/c/Program\ Files/Git/bin/bash.exe ScriptThatUsesNetworkFolders.sh
LoMaPh
la source