Sous-système Linux : l'accès aux fichiers est plus simple dans Windows 10 May 2019

S’il est désormais facile d’utiliser un terminal Linux depuis Windows 10, l’interaction entre les deux systèmes était en partie incomplète. L’édition May 2019 de l’OS de Microsoft améliorera les choses.

La nouvelle évolution de Windows 10, May 2019 (ex-19H1), arrive. Si elle apporte de nombreuses nouveautés, l’une d’elles était particulièrement attendue des développeurs : un meilleur accès aux fichiers du sous-système Linux (WSL).

Pour rappel, cette fonctionnalité permet de disposer d’un terminal tel qu’on l’obtiendrait sous Debian, Kali, OpenSUSE ou Ubuntu, avec des performances presque natives, la virtualisation n’intervenant pas. De quoi concilier le meilleur des deux mondes sans effort ni dual boot.

Un dispositif assez complet, mais pas sans défauts. Ainsi, outre l’absence d’interface graphique, WSL ne permet pas d’accéder facilement aux fichiers de ses distributions depuis l’Explorateur de Windows (par exemple). Surtout, l’accès ne peut se faire qu’en lecture seule, au risque de corrompre les données. Heureusement, une solution a été trouvée.

Microsoft intègre un serveur 9P dans Windows 10

La technologie utilisée n’a rien de bien nouveau : Windows va exploiter le protocole d’accès aux fichiers et périphériques de Plan 9, un système d’exploitation des Bell Labs sorti dans les années 90 : 9P.

Il est utilisé sous forme d’un serveur intégré aux instances WSL, permettant l’accès aux données depuis un pilote et un service Windows faisant office de client. La communication entre ces deux éléments se fait via des sockets Unix (AF_UNIX), introduits dans l’April 2018 Update de Windows 10.

WSL et les distributions installées sont donc vues désormais comme des éléments du réseau auquel on peut accéder via un chemin UNC (Universal Naming Convention) :

\wsl$
\wsl$\nom_de_la_distribution

L’accès sera ainsi identique à celui d’une ressource du réseau local, même si la racine de WSL n’est pas affichée dans la section Réseau de l’Explorateur de fichiers. On peut néanmoins monter chaque élément comme un lecteur réseau ou le placer en raccourci dans l’accès rapide. Il y a toutefois d’autres subtilités (et astuces) à connaitre.

Plus d’options pour WSL

Tout d’abord, l’application wsl.exe dispose désormais d’options supplémentaires permettant de lister les distributions installées et/ou lancées, mais aussi de les importer/exporter d’une machine à l’autre. On peut les « terminer » (ce qui revient à les fermer), les désenregistrer du système ou encore décider laquelle est utilisée par défaut.

Pour celles installées avant Windows 10 May 2019, une mise à jour sera possible avec le nouveau système de fichiers.

WSL Windows 10 April UpdateWSL Windows 10 May 2019
L’aide de l’application wsl.exe dans Windows 10 April 2018 et May 2019

Un accès depuis l’Explorateur ou PowerShell

Microsoft prévient qu’il ne faut pas accéder aux fichiers d’une distribution WSL via le répertoire AppData de l’utilisateur, ce qui reviendrait à outrepasser le serveur 9P, donc potentiellement de les endommager.

Ressource réseau oblige, l’accès ne peut pas se faire via cd dans l’Invite de commandes classique (cmd.exe). On peut par contre utiliser le chemin d’une distribution comme source ou destination, pour ouvrir ou copier un fichier par exemple. PowerShell n’est pas concerné par cette limitation, mais ne peut accéder à la racine :

WSL PowerShell Windows 10 May 2019

On regrette au passage que le nom des distributions installées ne profite pas (encore ?) de l’auto-complétion via la touche Tabulation. De fait, passer par l’Explorateur sera souvent la solution la plus simple. Notez qu’il est possible de l’ouvrir dans le dossier courant d’un terminal WSL avec la commande suivante :

explorer.exe .

Dans la version actuelle de Windows 10, elle ouvre le répertoire System32 .

Une évolution bienvenue, à compléter

Au final, l’ensemble s’avère pratique, même s’il faut encore composer avec des limitations pouvant demander une révision des habitudes. Mais l’intégration du serveur 9P apparaît comme un bon compromis.

Depuis l’annonce de cette fonctionnalité, certains points ont d’ailleurs été renforcés. Il était par exemple au départ impossible d’accéder aux fichiers d’une distribution WSL tant que son terminal n’avait pas été ouvert une première fois, une action mettant en route le serveur. Ce n’est désormais plus nécessaire : chercher à accéder aux fichiers suffit à son lancement.

On apprécierait néanmoins que d’autres points soient traités d’ici la publication de la mise à jour May 2019, comme l’ajout automatique d’un raccourci vers la racine WSL dans l’Accès rapide lorsqu’au moins une distribution est installée.

Microsoft incite en tous cas les utilisateurs à faire part de leurs retours via GitHub ou directement via Twitter.