Introducción al montaje de un disco Linux en WSL 2 (versión preliminar)

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 asociar a WSL2, cómo montarlos y cómo acceder a ellos.

Nota

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

Requisitos previos

Debe estar en la versión Windows 10 20211 o posterior para acceder a esta característica. Puede unirse al programa Windows Insiders para obtener las compilaciones de versión preliminar más recientes.

Montaje de un disco sin particiones

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

Identificación del disco

Para enumerar los discos disponibles en Windows, ejecute:

GET-WMIOBJECT -query "SELECT * from Win32_DiskDrive"

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

Montaje del disco

A continuación, en PowerShell puede montar el disco mediante la ruta de acceso de disco detectada anteriormente.

wsl --mount <DiskPath>

Montaje de una unidad en WSL

Montaje de un disco con particiones

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

Identificación del disco

Para enumerar los discos disponibles en Windows, ejecute:

GET-WMIOBJECT -query "SELECT * from Win32_DiskDrive"

Las rutas de acceso de los discos aparecen después de "DeviceID", normalmente con el \\.\PHYSICALDRIVE* formato

Enumerar y seleccionar las particiones que se montarán 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* .

Una vez adjuntada, la partición se puede enumerar mediante la ejecución del 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 dará como resultado el tipo de sistema de archivos detectado (con TYPE="<Filesystem>" el 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), se --partition 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 vaya a: \\wsl$\\<Distro>\\<Mountpoint> (elija cualquier distribución de Linux).

Desmontaje de los discos

Si desea desmontaje y desasoción del disco de WSL 2, ejecute:

wsl --unmount <DiskPath>

Montaje de un VHD en WSL

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 Mount-VHD el comando de Windows. Asegúrese de ejecutar este comando con privilegios de administrador. A continuación se muestra un ejemplo en el que se usa 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 disco duro virtual y montarlo 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 para las distribuciones de WSL 2 se almacenan en esta ruta de acceso: , tenga cuidado al acceder a estos archivos del sistema, se trata de un flujo de C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName] trabajo de usuario de energía. Asegúrese de ejecutar antes wsl --shutdown de interactuar con este disco para asegurarse de que el disco no está en uso.

Montaje de vhd WSL

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 se ha montado un disco a través de WSL2 (sistema de archivos Linux), ya no está disponible para montarse a través de un controlador ext4 en el Windows archivos.

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

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

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.

Desasoción de un disco

Para separar un disco de WSL 2, ejecute:

wsl --unmount [DiskPath]

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

Nota

Si no se puede desmontar un disco, WSL 2 se puede forzar a salir mediante la ejecución de , que wsl --shutdown desasorá 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. En concreto, esto significa que no es posible usar para leer una partición en el dispositivo de arranque, ya que ese dispositivo no se puede desasociar wsl --mount de Windows.

  • Las unidades flash USB y las tarjetas SD no se admiten en este momento y no se podrán conectar a WSL 2. No obstante, se admiten discos USB.

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