Montar sistemas de archivos ext4 en Windows a través de WSL2

Así es, por trabajo he tenido la necesidad de montar uno de mis discos duros externos, que siempre suelo tener formateados como ext4, en un sistema Microsoft Windows. Obviando el que para muchos será un crimen y una blasfemia, con un poco de humor, creo que los pasos que he realizado, buscando siempre ser lo más nativo posible, para poder usar el sistema de archivos tradicional de Linux y Unix puede ayudar a más de uno que lo necesite.

Como bien sabeis muchos, existen distintos sistemas de archivos, que indican la estructura en la que se organizan y gestionan los datos en un dispositivo de almacenamiento. Los típicos de Windows son FAT32 o NTFS, tal y como están formateados por defecto la mayor parte de discos duros, pendrives, etcétera. Que encontramos en el mercado. Las distribuciones de Linux suelen ser completamente compatibles con ellos, de tal forma que uno no suele darse cuenta que está usando un sistema no nativo de Unix. Sin embargo, cuando el caso es al revés, como en el mío en el que mis discos duros y dispositivos de almacenamiento suelen estar en ext2, ext3 o ext4; la incompatibilidad con Windows es palpable.

Entonces, ¿cómo puedo utilizar mi disco ext4 en un sistema Windows incompatible? Hay softwares de terceros que se pueden buscar e instalar, pero de primeras lo evitaría. Primero, por seguridad; ya bastante inseguro es Windows como para que le metamos más códigos cerrados y obtusos para pequeas funcionalidades; además que crea aun más basura en un sistema tan sucio, estructural y organizativamente hablando. Por ello, he optado por utilizar WSL o Windows Subsystem Linux, que para quien no lo sepa, es una implementación de Windows relativamente reciente que permite ejecutar un entorno, más o menos virtualizado, de Linux en una máquina Windows.

  1. WSL debe estar en la versión 2. El equipo donde he hecho estaba en versión 1, lo sé por:
C:\>wsl --mount PATH

Esta operación solo es compatible con WSL2

Entonces, lo actualizo:

C:\>wsl.exe --update

Instalando: Subsistema de Windows para Linux
Se ha instalado Subsistema de Windows para Linux.
  1. También parece necesario habilitar la característica Virtual Machine Platform.
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. Instalación de distribución, hay varias disponibles, en mi caso he optado por Debian:
C:\>wsl.exe --list --online

A continuación, se muestra una lista de las distribuciones válidas que se pueden instalar.
Instalar con "wsl.exe --install <Distro>".

NAME                            FRIENDLY NAME
AlmaLinux-8                     AlmaLinux OS 8
AlmaLinux-9                     AlmaLinux OS 9
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
Debian                          Debian GNU/Linux
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
Ubuntu                          Ubuntu
Ubuntu-24.04                    Ubuntu 24.04 LTS
kali-linux                      Kali Linux Rolling
openSUSE-Tumbleweed             openSUSE Tumbleweed
openSUSE-Leap-15.6              openSUSE Leap 15.6
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1

C:\>wsl.exe --install Debian

Descargando: Debian GNU/Linux
[========================= 43,4%                           ]
  1. Descubrimos el disco, es como el equivalente a un lsblk:
C:\> wmic diskdrive list brief
Caption                         DeviceID            Model                           Partitions  Size
KBG50ZNS512G NVMe KIOXIA 512GB  \\.\PHYSICALDRIVE0  KBG50ZNS512G NVMe KIOXIA 512GB  3           512105932800
sobetter EXT SCSI Disk Device   \\.\PHYSICALDRIVE1  sobetter EXT SCSI Disk Device   1           500105249280
  1. Y montamos el disco:
C:\Windows\System32>wsl --mount \\.\PHYSICALDRIVE1 --partition 1

El disco se montó correctamente como "/mnt/wsl/PHYSICALDRIVE1p1".
Nota: La ubicación será diferente si ha modificado la configuración de automount.root en /etc/wsl.conf.
Para desmontar y desasociar el disco, ejecute "wsl.exe --unmount \\.\PHYSICALDRIVE1".

Y con esto, podemos usar nuestros discos en Windows de forma prácticamente nativa, sin necesidad de instalar software a parte.

¡Un saludo a todos!

4 Me gusta

Sirva de resumen, que he necesitado consultar este post para realizar el montaje de nuevo en otro equipo, una vez configurado sólo serían necesarios 3 comandos para montar y desmontar:

wmic diskdrive list brief
wsl --mount \\.\PHYSICALDRIVE1 --partition 1
wsl --unmount \\.\PHYSICALDRIVE1
1 me gusta