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?
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/
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:
- Le lecteur doit être un lecteur fixe
- 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
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>