Wie greife ich auf das gemountete Netzlaufwerk auf dem Windows Linux-Subsystem zu?

Ich habe ein Samba-Laufwerk, das auf meinem lokalen Windows-Computer gemountet ist.

Ich habe ein /mnt/c Laufwerk in WLS (Windows 10 Bash), aber kein /mnt/z.

Gibt es eine Möglichkeit, irgendwie darauf zuzugreifen? Kann ich es in WSL neu mounten?

Author: jww, 2016-09-27

6 answers

[Update -- } Diese Funktion ist in Build 16176 verfügbar. Ich habe es noch nicht ausprobiert.]

Nein, obwohl es vielleicht einen Trick gibt, den ich nicht entdeckt habe. Windows-Subsystem für Linux mountet keine Netzlaufwerke. Ein Microsoft-Mitarbeiter sagt hier (in einem Kommentar):

Wir" mounten " zu diesem Zeitpunkt nur feste Laufwerke. USB / Wechseldatenträger/Netzwerklaufwerke werden derzeit nicht behandelt. Diese Fähigkeit ist auf unserem Rückstand, aber es ist nicht auf den Karten jederzeit bald.

Also halte nicht den Atem an.

Ich habe versucht, es mit einem symbolischen Link wie folgt zu umgehen:

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

Der Link funktioniert gut in "normalen" Fenstern (cmd.exe, PowerShell, Datei-Explorer usw.), ist aber für WSL unsichtbar:

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

Für meinen eigenen Gebrauch ist diese Einschränkung ein Show-Stopper. Ich habe Dinge auf Netzlaufwerken, die ich nicht bewegen will. Es gibt alternativen, ich benutze Cygwin.

 26
Author: Joseph Thvedt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-01-30 21:41:37

Von der Link, den Bleater gepostet hat

Montage DrvFs

Um ein Windows-Laufwerk mit DrvFs zu mounten, können Sie den regulären Befehl Linux mount verwenden. Führen Sie zum Mounten eines Wechseldatenträgers D: als Verzeichnis /mnt/d die folgenden Befehle aus:

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

Jetzt können Sie auf die Dateien Ihres Laufwerks D: unter /mnt/d zugreifen. Wenn Sie das Laufwerk beispielsweise aushängen möchten, damit Sie es sicher entfernen können, führen Sie den folgenden Befehl aus:

$ sudo umount /mnt/d

Montage Netzwerk Standorte

Wenn Sie einen Netzwerkspeicherort mounten möchten, können Sie natürlich ein zugeordnetes Netzlaufwerk in Windows erstellen und dieses wie oben angegeben mounten. Es ist jedoch auch möglich, sie direkt über einen UNC-Pfad zu mounten:

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

Beachten Sie die einfachen Anführungszeichen um den UNC-Pfad; diese sind notwendig, um die Notwendigkeit zu verhindern, die Backslashes zu entkommen. Wenn Sie den UNC-Pfad nicht mit einfachen Anführungszeichen umgeben, müssen Sie die Backslashes umgehen, indem Sie sie verdoppeln (z. B. \\\\server\\share).

WSL nicht sie können angeben, welche Anmeldeinformationen für die Verbindung zu einer Netzwerkfreigabe verwendet werden sollen. Wenn Sie zum Herstellen einer Verbindung zum Server unterschiedliche Anmeldeinformationen verwenden müssen, geben Sie diese in Windows an, indem Sie mit dem Windows Credential Manager oder dem Befehl net use zur Freigabe im Datei-Explorer navigieren. Der Befehl net use kann von WSL aus aufgerufen werden (mit net.exe verwenden) über interop. Geben Sie net.exe Hilfe verwenden für weitere Informationen zur Verwendung dieses Befehls.

 214
Author: gman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-12 13:48:39

Ich bin kürzlich auf dieses Problem gestoßen, auf dem ein Mac-Host eine vmware Fusion mit Windows 10 als Gastbetriebssystem installiert hat. Ich habe WSL (Ubuntu) in Windows 10 installiert. Ich teile einen Ordner auf meinem Mac (~/Public) mit allen meinen Fusion Guest-Betriebssystemen und funktioniert scheinbar problemlos mit allen Linux/bsd-Gastsystemen. Unter Windows 10 lautet das Netzlaufwerk für den freigegebenen Ordner \vmware-host\Shared Folder\Public\ und ist von Windows 10 aus zugänglich und wird auch auf dem Laufwerk Z: gemountet.

Die problem ist, wenn Sie bash in WSL verwenden. Die vorgeschlagene Methode ist (tatsächliche Laufwerksbuchstaben und Ordnernamen nach Bedarf anpassen)

sudo mkdir /mnt/z
sudo mount -t drvfs Z: /mnt/z

Oder, direkter

sudo mount -t drvfs '\\vmware-host\Shared Folder\Public' /mnt/z

Der Befehl mount ist erfolgreich, aber tatsächlich ist der Mount "fehlgeschlagen". Sie können den Inhalt des Ordners /mnt/z nicht sehen. Das Mounten funktioniert gut mit anderen Netzlaufwerken, SOLANGE das Dateisystem ein Windows-Dateisystem (NTFS, FAT32 usw.) ist. Da das Dateisystem, das ich verwenden möchte, Apple File System (apfs) ist, kann das drvfs nicht benutze es. Es schlägt ebenfalls fehl, wenn das zugrunde liegende Dateisystem, das Sie mounten möchten, Linux ist (ext2, ext3, ...) oder Netzwerk-nfs - /samba-Typ. Dieses DRVFS versteht nur das native Windows-Drvie-Format.

Seine lustig, wie die, die Sie verwenden können keine-windows-Dateisystem-Laufwerken in windows, aber in der wsl/linux-sehen Sie nur windows-Dateisystem-Laufwerke....

Die kurze Antwort lautet also

sudo mount -t drvfs { \\network\drive\folder | X:\folder } /mnt/folder

Solange das Netzlaufwerk ein natives Windows-Dateisystem (ntfs, fat*) verwendet.

 9
Author: Marcus Yoo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-03-25 07:35:54

WSL2 unterstützt CIFS (SMB) - Protokoll. Möglicherweise müssen Sie beim Mounten Ihre Netzwerkserverversion angeben. E. g. auf Ubuntu 20.04:

$ sudo apt install cifs-utils
$ sudo mount -t cifs -o user=joe,pass=shmo,vers=1.0 //server/share /mnt/share
 9
Author: user1602,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-07-02 08:41:41

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

Hier ist eine Möglichkeit, GFS in WSL zu mounten, basierend auf 'sshfs' auf WSL zu bringen oder eine Alternative zu finden Der Trick besteht darin, https://www.nsoftware.com/sftp/netdrive/ in ssh in GFS von Windows und konvertiert es in ein Dateisystem, das unter WSL gemountet werden kann.

  1. Installieren Sie OpenSSH Server unter Win10 Win10 Einstellungen - > Apps - > Optionale Funktionen verwalten - > Funktion hinzufügen - > OpenSSH-Server neustart bei Bedarf open Services - > OpenSSH - > Eigenschaften - > Starttyp - > Automatisch (verzögert)

  2. Installieren und starten Sie SFTPNetDrive, klicken Sie mit der rechten Maustaste auf das Symbol in versteckten Symbolen - > Hauptfenster (oder möglicherweise bereits geöffnet) - > Profil - > neues Profil ( Server: localhost, Benutzer: * pwd:* Laufwerksbuchstabe: F (oder ein anderer) Erweitert - > (Protokoll - > deaktivieren Kompression; Angegebenen Ordner: G:\ ) )

  3. In der Bash (wsl): sudo mkdir /mnt/f; sudo mount-t drvfs F: /mnt/f -

Ich bin mir nicht sicher, wie stabil es ist, aber ich konnte Dateien in WSL öffnen.

 4
Author: Christopher Crawford,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-01-20 12:01:43

Es gibt (mindestens) zwei Möglichkeiten, Bash in Windows zu verwenden:

  1. Die Bash, die mit WLS geliefert wird (bei der Installation von Linux unter Windows 10 aus dem Windows Store oder anderen Quellen)
  2. Git-Bash unter Windows

Git-Bash hat Zugriff auf Netzwerkordner (installieren Sie git-bash > gehen Sie zum Netzwerkordner > klicken Sie mit der rechten Maustaste > "Git Bash Hier" > führen Sie pwd aus, um den Pfad anzuzeigen).

Wenn Sie die WLS-Version von bash verwenden müssen, können Sie Git-Bash von WLS bash als aufrufen folgt:

WLS_Bash_Shell:$ /mnt/c/Program\ Files/Git/bin/bash.exe ScriptThatUsesNetworkFolders.sh
 -1
Author: LoMaPh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-12-11 01:27:29