El subsistema de archivos de Windows, o Windows Subsystem for Linux, ha recibido mejoras desde que se anunció como una posibilidad de ejecutar Linux sin salir de Windows, eliminando en más de un caso la necesidad de disponer de una partición o una máquina virtual. Además, disponemos de diferentes distros para elección del usuario.
Hasta ahora en casa actualización ha recibido diferentes mejoras para ofrecer lo que quieren los usuarios, y con 1903 no podía ser menos. Hasta ahora hemos visto novedades como el nuevo centro de control o el tema claro de Windows, pero no termina aquí, y Microsoft ha publicado un blog donde podemos ver todo lo que incluirá con Windows 10 1903, o Windows 10 April 2019 Update.
Los archivos de Linux accesibles desde Windows
Una de las funciones más medidas era la posibilidad de acceder desde Windows a los archivos que teníamos en las diestros de Linux, evitando problemas y errores. Por suerte, han optado por dar la posibilidad de acceder a ellos mediante el explorador de archivos, o con la linea de comandos.
En el explorador de archivos
Si abrimos la distro que utilicemos, o la que queramos en caso de tener ambas, y escribimos el comando explorer.exe . se nos abrirá una ventana del explorador de archivos con todo lo que hay disponible, pudiendo copiar y pegar archivos, cambiarlos, modificarlos, o incluso abrirlos directamente en Visual Studio Code.
De momento la ruta de estos archivos es \\wsl$\<Nombre_Distro>\. Microsoft quiere cambiar esto y que sea mucho más sencillo, incluyendo no tener que estar abierta la distro para acceder. Para ello habrá que esperar a futuras versiones.
En PowerShell
A pesar de que se ha empezado con el explorador de archivos, no es lo único que han añadido, y es que la consola de comandos ha sido la que inicialmente ha permitido utilizar Windows Subsystem for Linux, y con esta función no será menos. Al igual que ocurre con el explorador de archivos, debemos acceder a la distro con cd \\wsl$\<Nombre_Distro>\. A partir de aquí, podremos ver todo.
Cómo funciona
Se ha modificado el Windows Subsystem for Linux para incluir el servidor 9P, un protocolo de archivos que facilita peticiones de archivos. 9P incluye protocolos y soporte para los metadatos de Linux. Hay un servicio y Driver en Windows que actúa como cliente, comunicándose con 9P, comunicándose por sockets AF_UNIX.
Errores conocidos
- De momento solo es posible accede cuando la distro está activada, algo que quieren cambiar en una futura actualización. Esto es debido a que el servidor 9P funciona dentro de cada distro, solo se puede acceder mientras funciona
- Acceder a los archivos de Linux es igual que a un recurso de red, por lo que se aplica cualquier regla que tuviesen estos recursos.
En CMD, si usamos cd \\wsl$\Ubuntu\home no funcionará, sin embargo \\wsl$\Ubuntu\home\archivo.txt c:\dev\ si lo hará. - Se siguen aplicando las reglas anteriores, como la de no acceder por la carpeta de AppData.
Si intentamos acceder mediante esta carpeta, no solo no podremos acceder a los archivos, si no que además podría llegar a volverse corrupta la distro.
Nuevos comandos para wsl.exe
Además de esto, se ha mejorado la experiencia ofrecida con la inclusión de comandos nuevos y mejoras para otros ya existente. Puedes usar wsl.exe para todos los comandos necesarios y controlar la máquina de Linux. Todo será accesible mediante wsl.exe –help.
Comandos añadidos
Ahora es posible importar y exportar diferentes distros, cerrar la que actualmente está funcionando o utilizar diferentes usuarios. Con los de exportar/importar, podremos compartir nuestra máquina con otra persona gracias al uso de archivos tar que tendrá la configuración deseada.
- –user, -u <Nombre de Usuario>
Actúa como el usuario en concreto - –export <Nombre de la distro> <Nombre de Archivo>
Exporta la máquina a un archivo tar
El nombre de archivo puede ser – para una salida estándar. - –import <Nombre de la distro> <Localización> <Nombre de Archivo>
Importa el archivo tar como una distro totalmente nueva.
El nombre del archivo puede ser – como entrada estándar. - –terminate, -t <Nombre de la Distro>
Cierra la distro
Comandos mejorados
Los comandos que existían hasta el momento en wslconfig.exe se han añadido a wsl.exe para que sea todo más accesible y se pueda configurar más fácilmente.
- –list, -l
Lista todas las distro disponibles en nuestra máquina.- –all
Muestra todas, incluso las que se están instalando o desinstalando - –running
Muestra únicamente las que están en funcionamiento
- –all
- –setdefault, -s <Nombre de la Distro>
Configura la distro actual como la predeterminada - –unregister <Nombre de la Distro>
Elimina el registro de la distro - –upgrate <Nombre de la Distro>
Actualiza la distro al sistema de archivos WslFs