web-dev-qa-db-fra.com

Accès aux supports amovibles dans Bash sous Windows

Existe-t-il un moyen d'accéder à des supports amovibles (par exemple, des clés USB ou des cartes SD) à partir de Bash sous Windows?

Bash sous Windows utilise DriveFs pour monter des lecteurs fixes dans le dossier /mnt, mais ne monte pas automatiquement le support amovible. Et il ne semble pas que cela les mette dans /dev non plus:

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

Est-il possible de monter des lecteurs amovibles? Existe-t-il un moyen d'accéder au périphérique de bloc sous-jacent?

35
Aaron Campbell

Bonne nouvelle, il est désormais possible de monter des supports USB (y compris au format FAT) et des partages réseau avec drvfs sous Windows 10:

Monter un support amovible: (par exemple D :)

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

Pour démonter en toute sécurité

$ Sudo umount /mnt/d

Vous pouvez également monter des partages réseau sans smbfs:

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

Il vous faut au moins la version 16176 pour que vous deviez peut-être adhérer au programme Windows Insider, puis mettre à jour Windows. Source: https://blogs.msdn.Microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subsystem-for-linux/

44
user643011

Existe-t-il un moyen d'accéder aux supports amovibles à partir de Bash sous Windows?

Mettre à jour:

Apparemment, il est maintenant possible de démarrer à partir de Windows 10 Build 16176.

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


Non.

Pour le moment, les lecteurs montés sont limités:

Pour qu'un lecteur apparaisse sous/mnt /, il doit répondre aux critères suivants:

  1. Le lecteur doit être un lecteur fixe
  2. Le lecteur doit être formaté en NTFS.

Ce problème a été soulevé: Les lecteurs autres que C: ne sont pas montés dans/mnt # 1079 . Il est toujours marqué comme "Ouvrir".

Pour faciliter l'interopérabilité avec Windows, WSL utilise le système de fichiers DrvFs. WSL monte automatiquement tous les lecteurs fixes avec les systèmes de fichiers pris en charge sous/mnt, tels que/mnt/c,/mnt/d, etc. Actuellement, seuls les volumes NTFS et ReFS sont pris en charge.

Source Support du système de fichiers WSL


Lectures complémentaires

11
DavidPostill

Si le périphérique n'est pas dans /dev, il est probable que votre configuration ne détecte même pas le lecteur.

La commande lsblk devrait répertorier tous les périphériques en mode bloc connectés (lecteurs). S'il n'apparaît pas dans cette liste, le mieux est d'essayer de brancher l'appareil avant de commencer bash.

Je ne vois dans votre question aucune mention de la méthode d’utilisation de bash sur les fenêtres que vous avez trouvées, mais pour la plupart il ne devrait pas être trop difficile de redémarrer bash.

Si lsblk vous montre votre lecteur, recherchez le chemin qu’il répertorie et saisissez mount <path shown by lsblk> <path you want the drive to be mounted to>

0
timotree