Montaje de un disco Linux en WSL 2

Si desea acceder a un formato de disco Linux que no es compatible con Windows, puede usar WSL 2 para montar el disco y acceder a su contenido. En este tutorial se tratarán los pasos para identificar el disco y la partición que se van a conectar a WSL2, cómo montarlos y cómo acceder a ellos.

Si busca instrucciones sobre cómo conectar un dispositivo USB (unidad flash, lector de tarjetas SD, etc.), consulte Conectar dispositivos USB.

Nota:

Se requiere acceso de administrador para conectar un disco a WSL 2. El comando WSL 2 mount no admite el montaje de un disco (o particiones que pertenecen al disco) que se está usando actualmente. wsl --mount siempre conecta todo el disco aunque solo se solicite una partición. No se puede montar el disco de instalación de Windows.

Prerrequisitos

Tendrá que estar en Windows 11 compilación 22000 o posterior para acceder a esta característica. Puedes unirte al programa Windows Insiders para obtener las últimas compilaciones en versión preliminar.

Montaje de un disco sin particiones

En este caso más sencillo, si tiene un disco que no tiene particiones, puede montarlo directamente mediante el wsl --mount comando . En primer lugar, debe identificar el disco.

  1. Identificar el disco: para enumerar los discos disponibles en Windows, ejecute:

    GET-CimInstance -query "SELECT * from Win32_DiskDrive"
    

    Las rutas de acceso de los discos están disponibles en las columnas "DeviceID". Normalmente bajo el \\.\PHYSICALDRIVE* formato .

  2. Montaje del disco : con PowerShell, puede montar el disco mediante la ruta de acceso del disco detectada anteriormente, ejecute:

    wsl --mount <DiskPath>
    

    Mounting a drive in WSL

Montaje de un disco con particiones

Si tiene un disco en el que no está seguro del formato de archivo en el que se encuentra o en qué particiones tiene, puede seguir los pasos que se indican a continuación para montarlo.

  1. Identificar el disco: para enumerar los discos disponibles en Windows, ejecute:

    GET-CimInstance -query "SELECT * from Win32_DiskDrive"
    

    Las rutas de acceso de los discos se muestran después de "DeviceID", normalmente en el \\.\PHYSICALDRIVE* formato .

  2. Enumere y seleccione las particiones que se van a montar en WSL 2 : una vez identificado el disco, ejecute:

    wsl --mount <DiskPath> --bare
    

    Esto hará que el disco esté disponible en WSL 2. (En el caso de nuestro ejemplo, es <DiskPath>\\.\PHYSICALDRIVE*.

  3. Una vez adjuntada, la partición se puede enumerar ejecutando el siguiente comando dentro de WSL 2:

    lsblk
    

    Se mostrarán los dispositivos de bloque disponibles y sus particiones.

Dentro de Linux, un dispositivo de bloque se identifica como /dev/<Device><Partition>. Por ejemplo, /dev/sdb3, es el número de partición 3 del disco sdb.

Salida de ejemplo:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   0    1G  0 disk
├─sdb2   8:18   0   50M  0 part
├─sdb3   8:19   0  873M  0 part
└─sdb1   8:17   0  100M  0 part
sdc      8:32   0  256G  0 disk /
sda      8:0    0  256G  0 disk

Identificación del tipo de sistema de archivos

Si no conoce el tipo de sistema de archivos de un disco o partición, puede usar este comando:

blkid <BlockDevice>

Esto generará el tipo de sistema de archivos detectado (con el TYPE="<Filesystem>" formato ).

Montaje de las particiones seleccionadas

Una vez que haya identificado las particiones que desea montar, ejecute este comando en cada partición:

wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>

Nota:

Si desea montar todo el disco como un único volumen (es decir, si el disco no tiene particiones), --partition se puede omitir.

Si se omite, el tipo de sistema de archivos predeterminado es "ext4".

Acceso al contenido del disco

Una vez montado, se puede acceder al disco en la ruta de acceso a la que apunta el valor de configuración: automount.root. El valor predeterminado es /mnt/wsl.

Desde Windows, se puede acceder al disco desde Explorador de archivos; para ello, vaya a: \\wsl$\\<Distro>\\<Mountpoint> (elija cualquier distribución de Linux).

Desmontaje de los discos

Si desea desmontar y desasociar el disco de WSL 2, ejecute:

wsl --unmount <DiskPath>

Montaje de un VHD en WSL

Nota:

WSL de la Microsoft Store introduce un nuevo argumento para montar directamente un VHD:wsl --mount --vhd <pathToVHD>

También puede montar archivos de disco duro virtual (VHD) en WSL mediante wsl --mount. Para ello, primero debe montar el disco duro virtual en Windows mediante el Mount-VHD comando de Windows. Asegúrese de ejecutar este comando con privilegios de administrador. A continuación se muestra un ejemplo en el que usamos este comando y también se genera la ruta de acceso del disco. Asegúrese de reemplazar por <pathToVHD> la ruta de acceso del disco duro virtual real.

Write-Output "\\.\PhysicalDrive$((Mount-VHD -Path <pathToVHD> -PassThru | Get-Disk).Number)"

Puede usar la salida anterior para obtener la ruta de acceso del disco para este VHD y montarla en WSL siguiendo las instrucciones de la sección anterior.

También puede usar esta técnica para montar e interactuar con los discos duros virtuales de otras distribuciones de WSL, ya que cada distribución de WSL 2 se almacena a través de un archivo de disco duro virtual denominado: ext4.vhdx. De forma predeterminada, los discos duros virtuales de las distribuciones de WSL 2 se almacenan en esta ruta de acceso: C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName], tenga cuidado al acceder a estos archivos del sistema, es un flujo de trabajo de usuario avanzado. Asegúrese de ejecutarse wsl --shutdown antes de interactuar con este disco para asegurarse de que el disco no está en uso.

Mounting WSL VHD

Referencia de línea de comandos

Montaje de un sistema de archivos específico

De forma predeterminada, WSL 2 intentará montar el dispositivo como ext4. Para especificar otro sistema de archivos, ejecute:

wsl --mount <DiskPath> -t <FileSystem>

Por ejemplo, para montar un disco como fat, ejecute:

wsl --mount <Diskpath> -t vfat

Nota:

Para enumerar los sistemas de archivos disponibles en WSL2, ejecute: cat /proc/filesystems
Cuando un disco se ha montado a través de WSL2 (sistema de archivos Linux), ya no está disponible para montarse a través de un controlador ext4 en el sistema de archivos Windows.

Montaje de una partición específica

De forma predeterminada, WSL 2 intenta montar todo el disco. Para montar una partición específica, ejecute:

wsl --mount <Diskpath> -p <PartitionIndex>

Esto solo funciona si el disco es MBR (registro de arranque maestro) o GPT (tabla de particiones GUID). Obtenga información sobre los estilos de partición: MBR y GPT.

Especificación de opciones de montaje

Para especificar las opciones de montaje, ejecute:

wsl --mount <DiskPath> -o <MountOptions>

Ejemplo:

wsl --mount <DiskPath> -o "data=ordered"

Nota

Solo se admiten las opciones específicas del sistema de archivos en este momento. No se admiten opciones genéricas como ro, rw, noatime, ... .

Conexión del disco sin montarlo

Si el esquema de disco no es compatible con ninguna de las opciones anteriores, puede conectar el disco a WSL 2 sin montarlo ejecutando:

wsl --mount <DiskPath> --bare

Esto hará que el dispositivo de bloque esté disponible dentro de WSL 2 para que se pueda montar manualmente desde allí. Use lsblk para enumerar los dispositivos de bloque disponibles dentro de WSL 2.

Especificación del nombre del montaje

Nota:

Esta opción solo está disponible con WSL desde el Microsoft Store

De forma predeterminada, el nombre del punto de montaje se genera en función del disco físico o el nombre del disco duro virtual. Esto se puede invalidar con --name. Ejemplo:

wsl --mount <DiskPath> --name myDisk

Desasociación de un disco

Para desasociar un disco de WSL 2, ejecute:

wsl --unmount [DiskPath]

Si Diskpath se omite, todos los discos conectados se desmontan y desasocian.

Nota:

Si un disco no se puede desmontar, WSL 2 se puede forzar a salir mediante la ejecución wsl --shutdownde , que desasociará el disco.

Limitaciones

  • En este momento, solo se pueden conectar discos completos a WSL 2, lo que significa que no es posible conectar solo una partición. Concretamente, esto significa que no es posible usar wsl --mount para leer una partición en el dispositivo de arranque, ya que ese dispositivo no se puede desasociar de Windows.

  • Solo los sistemas de archivos que se admiten de forma nativa en el kernel se pueden montar mediante wsl --mount. Esto significa que no es posible usar controladores de sistema de archivos instalados (como ntfs-3g por ejemplo) mediante una llamada a wsl --mount.

  • Los sistemas de archivos no compatibles directamente con el kernel se pueden montar a través de una --bare conexión y, a continuación, invocar el controlador FUSE pertinente.