137 votes

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

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

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

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

287voto

lucian303 Points 132

De le lien que bleater a posté

Montage des DrvFs

Pour monter un lecteur Windows à l'aide de DrvFs, vous pouvez utiliser la commande mount ordinaire de Linux. 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

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

$ sudo umount /mnt/d

Montage 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é dans 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 ; ils sont nécessaires pour éviter d'avoir à échapper les antislashes. Si vous n'entourez pas le chemin UNC de guillemets simples, vous devez échapper aux barres obliques inverses en les doublant (ex. \\\\server\\share ).

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

35voto

Joseph Thvedt Points 605

[Mise à jour -- apparemment cette fonction est disponible dans construire 16176 . Je ne l'ai pas encore essayé.]

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

Pour l'instant, nous ne "montons" que des disques fixes. Les lecteurs USB/amovibles/réseau ne sont pas gérés pour l'instant. Cette fonctionnalité figure dans notre carnet de commandes, mais elle n'est pas pour tout de suite.

Alors ne retenez pas votre souffle.

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

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

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

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

Pour mon usage personnel, cette limitation est un obstacle. J'ai des choses sur des disques réseau que je ne suis pas prêt à déplacer. Il existe des alternatives ; j'utilise Cygwin.

15voto

user1602 Points 281

WSL2 supporte CIFS (SMB) protocole. Vous devrez peut-être préciser la version de votre serveur réseau lors du montage. Par exemple, sur Ubuntu 20.04 :

$ sudo apt install cifs-utils
$ sudo mount -t cifs -o user=joe,pass=shmo,vers=1.0 //server/share /mnt/share

4voto

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

Voici une façon de monter GFS dans WSL en se basant sur Faire fonctionner `sshfs` sur WSL ou trouver une alternative L'astuce consiste à utiliser https://www.nsoftware.com/sftp/netdrive/ pour se connecter à GFS depuis Windows et le convertir en un système de fichiers qui peut être monté sous WSL.

  1. Installer le serveur OpenSSH sous Win10 Paramètres Win10 -> Apps -> Gérer les fonctionnalités optionnelles -> Ajouter une fonctionnalité -> OpenSSH Server Redémarrez si nécessaire ouvrir 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 cachées -> Fenêtre principale (ou peut-être déjà ouverte) -> Profil -> nouveau profil ( serveur : localhost, utilisateur : * pwd:* Lettre de lecteur : F (ou autre) Avancé -> ( Protocole -> décocher la compression ; Dossier spécifié : G:\ ) )

  3. en 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 dans WSL.

0voto

LoMaPh Points 163

Il existe (au moins) deux façons d'utiliser Bash sous 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 du réseau (installer git-bash > aller dans le dossier du réseau > clic droit > "Git Bash Here" > run pwd pour voir le chemin).

Si vous doivent utilisez la version WLS de bash, alors vous pouvez appeler Git-Bash depuis WLS bash comme suit :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X