Monter un disque Linux dans WSL 2

Si vous souhaitez accéder à un format de disque Linux qui n’est pas pris en charge par Windows, vous pouvez utiliser WSL 2 pour monter votre disque et accéder à son contenu. Ce didacticiel décrit les étapes permettant d’identifier le disque et la partition à attacher à WSL2, comment les monter et comment y accéder.

Si vous recherchez des conseils sur la connexion d’un périphérique USB (lecteur flash, lecteur de carte SD, etc.), consultez Connecter périphériques USB.

Notes

L’accès administrateur est requis pour attacher un disque à WSL 2. La commande WSL 2 mount ne prend pas en charge le montage d’un disque (ou des partitions appartenant au disque) actuellement en cours d’utilisation. wsl --mount attache toujours l’intégralité du disque, même si seule une partition est demandée. Vous ne pouvez pas monter le disque d’installation Windows.

Prérequis

Vous devrez être sur Windows 11 Build 22000 ou version ultérieure pour accéder à cette fonctionnalité. Vous pouvez rejoindre le programme Insiders Windows pour obtenir les dernières versions préliminaires.

Montage d’un disque nonpartitionné

Dans ce cas le plus simple, si vous avez un disque qui n’a pas de partitions, vous pouvez le monter directement à l’aide de la wsl --mount commande. Tout d’abord, vous devez identifier le disque.

  1. Identifiez le disque : pour répertorier les disques disponibles dans Windows, exécutez :

    PowerShell
    GET-CimInstance -query "SELECT * from Win32_DiskDrive"
    

    Les chemins d’accès aux disques sont disponibles sous les colonnes « DeviceID ». Généralement sous le \\.\PHYSICALDRIVE* format.

  2. Montez le disque - À l’aide de PowerShell, vous pouvez monter le disque à l’aide du chemin disque découvert ci-dessus, exécutez :

    PowerShell
    wsl --mount <DiskPath>
    

    Mounting a drive in WSL

Montage d’un disque partitionné

Si vous avez un disque dans lequel vous ne savez pas quel format de fichier il se trouve ou quelles partitions il contient, vous pouvez suivre les étapes ci-dessous pour le monter.

  1. Identifiez le disque : pour répertorier les disques disponibles dans Windows, exécutez :

    PowerShell
    GET-CimInstance -query "SELECT * from Win32_DiskDrive"
    

    Les chemins d’accès aux disques sont répertoriés après « DeviceID », généralement au \\.\PHYSICALDRIVE* format.

  2. Répertoriez et sélectionnez les partitions à monter dans WSL 2 : une fois le disque identifié, exécutez :

    PowerShell
    wsl --mount <DiskPath> --bare
    

    Cela permet de rendre le disque disponible dans WSL 2. (Dans le cas de notre exemple, c’est <DiskPath>\\.\PHYSICALDRIVE*.

  3. Une fois attachée, la partition peut être répertoriée en exécutant la commande suivante dans WSL 2 :

    Bash
    lsblk
    

    Cela affiche les appareils de bloc disponibles et leurs partitions.

À l’intérieur de Linux, un appareil de bloc est identifié comme /dev/<Device><Partition>. Par exemple, /dev/sdb3, est le numéro de partition 3 du disque sdb.

Exemple de sortie :

Bash
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

Identification du type de système de fichiers

Si vous ne connaissez pas le type de système de fichiers d’un disque ou d’une partition, vous pouvez utiliser cette commande :

Bash
blkid <BlockDevice>

Cela génère le type de système de fichiers détecté (sous le TYPE="<Filesystem>" format).

Monter les partitions sélectionnées

Une fois que vous avez identifié les partitions que vous souhaitez monter, exécutez cette commande sur chaque partition :

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

Notes

Si vous souhaitez monter l’intégralité du disque en tant que volume unique (c’est-à-dire si le disque n’est pas partitionné), --partition vous pouvez l’omettre.

S’il est omis, le type de système de fichiers par défaut est « ext4 ».

Accéder au contenu du disque

Une fois monté, le disque est accessible sous le chemin d’accès pointé par la valeur de configuration : automount.root La valeur par défaut est /mnt/wsl.

À partir de Windows, le disque est accessible à partir de Explorateur de fichiers en accédant à : \\wsl$\\<Distro>\\<Mountpoint> (choisissez n’importe quelle distribution Linux).

Démonter le disque

Si vous souhaitez démonter et détacher le disque de WSL 2, exécutez :

PowerShell
wsl --unmount <DiskPath>

Monter un disque dur virtuel dans WSL

Notes

WSL à partir du Microsoft Store introduit un nouvel argument pour monter directement un disque dur virtuel :wsl --mount --vhd <pathToVHD>

Vous pouvez également monter des fichiers de disque dur virtuel (VHD) dans WSL à l’aide wsl --mountde . Pour ce faire, vous devez d’abord monter le disque dur virtuel dans Windows à l’aide de la Mount-VHD commande dans Windows. Veillez à exécuter cette commande avec des privilèges d’administrateur. Voici un exemple dans lequel nous utilisons cette commande et génère également le chemin d’accès au disque. Veillez à remplacer <pathToVHD> par votre chemin de disque dur virtuel réel.

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

Vous pouvez utiliser la sortie ci-dessus pour obtenir le chemin du disque pour ce disque dur virtuel et le monter dans WSL en suivant les instructions de la section précédente.

Vous pouvez également utiliser cette technique pour monter et interagir avec les disques durs virtuels d’autres distributions WSL, car chaque distribution WSL 2 est stockée via un fichier de disque dur virtuel appelé : ext4.vhdx Par défaut, les disques durs virtuels pour les distributions WSL 2 sont stockés dans ce chemin d’accès : C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName], veillez à accéder à ces fichiers système, il s’agit d’un flux de travail power user. Veillez à s’exécuter wsl --shutdown avant d’interagir avec ce disque pour vous assurer que le disque n’est pas utilisé.

Mounting WSL VHD

Informations de référence sur la ligne de commande

Montage d’un système de fichiers spécifique

Par défaut, WSL 2 tente de monter l’appareil comme ext4. Pour spécifier un autre système de fichiers, exécutez :

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

Par exemple, pour monter un disque en gras, exécutez :

wsl --mount <Diskpath> -t vfat

Notes

Pour répertorier les systèmes de fichiers disponibles dans WSL2, exécutez : cat /proc/filesystems
Lorsqu’un disque a été monté via WSL2 (système de fichiers Linux), il n’est plus disponible pour monter via un pilote ext4 sur le système de fichiers Windows.

Montage d’une partition spécifique

Par défaut, WSL 2 tente de monter l’intégralité du disque. Pour monter une partition spécifique, exécutez :

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

Cela fonctionne uniquement si le disque est MBR (enregistrement de démarrage maître) ou GPT (table de partition GUID). En savoir plus sur les styles de partition - MBR et GPT.

Spécification des options de montage

Pour spécifier les options de montage, exécutez :

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

Exemple :

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

Notes

Seules les options spécifiques du système de fichiers sont prises en charge pour le moment. Les options génériques telles que ro, rw, noatime, ... ne sont pas prises en charge.

Attachement du disque sans le monter

Si le schéma de disque n’est pris en charge par aucune des options ci-dessus, vous pouvez attacher le disque à WSL 2 sans le monter en exécutant :

PowerShell
wsl --mount <DiskPath> --bare

Cela rend l’appareil de bloc disponible à l’intérieur de WSL 2 afin qu’il puisse être monté manuellement à partir de là. Utilisez lsblk pour répertorier les appareils de bloc disponibles à l’intérieur de WSL 2.

Spécification du nom du montage

Notes

Cette option est disponible uniquement avec WSL à partir du Microsoft Store

Par défaut, le nom du point de montage est généré en fonction du disque physique ou du nom du disque dur virtuel. Cela peut être substitué par --name. Exemple :

PowerShell
wsl --mount <DiskPath> --name myDisk

Détacher un disque

Pour détacher un disque de WSL 2, exécutez :

PowerShell
wsl --unmount [DiskPath]

S’il Diskpath est omis, tous les disques attachés sont montés et détachés.

Notes

Si un disque ne parvient pas à démonter, WSL 2 peut être forcé de quitter en exécutant wsl --shutdown, ce qui détache le disque.

Limites

  • À ce stade, seuls les disques entiers peuvent être attachés à WSL 2, ce qui signifie qu’il n’est pas possible d’attacher uniquement une partition. Concrètement, cela signifie qu’il n’est pas possible d’utiliser wsl --mount pour lire une partition sur l’appareil de démarrage, car cet appareil ne peut pas être détaché de Windows.

  • Seuls les systèmes de fichiers pris en charge en mode natif dans le noyau peuvent être montés par wsl --mount. Cela signifie qu’il n’est pas possible d’utiliser des pilotes de système de fichiers installés (tels que ntfs-3g par exemple) en appelant wsl --mount.

  • Les systèmes de fichiers non pris en charge directement par le noyau peuvent être montés via un --bare attachement, puis en appelant le pilote FUSE approprié.