Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide explique comment gérer l’espace disque utilisé par les distributions Linux installées à l’aide de WSL 2, notamment :
- Comment vérifier l'espace disque disponible dans le VHD
- Comment augmenter la taille du VHD
- Comment réparer le disque dur virtuel si une erreur se produit
- Comment localiser le fichier .vhdx et le chemin d’accès au disque pour toutes les distributions Linux installées
Le sous-système Windows pour Linux (WSL 2) utilise une plateforme de virtualisation pour installer des distributions Linux en même temps que le système d’exploitation Windows hôte, créant un disque dur virtuel (VHD) pour stocker des fichiers pour chacune des distributions Linux que vous installez. Ces disques durs virtuels utilisent le type de système de fichiers ext4 et sont représentés sur votre disque dur Windows en tant que fichier ext4.vhdx .
WSL 2 redimensionne automatiquement ces fichiers VHD pour répondre aux besoins de stockage. Par défaut, chaque fichier VHD utilisé par WSL 2 est initialement alloué une quantité maximale de 1 To d’espace disque (avant la version WSL 0.58.0 , cette valeur par défaut a été définie sur un maximum de 512 Go et 256 Go max avant cela).
Si l’espace de stockage requis par vos fichiers Linux dépasse cette taille maximale, vous verrez des erreurs indiquant que vous n’avez plus d’espace disque. Pour corriger cette erreur, suivez les instructions ci-dessous sur l’extension de la taille de votre disque dur virtuel WSL 2.
Comment vérifier votre espace disque disponible
Vérifiez la quantité d’espace disque disponible dans le disque dur virtuel pour une distribution Linux installée avec WSL 2 à l’aide de la commande Linux Df
.
Pour vérifier l’espace disque disponible, ouvrez une ligne de commande PowerShell et entrez cette commande (en remplaçant <distribution-name>
par le nom de distribution réel) :
wsl.exe --system -d <distribution-name> df -h /mnt/wslg/distro
Si cette commande ne fonctionne pas pour vous, effectuez une mise à niveau vers la version Store de WSL à l’aide de la wsl --update
commande, ou essayez wsl df -h /
.
La sortie inclut les éléments suivants :
- Système de fichiers : identificateur du système de fichiers VHD
- Taille: Taille totale du disque (quantité maximale d'espace allouée au VHD)
- Utilisé : quantité d’espace actuellement utilisée dans le disque dur virtuel
- Disponibilité : quantité d’espace restante dans le disque dur virtuel (taille allouée moins la quantité utilisée)
- Utiliser%: pourcentage d’espace disque restant (Utilisé / Taille allouée)
- Monté sur : chemin d’accès au répertoire où le disque est monté
Si vous constatez que vous êtes près d’atteindre la quantité d’espace disque disponible allouée à votre disque dur virtuel ou que vous avez déjà reçu une erreur en raison d’aucun espace disque restant, consultez la section suivante pour savoir comment développer la quantité maximale d’espace disque allouée au disque dur virtuel associé à votre distribution Linux. La quantité d’espace disque allouée à votre disque dur virtuel par WSL affiche toujours la quantité maximale par défaut (1 To dans la version la plus récente de WSL), même si la quantité d’espace disque sur votre appareil Windows réel est inférieure à celle-ci. WSL monte un disque dur virtuel qui s’étendra en taille à mesure que vous l’utilisez, de sorte que votre distribution Linux voit qu’elle peut atteindre la taille maximale allouée de 1 To.
Comment développer la taille de votre disque dur virtuel WSL 2
Pour développer la taille du disque dur virtuel pour une distribution Linux au-delà de la quantité maximale maximale par défaut de 1 To d’espace disque alloué, vous pouvez utiliser la wsl --manage
commande ou suivre les étapes manuelles ci-dessous. (La valeur par défaut maximale des versions WSL antérieures peut être définie sur 512 Go ou 256 Go).
Étendre la taille du disque dur virtuel à l'aide de wsl --manage
La wsl --manage
commande est disponible uniquement pour WSL versions 2.5 et ultérieures.
Pour redimensionner l’espace alloué sur votre disque virtuel :
Terminer toutes les instances WSL à l’aide de la commande
wsl.exe --shutdown
Exécutez
wsl --manage <distribution name> --resize <memory string>
. Les chaînes de mémoire prises en charge sont de la forme<Memory Value>B/M/MB/G/GB/T/TB
. Les valeurs décimales ne sont actuellement pas prises en charge (par exemple2.5TB
).
La sortie doit ressembler à ce qui suit :
e2fsck 1.46.5 (30-Dec-2021)
Pass 1: Checking inodes, blocks, and sizes
resize2fs 1.46.5 (30-Dec-2021)
The operation completed successfully.
Le lecteur virtuel (ext4.vhdx) pour cette distribution Linux a maintenant été étendu à la nouvelle taille.
Expansion manuelle
Pour agrandir la taille du VHD pour une distribution Linux à l’aide des étapes manuelles :
Terminez toutes les instances WSL à l’aide de la commande :
wsl.exe --shutdown
Copiez le chemin du répertoire dans le fichier ext4.vhdx associé à la distribution Linux installée sur votre ordinateur. Pour obtenir de l’aide, consultez Comment localiser le fichier vhdx et le chemin du disque pour votre distribution Linux.
Ouvrez l'invite de commande Windows avec des privilèges d'administrateur, puis ouvrez le diskpart command interpreter en entrant :
diskpart
Vous aurez maintenant une
DISKPART>
invite. Entrez la commande suivante, en remplaçant<pathToVHD>
par le chemin d’accès du répertoire au fichier associé à laext4.vhdx
distribution Linux (copié à l’étape 2).Select vdisk file="<pathToVHD>"
Affichez les détails associés à ce disque virtuel, y compris la taille virtuelle, représentant la taille maximale actuelle allouée pour le disque dur virtuel :
detail vdisk
Vous devez convertir la taille virtuelle en mégaoctets. Par exemple, si la taille virtuelle est de 512 Go, elle est égale à 512 000 Mo. La nouvelle valeur que vous entrez doit être supérieure à cette valeur d’origine. Pour doubler la taille virtuelle de 512 Go à 1024 Go, vous devez entrer la valeur en Mo comme suit : 1024000. Veillez à ne pas entrer une valeur supérieure à celle que vous souhaitez réellement, car le processus de réduction d’une taille de disque virtuel est beaucoup plus compliqué.
Entrez la valeur de la nouvelle taille maximale que vous souhaitez allouer à cette distribution Linux à l’aide de l’invite de commandes de Windows
DISKPART>
:expand vdisk maximum=<sizeInMegaBytes>
Quittez l’invite
DISKPART>
:exit
Lancez cette distribution Linux. (Vérifiez qu’elle est en cours d’exécution dans WSL 2. Vous pouvez confirmer cela à l’aide de la commande :
wsl.exe -l -v
. WSL 1 n’est pas pris en charge).Faites en sorte que WSL sache qu’il peut développer la taille du système de fichiers pour cette distribution en exécutant ces commandes à partir de votre ligne de commande de distribution WSL. Ce message peut s’afficher en réponse à la première commande de montage : « /dev : aucun déjà monté sur /dev ». Ce message peut être ignoré en toute sécurité.
sudo mount -t devtmpfs none /dev mount | grep ext4
Copiez le nom de cette entrée, qui ressemblera à ceci :
/dev/sdX
(avec le X représentant tout autre caractère). Dans l’exemple suivant, la valeur de X est b :
sudo resize2fs /dev/sdb <sizeInMegabytes>M
À l’aide de l’exemple ci-dessus, nous avons modifié la taille du disque dur virtuel en 2048000, de sorte que la commande serait : sudo resize2fs /dev/sdb 2048000M
.
Remarque
Vous devrez peut-être installer resize2fs. Si c’est le cas, vous pouvez utiliser cette commande pour l’installer : sudo apt install resize2fs
.
La sortie ressemble à l'exemple suivant :
resize2fs 1.44.1 (24-Mar-2021)
Filesystem at /dev/sdb is mounted on /; on-line resizing required
old_desc_blocks = 32, new_desc_blocks = 38
The filesystem on /dev/sdb is now 78643200 (4k) blocks long.
Le lecteur virtuel (ext4.vhdx) pour cette distribution Linux a maintenant été étendu à la nouvelle taille.
Important
Nous vous recommandons de ne pas modifier, déplacer ou accéder aux fichiers associés WSL situés à l’intérieur de votre AppData
dossier à l’aide d’outils ou d’éditeurs Windows. Cela peut entraîner la corruption de votre distribution Linux. Si vous souhaitez accéder à vos fichiers Linux à partir de Windows, c’est possible via le chemin d’accès \\wsl$\<distribution-name>\
. Ouvrez votre distribution WSL et entrez explorer.exe .
pour afficher ce dossier. Pour en savoir plus, consultez le billet de blog : Accès aux fichiers Linux à partir de Windows.
Comment réparer une erreur de montage de disque dur virtuel VHD
Si vous rencontrez une erreur liée au « montage du disque de distribution », cela peut être dû à un arrêt soudain ou à une panne de courant et peut entraîner le basculement du disque dur virtuel de distribution Linux en lecture seule pour éviter la perte de données. Vous pouvez réparer et restaurer la distribution à l’aide de la e2fsck
commande Linux en suivant les étapes ci-dessous.
Utilisez la commande lsblk pour identifier le nom du dispositif de bloc
Lorsque WSL 2 installe une distribution Linux, il monte la distribution en tant que disque dur virtuel (VHD) avec son propre système de fichiers. Linux fait référence à ces disques durs en tant que « blocs d’appareils » et vous pouvez afficher des informations à leur sujet à l’aide de la lsblk
commande.
Pour rechercher les noms des appareils de bloc actuellement utilisés par WSL 2, ouvrez votre distribution et entrez la commande : lsblk
. (Ou ouvrez PowerShell et entrez la commande : wsl.exe lsblk
.) La sortie ressemble à ceci :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 363.1M 1 disk
sdb 8:16 0 8G 0 disk [SWAP]
sdc 8:32 0 1.5T 0 disk
sdd 8:48 0 1T 0 disk /mnt/wslg/distro
Voici les informations concernant le périphérique de bloc :
-
NOM : le nom attribué à l’appareil sera sd[a-z], faisant référence au disque SCSI avec une désignation de lettre pour chaque disque utilisé.
sda
est toujours la distribution du système. - MAJ :MIN : représente les nombres utilisés par le noyau Linux pour identifier en interne les appareils avec le premier numéro représentant le type d’appareil (8 est utilisé pour les disques SCSI/interface système de petite taille).
- RM : Nous savons si l’appareil est amovible (1) ou non (0).
- TAILLE : taille totale du volume.
- RO : Faites-nous savoir si l’appareil est en lecture seule (1) ou non (0).
- TYPE : fait référence au type d’appareil (disque dans ce cas).
- MOUNTPOINTS : fait référence au répertoire actif sur le système de fichiers où se trouve l’appareil de bloc (SWAP est destiné à la mémoire inactive préconfigurée, sans point de montage).
Erreur de repli en lecture seule
Si WSL rencontre une « erreur de montage » lors de l’ouverture d’une distribution Linux, la distribution peut être définie en lecture seule comme secours. Si cela se produit, la distribution peut afficher l’erreur suivante au démarrage :
An error occurred mounting the distribution disk, it was mounted read-only as a fallback.
Lorsqu’une distribution est démarrée en lecture seule, toute tentative d’écriture dans le système de fichiers échoue avec une erreur semblable à celle-ci :
$ touch file
touch: cannot touch 'file': Read-only file system
Pour réparer une erreur de montage de disque dans WSL et la restaurer à nouveau dans un état utilisable/accessible en écriture, vous pouvez utiliser la wsl.exe --mount
commande pour re-monter le disque en procédant comme suit :
Arrêtez toutes les distributions WSL en ouvrant PowerShell en tant qu’administrateur (dans une invite de commandes avec élévation de privilèges) et en entrant la commande :
wsl.exe --shutdown
Entrez la commande de montage et remplacez
<path-to-ext4.vhdx>
par le chemin d’accès au fichier .vhdx de la distribution. Pour obtenir de l’aide sur la localisation de ce fichier, consultez Comment localiser le fichier de disque dur virtuel et le chemin d’accès du disque pour votre distribution Linux.wsl.exe --mount <path-to-ext4.vhdx> --vhd --bare
Utilisez la
wsl.exe lsblk
commande de PowerShell pour identifier le nom de l’appareil de bloc pour la distribution (sd[a-z]), puis entrez la commande suivante pour réparer le disque (en remplaçant<device>
par le nom correct de l’appareil de bloc, par exemple « sdc »). Lae2fsck
commande vérifie les systèmes de fichiers ext4 (le type utilisé par les distributions installées avec WSL) pour les erreurs et les répare en conséquence.wsl.exe sudo e2fsck -f /dev/<device>
Remarque
Si vous n’avez installé qu’une seule distribution Linux, vous risquez de rencontrer une erreur « ext file in use » et de devoir installer une distribution supplémentaire pour l’exécuter wsl.exe lsblk
. Vous pouvez désinstaller la distribution une fois la réparation terminée. En outre, vous devrez peut-être fermer Docker Desktop sur Windows pour éviter l’erreur Wsl/Service/CreateInstance/MountVhd/HCS/ERROR_SHARING_VIOLATION
lors de l’exécution de la commande wsl.exe sudo e2fsck -f /dev/sdc
.
Une fois la réparation terminée, démontez le disque dans PowerShell en entrant :
wsl.exe --unmount
Avertissement
Vous pouvez utiliser la commande : sudo mount -o remount,rw /
pour retourner une distribution en lecture seule à un état utilisable/accessible en écriture, mais toutes les modifications seront en mémoire et seront donc perdues lorsque la distribution est redémarrée. Nous vous recommandons d’utiliser les étapes répertoriées ci-dessus pour monter et réparer le disque à la place.
Comment localiser le fichier .vhdx et le chemin d’accès au disque pour votre distribution Linux
Pour localiser le fichier .vhdx et le chemin d’accès au répertoire d’une distribution Linux, ouvrez PowerShell et utilisez le script suivant, en remplaçant <distribution-name>
par le nom de distribution réel :
(Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq '<distribution-name>' }).GetValue("BasePath") + "\ext4.vhdx"
Le résultat affichera un chemin d’accès qui ressemble à quelque chose comme %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx
. Par exemple:
C:\Users\User\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
Il s’agit du chemin d’accès au ext4.vhdx
fichier associé à la distribution Linux que vous avez répertoriée.
Windows Subsystem for Linux