Wie greife ich auf ein im Netzwerk installiertes Laufwerk unter Windows Linux zu?


62

Ich habe ein Samba-Laufwerk, das auf meinem lokalen Windows-Computer installiert 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 WLS wieder einhängen?


3
Es gibt Diskussionen zu dieser Funktion unter Microsoft Developer Feedback wpdev.uservoice.com/forums/…
Nelson

Antworten:


23

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

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

Wir "mounten" derzeit nur Festplatten. USB- / Wechseldatenträger / Netzwerklaufwerke werden derzeit nicht verarbeitet. Diese Fähigkeit ist in unserem Rückstand, wird aber in naher Zukunft nicht in Frage kommen.

Halten Sie also nicht den Atem an.

Ich habe versucht, das Problem mithilfe eines symbolischen Links zu umgehen:

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

Der Link funktioniert unter "normalen" Windows-Betriebssystemen (cmd.exe, PowerShell, Datei-Explorer usw.) einwandfrei, ist jedoch 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 möchte. Es gibt Alternativen; Ich benutze Cygwin.


Einverstanden, das ist auch für mich ein Showstopper - ich habe gerade msys2 dafür installiert.
Ela782


die reihenfolge deiner argumente zu mklink ist falsch - es sollte linkname targetnicht so seintarget linkname
masterxilo

Ja, masterxilo, du hast recht - ich hatte den Befehl mklink hier falsch. Fest. Als ich es tatsächlich ausprobiert habe, habe ich es richtig gemacht, und es hat gegenüber der WSL nicht funktioniert. Dies ist ein strittiger Punkt, da die WSL jetzt Netzwerkfreigaben bereitstellen kann. Aber danke für die Korrektur. Auch wenn fast niemand auf diese Antwort schaut, hasse ich es, so einen Fehler zu hinterlassen.
Joseph Thvedt

109

vom link bleater gepostet

Montage von DrvFs

Um ein Windows-Laufwerk mit DrvFs bereitzustellen, können Sie den regulären Linux-Befehl mount verwenden. Um beispielsweise ein Wechsellaufwerk D: als / mnt / d-Verzeichnis bereitzustellen, führen Sie die folgenden Befehle aus:

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

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

$ sudo umount /mnt/d

Netzwerkstandorte einbinden

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

$ 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, den Backslashes zu entgehen. Wenn Sie den UNC-Pfad nicht in einfache Anführungszeichen setzen, müssen Sie die umgekehrten Schrägstriche vermeiden, indem Sie sie verdoppeln (z \\\\server\\share. B. ).

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


2
total geklappt für meine "bash for windows 10"! Ich danke dir sehr!
Ying Zhang

6
Die richtige Antwort sollte in diese geändert werden, da sie die Frage direkt beantwortet.
Tomek

Sie benötigen "Windows Insider Build", um DrvFs zu erhalten. -1 (nicht wirklich down vote)
FractalSpace

5
Ich habe kein Windows Insider Build und es funktioniert für mich
gman

2
Dadurch wird die Freigabe gemountet, aber alles gehört root, und einige Dateien sind nicht lesbar (selbst mit sudo und selbst wenn die Berechtigungen in WSL 777 sind). Ich kann die Dateien vom Windows-Datei-Explorer lesen. Das Hinzufügen von mount options ( -o) gibt mir den Fehler "falscher fs-Typ, schlechte Option, schlechter Superblock".
Jay K

2

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

Hier ist eine Möglichkeit, GFS in WSL zu mounten, basierend darauf, wie man `sshfs` in WSL zum Laufen bringt oder eine Alternative findet. Der Trick besteht darin, https://www.nsoftware.com/sftp/netdrive/ zu verwenden, um GFS von Windows zu ssh und es zu konvertieren in ein Dateisystem, das unter WSL eingehängt werden kann.

  1. Installieren Sie OpenSSH Server unter Win10. Win10-Einstellungen -> Apps -> Optionale Funktionen verwalten -> Funktion hinzufügen -> OpenSSH Server bei Bedarf neu starten. Öffnen Sie Dienste -> OpenSSH -> Eigenschaften -> Starttyp -> Automatisch (verzögert).

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

  3. in 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.


-2

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

  1. Die mit WLS gelieferte Bash (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 (installiere git-bash> gehe in den Netzwerkordner> klicke mit der rechten Maustaste> "Git Bash Here"> starte pwd, um den Pfad zu sehen).

Wenn Sie haben die WLS - Version von bash verwenden, dann können Sie Git-Bash von WLS bash nennen wie folgt:

WLS_Bash_Shell:$ /mnt/c/Program\ Files/Git/bin/bash.exe ScriptThatUsesNetworkFolders.sh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.