static-httpd

Sitio web estático (HTML + CSS) que sostiene el blog del autor
Log | Files | Refs

index.html (8351B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      5 <meta name="viewport" content="width=device-width, initial-scale=1" />
      6 <title>Montaje de sistema de archivos ext4 a través de WSL2</title>
      7 <link rel="icon" type="image/png" href="/favicon.png" />
      8 <link rel="stylesheet" type="text/css" href="../article.css" />
      9 </head>
     10 <body>
     11 <header>
     12 <p class="title">Montaje de sistema de archivos ext4 a través de WSL2</p>
     13 <p class="date">5 de junio de 2026 • fjbalon</p>
     14 </header>
     15 <p>En un artículo algo extraño para lo que suelo escribir, enfocado en el sistema de Microsoft Windows. Tranquilícese el lector, incluso encuadrando el artículo a través del sistema operativo ajeno a las buenas costumbres, no se trata de él mismo, sino que sigue tratándose de Linux por:</p>
     16 <p>a. los formatos de sistemas de archivos transaccionales ext2, ext3 o ext4, pertenecientes nativamente al kernel de Linux desde la introducción en 1993 de ext2, y</p>
     17 <p>b. WSL2 que no es si quiera una capa de compatibilidad con el kernel, como era WSL; sino que ofrece un kernel de Linux a través de virtualización, con llamadas a la API del kernel.</p>
     18 <p>Si hubiera alguna categoría para ello creo que las más adecuadas sería
     19 compatibilidad o virtualización. Ya que, por trabajo, he tenido la necesidad de montar un de mis discos duros externos, que suelo llevar formateados con el sistema de archivos ext4, en un sistema Windows.</p>
     20 <p>Obviando la blasfemia, con un poco de humor, creo que los pasos a realizar pueden ser de interés para muchos. Ya que, no lo sabía, no existe compatibilidad nativa en Windows para montar estos sistemas de archivos. Y no basta, como en GNU/Linux, con instalar un paquete de compatibilidad para montar, por ejemplo, NTFS.</p>
     21 <p>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 pequeñas 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. Como decía antes, de hecho, WSL2 ofrece directamente un núcleo de Linux optimizado por Microsoft.</p>
     22 <p>De ahí, lo primero necesario es tener actualizado WSL2 con una distribución Linux, en mi caso, Debian:</p>
     23 <pre><code>C:\>wsl --mount PATH
     24 Esta operación solo es compatible con WSL2
     25 
     26 C:\>wsl.exe --update
     27 Instalando: Subsistema de Windows para Linux
     28 Se ha instalado Subsistema de Windows para Linux.
     29 
     30 C:\>wsl.exe --list --online
     31 
     32 A continuación, se muestra una lista de las distribuciones válidas que se pueden instalar.
     33 Instalar con "wsl.exe --install <Distro>".
     34 
     35 NAME                            FRIENDLY NAME
     36 AlmaLinux-8                     AlmaLinux OS 8
     37 AlmaLinux-9                     AlmaLinux OS 9
     38 AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
     39 Debian                          Debian GNU/Linux
     40 SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
     41 SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
     42 Ubuntu                          Ubuntu
     43 Ubuntu-24.04                    Ubuntu 24.04 LTS
     44 kali-linux                      Kali Linux Rolling
     45 openSUSE-Tumbleweed             openSUSE Tumbleweed
     46 openSUSE-Leap-15.6              openSUSE Leap 15.6
     47 Ubuntu-18.04                    Ubuntu 18.04 LTS
     48 Ubuntu-20.04                    Ubuntu 20.04 LTS
     49 Ubuntu-22.04                    Ubuntu 22.04 LTS
     50 OracleLinux_7_9                 Oracle Linux 7.9
     51 OracleLinux_8_7                 Oracle Linux 8.7
     52 OracleLinux_9_1                 Oracle Linux 9.1
     53 
     54 C:\>wsl.exe --install Debian
     55 
     56 Descargando: Debian GNU/Linux
     57 [========================= 43,4%                           ]</code></pre>
     58 <p>También es necesario habilitar la característica de Virtual Machine Platform, si no lo hubiera.</p>
     59 <pre><code>dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart</code></pre>
     60 <p>Entonces podemos descubrir el disco y lo montamos a través de WSL, para los unixeros, estamos haciendo el equivalente de Windows a lsblk y mount:</p>
     61 <pre><code>wmic diskdrive list brief
     62 Caption                         DeviceID            Model                           Partitions  Size
     63 KBG50ZNS512G NVMe KIOXIA 512GB  \\.\PHYSICALDRIVE0  KBG50ZNS512G NVMe KIOXIA 512GB  3           512105932800
     64 sobetter EXT SCSI Disk Device   \\.\PHYSICALDRIVE1  sobetter EXT SCSI Disk Device   1           500105249280
     65 
     66 C:\Windows\System32>wsl --mount \\.\PHYSICALDRIVE1 --partition 1
     67 
     68 El disco se montó correctamente como "/mnt/wsl/PHYSICALDRIVE1p1".
     69 Nota: La ubicación será diferente si ha modificado la configuración de automount.root en /etc/wsl.conf.
     70 Para desmontar y desasociar el disco, ejecute "wsl.exe --unmount \\.\PHYSICALDRIVE1".</code></pre>
     71 <img src="ext4-windows-wsl2.png" />
     72 <p>Y con esto, podemos usar nuestros discos en Windows de forma prácticamente nativa, sin necesidad de instalar software de terceros a parte.</p>
     73 <p>Pero, ¿y si no queremos montar un disco duro sino un pendrive o memoria flash?</p>
     74 <p>En un inicio intenté hacer lo mismo, ¿pero cuál fue mi sorpresa? resulta que el procedimiento ya descrito <a href="https://github.com/microsoft/WSL/issues/6011">no sirve con pendrives</a>.</p>
     75 <p>Por lo que hay que buscar otra alternativa... Me hablan de <a href="https://github.com/dorssel/usbipd-win/releases">usbipd-win</a>, una utilidad para compartir USB entre la máquina Windows anfitriona, Hyper-V y WSL2.</p>
     76 <p>De esta forma, puedo listar los USB conectados:</p>
     77 <pre><code>PS C:\WINDOWS\system32> usbipd.exe list
     78 Connected:
     79 BUSID  VID:PID    DEVICE                                                        STATE
     80 2-6    0bda:5570  Integrated Webcam, Integrated IR Webcam, Camera DFU Device    Not shared
     81 2-8    0a5c:5843  Dell ControlVault w/ Fingerprint Touch Sensor, Lector de ...  Not shared
     82 2-10   8087:0033  Intel(R) Wireless Bluetooth(R)                                Not shared
     83 2-15   346d:3281  Dispositivo de almacenamiento USB                             Not shared
     84 3-2    05e3:0754  Dispositivo de almacenamiento USB                             Not shared
     85 4-1    413c:301a  Dispositivo de entrada USB                                    Not shared
     86 4-3    2109:0100  USB 2.0 BILLBOARD                                             Not shared
     87 4-4    03f0:0324  Dispositivo de entrada USB                                    Not shared
     88 4-5    2109:8888  USB Billboard Device                                          Not shared</code></pre>
     89 <p>Identifico mi pendrive como si de <emb>/dev</emb> se tratara, siendo <emb>2-15, 346d:3281, Dispositivo de almacenamiento USB</emb>, y mediante el <emb>BUSID</emb> lo comparto y paso a WSL:</p>
     90 <pre><code>usbipd bind --busid 2-15
     91 usbipd attach --wsl --busid 2-15
     92 
     93 usbipd: info: Using WSL distribution 'Debian' to attach; the device will be available in all WSL 2 distributions.
     94 usbipd: info: Loading vhci_hcd module.
     95 usbipd: info: Detected networking mode 'nat'.
     96 usbipd: info: Using IP address 172.27.32.1 to reach the host.</code></pre>
     97 <p>Ahora, en el Linux embebido de WSL, aparece como dispositivo en <emb>/dev/sde</emb>:</p>
     98 <pre><code>lsblk
     99 NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
    100 sda    8:0    0 364.8M  1 disk
    101 sdb    8:16   0 144.5M  1 disk
    102 sdc    8:32   0     2G  0 disk [SWAP]
    103 sdd    8:48   0     1T  0 disk /mnt/wslg/distro /
    104 sde    8:64   1 231.1G  0 disk</code></pre>
    105 <p>Esto ya es territorio Linux, por lo que simplemente debo montarlo y usarlo como de costumbre.</p>
    106 <p>Lo siento por la entrada heterodoxa, pero a veces tenemos que ponernos guantes quirúrgicos y usar estos sistemas, y qué mejor que contar atajos para poder usar nuestros discos y particiones ext2, ext3 o ext4.</p>
    107 <p>Sirva como resumen o gist:</p>
    108 <pre><code># Montaje de disco duro ext4
    109 wmic diskdrive list brief
    110 wsl --mount \\.\PHYSICALDRIVE1 --partition 1
    111 
    112 # Montaje de pendrive ext4
    113 usbipd.exe list
    114 usbipd bind --busid 2-15
    115 usbipd attach --wsl --busid 2-15
    116 lsblk</code></pre>
    117 </body>
    118 </html>