Perluas ukuran Hard Disk Virtual WSL 2 Anda

WSL 2 menggunakan Virtual Hard Disk (VHD) untuk menyimpan file Linux Anda. Di WSL 2, VHD diwakili pada hard drive Windows Anda sebagai file .vhdx.

WSL 2 VHD menggunakan sistem file ext4. VHD ini secara otomatis mengubah ukuran untuk memenuhi kebutuhan penyimpanan Anda dan memiliki ukuran maksimum awal 256GB. Jika ruang penyimpanan yang diperlukan oleh file Linux Anda melebihi ukuran ini, Anda mungkin perlu memperluasnya. Jika ukuran distribusi Anda bertambah menjadi lebih besar dari 256 GB, Anda akan melihat kesalahan yang menyatakan bahwa Anda kehabisan ruang disk. Anda dapat memperbaiki kesalahan ini dengan memperluas ukuran VHD.

Untuk memperluas ukuran VHD maksimum Anda melebihi 256GB:

  1. Hentikan semua instans WSL menggunakan perintah : wsl --shutdown

  2. Untuk menemukan nama paket penginstalan distribusi Anda ('PackageFamilyName'):

    • Menggunakan PowerShell (di mana 'distro' adalah nama distribusi Anda) masukkan perintah:
    • Get-AppxPackage -Name "*<distro>*" | Select PackageFamilyName
    • Misalnya: Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName

    Get-AppxPackage command line screenshot

  3. Gunakan yang dihasilkan PackageFamilyName untuk menemukan file fullpath VHD yang digunakan oleh penginstalan WSL 2 Anda, ini akan menjadi Anda pathToVHD. Untuk menemukan jalur lengkap:

    • Di menu Mulai Anda, masukkan: "%LOCALAPPDATA%" dan pilih untuk membuka folder file %LOCALAPPDATA%.
    • Selanjutnya, buka folder "Paket" dan cari PackageFamilyName distribusi Anda. Buka folder itu (yaitu. CanonicalGroupLimited.Ubuntu20.04onWindows_79xxxxx).
    • PackageFamilyName Di dalam folder , buka folder "LocalState" dan temukan <disk>.vhdx file .
    • Salin jalur ke file tersebut, akan terlihat seperti: %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx
    • Misalnya, <pathToVHD> untuk Ubuntu 20.04 akan terlihat seperti: %LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79xxxx\LocalState\ext4.vhdx.
  4. Mengubah ukuran WSL 2 VHD Anda dengan menyelesaikan perintah berikut:

    • Buka perintah Windows dengan hak istimewa admin dan masukkan:

      diskpart
      
      DISKPART> Select vdisk file="<pathToVHD>"
      
      DISKPART> detail vdisk
      
    • Periksa output perintah detail . Output akan mencakup nilai untuk Ukuran virtual. Ini adalah maksimum saat ini. Konversikan nilai ini menjadi megabyte. Misalnya, jika output detail menunjukkan Ukuran virtual: 256 GB, konversikan ini menjadi 256000.

    • Nilai baru yang Anda masukkan harus lebih besar dari nilai asli ini. Sebagai contoh, untuk menggandakan ukuran virtual yang tercantum di atas, Anda dapat memasukkan nilai: 512000. Setelah Anda menentukan nomor yang ingin Anda tetapkan untuk ukuran baru Anda (dalam megabyte), masukkan perintah berikut di perintah diskpart perintah Windows Anda:

      DISKPART> expand vdisk maximum=<sizeInMegaBytes>
      
    • Keluar dari diskpart

      DISKPART> exit
      
  5. Luncurkan distribusi WSL Anda (Ubuntu, misalnya) dan pastikan itu berjalan di WSL 2 (WSL 1 tidak didukung). Anda dapat mengonfirmasi ini menggunakan perintah: wsl.exe -l -v.

  6. Buat WSL menyadari bahwa WSL dapat memperluas ukuran sistem filenya dengan menjalankan perintah ini dari baris perintah distribusi WSL Anda.

       sudo mount -t devtmpfs none /dev
       mount | grep ext4
    
    • Anda mungkin melihat pesan ini sebagai respons terhadap perintah pemasangan pertama: "/dev: none already mounted on /dev." Pesan ini dapat diabaikan dengan aman.
    • Salin nama entri ini, yang akan terlihat seperti: /dev/sdX (dengan X yang mewakili karakter lain). Dalam contoh berikut, nilai X adalah b:
       sudo resize2fs /dev/sdb <sizeInMegabytes>M
    
    • Dengan menggunakan contoh dari atas, kami mengubah ukuran vhd menjadi 512000, sehingga perintahnya adalah: sudo resize2fs /dev/sdb 512000M.

    Catatan

    Anda mungkin perlu menginstal resize2fs. Jika demikian, Anda dapat menggunakan perintah ini untuk menginstalnya: sudo apt install resize2fs.

    Output akan terlihat serupa seperti berikut:

       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.
    

Penting

Kami menyarankan agar Anda tidak memodifikasi, memindahkan, atau mengakses file terkait WSL yang terletak di dalam folder AppData Anda menggunakan alat atau editor Windows. Melakukannya dapat menyebabkan distribusi Linux Anda menjadi rusak. Jika Anda ingin mengakses file Linux Anda dari Windows, itu dimungkinkan melalui jalur \\wsl$\<distroName>\. Buka distribusi WSL Anda dan masukkan explorer.exe . untuk melihat folder tersebut. Untuk mempelajari lebih lanjut, lihat posting blog: Mengakses file Linux dari Windows.