it-swarm.com.de

Zugriff auf Wechselmedien in Bash unter Windows

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

Bash unter Windows verwendet DriveFs zum Mounten fester Laufwerke im Ordner /mnt, aber das Mounten von Wechseldatenträgern wird nicht automatisch durchgeführt. Und es sieht auch nicht so aus, als würde es sie in /dev einfügen:

[email protected]:/$ 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?

35
Aaron Campbell

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: (z. B. 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/

44
user643011

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 ein Problem aufgeworfen: 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.

Quelle WSL-Dateisystemunterstützung


Weitere Lektüre

11
DavidPostill

Befindet sich das Gerät nicht in /dev, erkennt Ihr Setup das Laufwerk wahrscheinlich nicht einmal.

Der Befehl lsblk sollte 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 zur Verwendung von Bash für Windows Sie gefunden haben, aber für die meisten sollte es nicht zu schwierig sein, Bash neu zu starten.

Wenn lsblk Ihr Laufwerk anzeigt, suchen Sie den Pfad und geben Sie mount <path shown by lsblk> <path you want the drive to be mounted to> ein.

0
timotree