Zugriff auf Wechselmedien in Bash unter Windows

38

Gibt es eine Möglichkeit, in Bash unter Windows auf Wechselmedien (z. B. USB-Sticks oder SD-Karten) zuzugreifen?

Bash unter Windows verwendet DriveFs , um Festplatten in den /mntOrdner einzubinden , jedoch werden Wechselmedien nicht automatisch eingebunden . Und es sieht auch nicht danach aus /dev:

Aaron@MYPC:/$ ls /dev
block  fd  kmsg  lxss  null  ptmx  pts  random  shm  stderr  stdin  stdout  tty  tty0  tty1  urandom  zero

Gibt es eine Möglichkeit, Wechseldatenträger bereitzustellen? Gibt es eine Möglichkeit, auf das zugrunde liegende Blockgerät zuzugreifen?

Aaron Campbell
quelle
5
Siehe hierzu wpdev.uservoice.com/forums/… .
CodeIt
tippe mountund schau, ob das dir Hinweise gibt. Wenn Sie cygwinbash verwenden, lautet der Pfad / cygdrive /.
Strobelight
Nein: Aaron@MYPC:~$ mount rootfs on / type rootfs (rw,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204320k,mode=755)[etc]
Aaron Campbell
Ähnlich, obwohl in dieser Frage speziell Wechseldatenträger erwähnt werden und sich dieser auf feste Datenträger bezieht. Die bestbewertete Antwort auf diesen Beitrag ist nur teilweise auf diese Frage anwendbar.
Aaron Campbell

Antworten:

49

Gute Nachrichten, es ist jetzt möglich, USB-Medien (einschließlich als FAT formatiert) und Netzwerkfreigaben mit drvfs unter Windows 10 zu mounten:

Wechseldatenträger einbinden: (zB D :)

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

Zum sicheren Abhängen

$ sudo umount /mnt/d

Sie können Netzwerkfreigaben auch ohne smbfs bereitstellen:

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

Sie benötigen mindestens Build 16176, damit Sie sich möglicherweise für das Windows Insider-Programm anmelden und dann Windows aktualisieren müssen. Quelle: https://blogs.msdn.microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subsystem-for-linux/

user643011
quelle
4
Bitte posten Sie nicht die gleiche Antwort auf mehrere Fragen. Wenn dieselben Informationen tatsächlich beide Fragen beantworten, sollte eine Frage (normalerweise die neuere) als Duplikat der anderen geschlossen werden. Sie können dies anzeigen, indem Sie abstimmen, um es als Duplikat zu schließen, oder, wenn Sie nicht genug Reputation dafür haben , ein Flag setzen, um anzuzeigen, dass es sich um ein Duplikat handelt. Passen Sie andernfalls Ihre Antwort auf diese Frage an und fügen Sie dieselbe Antwort nicht an mehreren Stellen ein.
DavidPostill
7
Lieber David. Fühlen Sie sich frei, die Flagge für die Vervielfältigung selbst zu hissen. Diese Antwort ist auf die Frage zugeschnitten und Sie können gerne Verbesserungsvorschläge machen.
user643011
2
Lieber "Benutzer", ich habe Ihren Kommentar hier hochgestuft, unter der Annahme, dass das, was Sie gesagt haben, nun wahr ist ... Jetzt ist mir klar, dass ich mich geirrt habe, aber ich kann meinen hochgestuften Kommentar scheinbar nicht rückgängig machen, daher muss ich explizit fragen: Wie genau? Ist dies "auf die Frage zugeschnitten" und dennoch die exakte "bitweise" Kopie Ihrer anderen Antwort ?
Gr.
Hey Sz! Weil es wahr ist? Es antwortet genau: Gibt es eine Möglichkeit, in Bash unter Windows auf Wechselmedien zuzugreifen? Wenn Sie eine bessere Antwort haben, können Sie die Frage besser beantworten oder eine Änderung vorschlagen. Vielen Dank!
user643011
wrong fs type, bad option, bad superblock on G:, missing codepage or helper program, or other error- Lesen Sie bitte auch diesen Kommentar . Antworten Sie nicht doppelt.
Fund Monica Klage
10

Gibt es eine Möglichkeit, in Bash unter Windows auf Wechselmedien zuzugreifen?

Aktualisieren:

Anscheinend ist es jetzt ab Windows 10 Build 16176 möglich.

Siehe https://superuser.com/a/1209701/337631 .


Nein.

Momentan gibt es Einschränkungen, welche Laufwerke gemountet sind:

Damit ein Laufwerk unter / mnt / angezeigt wird, muss es die folgenden Kriterien erfüllen:

  1. Das Laufwerk muss ein festes Laufwerk sein
  2. Das Laufwerk muss auf NTFS formatiert sein.

Dies wurde als Problem gemeldet : Andere Laufwerke als C: sind nicht in / mnt # 1079 gemountet . Es ist immer noch als "Offen" markiert.

Um die Interoperabilität mit Windows zu erleichtern, verwendet WSL das DrvFs-Dateisystem. WSL stellt automatisch alle Festplatten mit unterstützten Dateisystemen unter / mnt bereit, z. B. / mnt / c, / mnt / d usw. Derzeit werden nur NTFS- und ReFS-Volumes unterstützt.

Unterstützung des Quell- WSL-Dateisystems


Weitere Lektüre

DavidPostill
quelle
Jetzt gibt es eine Lösung: superuser.com/a/1209701/182880
user643011
0

Wenn das Gerät nicht angeschlossen /devist, erkennt Ihr Setup das Laufwerk wahrscheinlich nicht einmal.

Der Befehl lsblksollte alle angeschlossenen Blockgeräte (Laufwerke) auflisten. Wenn es in dieser Liste nicht aufgeführt ist, versuchen Sie am besten, das Gerät anzuschließen, bevor Sie bash starten.

Ich sehe aus Ihrer Frage keine Erwähnung, welche Methode zum Verwenden von Bash für Windows Sie gefunden haben, aber für die meisten sollte es nicht zu schwierig sein, Bash neu zu starten.

Wenn lsblkdas Laufwerk angezeigt wird, suchen Sie den Pfad und geben Sie ihn ein mount <path shown by lsblk> <path you want the drive to be mounted to>

timotree
quelle
mountDas Speichern von Wechseldatenträgern wird noch nicht unterstützt. "WSL automatisch besteigt alle Festplatten mit unterstützten Dateisystemen unter / mnt, wie / mnt / c, / mnt / d, usw. Derzeit werden nur NTFS und REFS Volumes unterstützt werden." Siehe blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support
DavidPostill
lol. Ich habe es schon vor einiger Zeit getan :) Siehe meine Antwort hier Manipulieren Sie Windows-Dateien mit Linux-Bash-Shell in Windows 10
DavidPostill