Augmenter la taille de votre disque dur virtuel WSL 2

WSL 2 utilise un disque dur virtuel (VHD) pour stocker vos fichiers Linux. Dans WSL 2, un disque dur virtuel se présente sous la forme d’un fichier .vhdx sur votre disque dur Windows.

Le disque dur virtuel WSL 2 utilise le système de fichiers ext4. Ce disque dur virtuel est redimensionné automatiquement en fonction de vos besoins de stockage et a une taille maximale initiale de 256 Go. Si l’espace de stockage exigé par vos fichiers Linux dépasse cette taille, vous devrez peut-être l’étendre. Si la taille de votre distribution vient à dépasser 256 Go, vous verrez des erreurs indiquant que l’espace disque est insuffisant. Vous pouvez corriger cette erreur en augmentant la taille du disque dur virtuel.

Pour augmenter la taille maximale du disque dur virtuel au-delà de 256 Go :

  1. Arrêtez toutes les instances WSL à l’aide de la commande : wsl --shutdown

  2. Pour rechercher le nom du package d’installation de votre distribution ('PackageFamilyName') :

    • Dans PowerShell ('distro' étant le nom de votre distribution), entrez la commande :
    • Get-AppxPackage -Name "*<distro>*" | Select PackageFamilyName
    • Par exemple : Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName

    Capture d’écran de la ligne de commande Get-AppxPackage

  3. Utilisez le PackageFamilyName qui en résulte pour localiser le fichier VHD fullpath utilisé par votre installation WSL 2. Ce sera votre pathToVHD. Pour trouver le chemin complet :

    • Dans votre menu Démarrer, entrez : "%LOCALAPPDATA%" et sélectionnez pour ouvrir le dossier du fichier %LOCALAPPDATA%.
    • Ensuite, ouvrez le dossier « Packages » et recherchez le PackageFamilyName de votre distribution. Ouvrez ce dossier (par ex. CanonicalGroupLimited.Ubuntu20.04onWindows_79xxxxx).
    • Dans le dossier PackageFamilyName, ouvrez le dossier « LocalState » et recherchez le fichier <disk>.vhdx.
    • Copiez le chemin dans ce fichier, ce qui devrait ressembler à ceci : %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx
    • Par exemple, le <pathToVHD> pour Ubuntu 20.04 devrait ressembler à ceci : %LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79xxxx\LocalState\ext4.vhdx.
  4. Redimensionnez votre disque dur virtuel WSL 2 en exécutant les commandes suivantes :

    • Ouvrez l’invite de commandes Windows avec des privilèges d’administrateur et entrez :

      diskpart
      
      DISKPART> Select vdisk file="<pathToVHD>"
      
      DISKPART> detail vdisk
      
    • Examinez la sortie de la commande detail. La sortie inclut une valeur pour la taille virtuelle. Il s’agit de la valeur maximale actuelle. Convertissez cette valeur en mégaoctets. Par exemple, si la sortie detail indique Taille virtuelle : 256 Go, convertissez-la en 256000.

    • La nouvelle valeur que vous entrez doit être supérieure à cette valeur d’origine. Par exemple, pour doubler la taille virtuelle indiquée ci-dessus, vous pouvez entrer la valeur : 512000. Une fois que vous avez déterminé le nombre que vous souhaitez définir pour votre nouvelle taille (en mégaoctets), entrez la commande suivante dans votre invite de commandes Windows diskpart :

      DISKPART> expand vdisk maximum=<sizeInMegaBytes>
      
    • Quittez diskpart.

      DISKPART> exit
      
  5. Lancez votre distribution WSL (Ubuntu, par exemple).

  6. Indiquez à WSL qu’il peut augmenter la taille de son système de fichiers en exécutant les commandes suivantes à partir de votre ligne de commande de distribution WSL.

       sudo mount -t devtmpfs none /dev
       mount | grep ext4
    
    • Vous pouvez voir ce message en réponse à la première commande mount : "/dev: none already mounted on /dev." Vous pouvez ignorer ce message.
    • Copiez le nom de cette entrée, qui ressemble à ceci : /dev/sdX (X représentant tout autre caractère). Dans l’exemple suivant, la valeur de X est b :
       sudo resize2fs /dev/sdb <sizeInMegabytes>M
    
    • En utilisant l’exemple ci-dessus, nous avons remplacé la taille du disque dur virtuel par 512000, donc la commande serait : sudo resize2fs /dev/sbd 512000M.

    Notes

    Vous devrez peut-être installer resize2fs. Dans ce 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.
    

Important

Nous vous recommandons de ne pas modifier, déplacer ni accéder aux fichiers associés à WSL, situés dans votre dossier AppData, à l’aide d’outils ou d’éditeurs Windows. Cela pourrait entraîner la corruption de votre distribution Linux. Si vous souhaitez accéder à vos fichiers Linux à partir de Windows, vous pouvez le faire via le chemin \\wsl$\<distroName>\. Ouvrez votre distribution WSL et entrez explorer.exe . pour afficher ce dossier. Pour en savoir plus, consultez le billet de blog : Accessing Linux files from Windows.