Erweitern der Größe Ihrer virtuellen WSL 2-Festplatte (VHD)

WSL 2 verwendet eine virtuelle Festplatte (VHD) zum Speichern Ihrer Linux-Dateien. In WSL 2 wird eine VHD auf Ihrer Windows-Festplatte als .vhdx-Datei dargestellt.

Die WSL 2-VHD verwendet das Ext4-Dateisystem. Diese VHD wird automatisch an Ihre Speicheranforderungen angepasst, und verfügt über eine anfängliche maximale Größe von 256 GB. Wenn der von Ihren Linux-Dateien benötigte Speicherplatz diese Größe überschreitet, müssen Sie ihn eventuell erweitern. Wenn Ihre Verteilung über die Größe von 256 GB anwächst, werden Ihnen Fehler angezeigt, die besagen, dass kein Speicherplatz mehr zur Verfügung steht. Sie können diesen Fehler beheben, indem Sie die Größe der VHD heraufsetzen.

So erweitern Sie die maximale VHD-Größe auf über 256 GB:

  1. Beenden Sie alle WSL-Instanzen mit dem Befehl wsl --shutdown.

  2. Suchen Sie den Namen des Installationspakets Ihrer Verteilung (PackageFamilyName):

    • Geben Sie in PowerShell Folgendes ein (wobei „distro“ für den Namen Ihrer Verteilung steht):
    • Get-AppxPackage -Name "*<distro>*" | Select PackageFamilyName
    • Beispiel: Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName

    Screenshot der Get-AppxPackage-Befehlszeile

  3. Suchen Sie mithilfe des angezeigten PackageFamilyName die VHD-Datei fullpath, die von Ihrer WSL 2-Installation verwendet wird. Dies ist Ihr pathToVHD. So finden Sie den vollständigen Pfad:

    • Geben Sie im Startmenü „%LOCALAPPDATA%“ ein, und öffnen Sie den Dateiordner „%LOCALAPPDATA%“.
    • Als Nächstes öffnen Sie den Ordner „Packages“ und suchen nach dem PackageFamilyName Ihrer Verteilung. Öffnen Sie diesen Ordner (d. h. „CanonicalGroupLimited.Ubuntu20.04onWindows_79xxxxx“).
    • Öffnen Sie im Ordner PackageFamilyName den Ordner „LocalState“, und suchen Sie die Datei <disk>.vhdx.
    • Kopieren Sie den Pfad zu dieser Datei, der in etwa wie folgt aussehen sollte: %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx
    • Beispielsweise sollte <pathToVHD> für Ubuntu 20.04 Folgendem ähneln: %LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79xxxx\LocalState\ext4.vhdx
  4. Ändern Sie die Größe Ihrer WSL 2-VHD, indem Sie die folgenden Befehle ausführen:

    • Öffnen Sie die Windows-Eingabeaufforderung mit Administratorrechten, und geben Sie Folgendes ein:

      diskpart
      
      DISKPART> Select vdisk file="<pathToVHD>"
      
      DISKPART> detail vdisk
      
    • Prüfen Sie die Ausgabe des Befehls detail. Die Ausgabe enthält einen Wert für Virtuelle Größe. Dies ist der aktuelle Höchstwert. Konvertieren Sie diesen Wert in Megabytes. Wenn die Ausgabe von detail beispielsweise Virtuelle Größe: 256 GB anzeigt, konvertieren Sie diesen Wert in 256000.

    • Der neue Wert, den Sie eingeben, muss größer sein als dieser ursprüngliche Wert. Wenn Sie z. B. die oben aufgeführte virtuelle Größe verdoppeln möchten, können Sie den Wert 512000 eingeben. Nachdem Sie die gewünschte Zahl für die neue Größe (in Megabyte) festgelegt haben, geben Sie den folgenden Befehl an der Windows-Eingabeaufforderung für diskpart ein:

      DISKPART> expand vdisk maximum=<sizeInMegaBytes>
      
    • Beenden Sie diskpart.

      DISKPART> exit
      
  5. Starten Sie Ihre WSL-Verteilung (z. B. Ubuntu).

  6. Machen Sie WSL darauf aufmerksam, dass die Größe des Dateisystems durch Ausführen dieser Befehle über die Befehlszeile der WSL-Verteilung erweitert werden kann.

       sudo mount -t devtmpfs none /dev
       mount | grep ext4
    
    • Möglicherweise sehen Sie diese Meldung als Antwort auf den ersten mount-Befehl: „/dev: none already mounted on /dev“. Diese Meldung kann ignoriert werden.
    • Kopieren Sie den Namen dieses Eintrags, der diese Form hat: /dev/sdX (wobei X für ein beliebiges anderes Zeichen steht). Im folgenden Beispiel ist der Wert von X b:
       sudo resize2fs /dev/sdb <sizeInMegabytes>M
    
    • Mithilfe des obigen Beispiels haben wir die VHD-Größe in 512000 geändert. Daher lautet der Befehl sudo resize2fs /dev/sbd 512000M.

    Hinweis

    Möglicherweise müssen Sie auch resize2fs installieren. Wenn ja, können Sie diesen Befehl zur Installation verwenden: sudo apt install resize2fs.

    Die Ausgabe ist mit folgender Zeichenfolge vergleichbar:

       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.
    

Wichtig

Es wird empfohlen, die WSL-bezogenen Dateien, die sich in Ihrem AppData-Ordner befinden, nicht mithilfe von Windows-Tools oder-Editoren zu ändern, zu verschieben oder darauf zuzugreifen. Dies könnte zu einer Beschädigung Ihrer Linux-Verteilung führen. Wenn Sie von Windows aus auf Ihre Linux-Dateien zugreifen möchten, ist dies über den Pfad \\wsl$\<distroName>\ möglich. Öffnen Sie die WSL-Verteilung, und geben Sie explorer.exe . ein, um diesen Ordner anzuzeigen. Weitere Informationen finden Sie im Blogbeitrag Zugreifen auf Linux-Dateien von Windows aus.