Cara mengelola ruang disk WSL
Panduan ini mencakup cara mengelola ruang disk yang digunakan oleh distribusi Linux yang diinstal menggunakan WSL 2, termasuk:
- Cara memeriksa jumlah ruang disk yang tersedia di VHD
- Cara memperluas ukuran VHD
- Cara memperbaiki VHD jika terjadi kesalahan
- Cara menemukan file .vhdx dan jalur disk untuk distribusi Linux yang diinstal
Subsistem Windows untuk Linux (WSL 2) menggunakan platform virtualisasi untuk menginstal distribusi Linux bersama sistem operasi Windows host, membuat Virtual Hard Disk (VHD) untuk menyimpan file untuk setiap distribusi Linux yang Anda instal. VHD ini menggunakan jenis sistem file ext4 dan diwakili pada hard drive Windows Anda sebagai file ext4.vhdx .
WSL 2 secara otomatis mengubah ukuran file VHD ini untuk memenuhi kebutuhan penyimpanan. Secara default setiap file VHD yang digunakan oleh WSL 2 awalnya dialokasikan jumlah maksimum ruang disk 1 TB (sebelum rilis WSL 0.58.0 default ini diatur ke maks 512GB dan maks 256GB sebelum itu).
Jika ruang penyimpanan yang diperlukan oleh file Linux Anda melebihi ukuran maksimum ini, Anda akan melihat kesalahan yang menyatakan bahwa Anda telah kehabisan ruang disk. Untuk memperbaiki kesalahan ini, ikuti panduan di bawah ini tentang Cara memperluas ukuran Hard Disk Virtual WSL 2 Anda.
Cara memeriksa ruang disk yang tersedia
Periksa jumlah ruang disk yang tersedia di VHD untuk distribusi Linux yang diinstal dengan WSL 2 dengan menggunakan perintah Linux Df
.
Untuk memeriksa ruang disk yang tersedia, buka baris perintah PowerShell dan masukkan perintah ini (ganti <distribution-name>
dengan nama distribusi aktual):
wsl.exe --system -d <distribution-name> df -h /mnt/wslg/distro
Jika perintah ini tidak berfungsi untuk Anda, silakan tingkatkan ke versi Store WSL menggunakan wsl --update
perintah , atau coba wsl df -h /
.
Output akan mencakup:
- Sistem file: Pengidentifikasi untuk sistem file VHD
- Ukuran: Ukuran total disk (jumlah maksimum ruang yang dialokasikan untuk VHD)
- Digunakan: Jumlah ruang yang saat ini digunakan dalam VHD
- Tersedia: Jumlah ruang yang tersisa dalam VHD (Ukuran yang dialokasikan minus jumlah yang digunakan)
- Gunakan%: Persentase ruang disk yang tersisa (Ukuran yang Digunakan/Dialokasikan)
- Dipasang pada: Jalur direktori tempat disk dipasang
Jika Anda melihat bahwa Anda hampir mencapai jumlah ruang disk yang tersedia yang dialokasikan untuk VHD Anda, atau telah menerima kesalahan karena tidak ada ruang disk yang tersisa, lihat bagian berikutnya untuk langkah-langkah tentang cara memperluas jumlah maksimum ruang disk yang dialokasikan ke VHD yang terkait dengan distribusi Linux Anda. Jumlah ruang disk yang dialokasikan untuk VHD Anda oleh WSL akan selalu menunjukkan jumlah maksimum default (1TB dalam versi terbaru WSL), bahkan jika jumlah ruang disk pada perangkat Windows Anda yang sebenarnya kurang dari itu. WSL memasang VHD yang akan memperluas ukuran saat Anda menggunakannya, sehingga distribusi Linux Anda melihat bahwa itu dapat tumbuh ke ukuran maksimum 1TB yang dialokasikan.
Cara memperluas ukuran Hard Disk Virtual WSL 2 Anda
Untuk memperluas ukuran VHD untuk distribusi Linux di luar jumlah maksimum ruang disk yang dialokasikan 1TB default, ikuti langkah-langkah di bawah ini. (Untuk rilis WSL sebelumnya yang belum diperbarui, default maks ini dapat diatur ke 512GB atau 256GB).
Hentikan semua instans WSL menggunakan perintah :
wsl.exe --shutdown
Salin jalur direktori ke file ext4.vhdx yang terkait dengan distribusi Linux yang diinstal pada komputer Anda. Untuk bantuan, lihat Cara menemukan file vhdx dan jalur disk untuk distribusi Linux Anda.
Buka Prompt Perintah Windows dengan hak istimewa admin lalu buka penerjemah perintah diskpart dengan memasukkan:
diskpart
Anda sekarang akan memiliki
DISKPART>
permintaan. Masukkan perintah berikut, ganti<pathToVHD>
dengan jalur direktori ke file yangext4.vhdx
terkait dengan distribusi Linux (disalin di langkah #2).Select vdisk file="<pathToVHD>"
Tampilkan detail yang terkait dengan disk virtual ini, termasuk ukuran Virtual, yang mewakili ukuran maksimum VHD saat ini dialokasikan:
detail vdisk
Anda perlu mengonversi Ukuran virtual menjadi megabyte. Misalnya, jika Ukuran virtual: 512 GB, ini sama dengan 512000 MB. Nilai baru yang Anda masukkan harus lebih besar dari nilai asli ini. Untuk menggandakan ukuran virtual 512 GB hingga 1024 GB, Anda akan memasukkan nilai dalam MB sebagai: 1024000. Berhati-hatilah untuk tidak memasukkan nilai yang lebih tinggi dari yang Anda inginkan karena proses mengurangi ukuran disk virtual jauh lebih rumit.
Masukkan nilai untuk ukuran maksimum baru yang ingin Anda alokasikan ke distribusi Linux ini menggunakan prompt Perintah
DISKPART>
Windows:expand vdisk maximum=<sizeInMegaBytes>
Keluar dari
DISKPART>
perintah:exit
Luncurkan distribusi Linux ini. (Pastikan berjalan di WSL 2. Anda dapat mengonfirmasi ini menggunakan perintah:
wsl.exe -l -v
. WSL 1 tidak didukung).Buat WSL sadar bahwa WSL dapat memperluas ukuran sistem file untuk distribusi ini dengan menjalankan perintah ini dari baris perintah distribusi WSL Anda. Anda mungkin melihat pesan ini sebagai respons terhadap perintah pemasangan pertama: "/dev: tidak ada yang sudah dipasang pada /dev." Pesan ini dapat diabaikan dengan aman.
sudo mount -t devtmpfs none /dev mount | grep ext4
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 2048000, sehingga perintahnya adalah: sudo resize2fs /dev/sdb 2048000M
.
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.
Drive virtual (ext4.vhdx) untuk distribusi Linux ini sekarang telah berhasil diperluas ke ukuran baru.
Penting
Kami menyarankan agar Anda tidak mengubah, memindahkan, atau mengakses file terkait WSL yang terletak di dalam folder Anda AppData
menggunakan alat atau editor Windows. Melakukannya dapat menyebabkan distribusi Linux Anda rusak. Jika Anda ingin mengakses file Linux Anda dari Windows, itu dimungkinkan melalui jalur \\wsl$\<distribution-name>\
. Buka distribusi WSL Anda dan masukkan explorer.exe .
untuk melihat folder tersebut. Untuk mempelajari lebih lanjut, lihat posting blog: Mengakses file Linux dari Windows.
Cara memperbaiki kesalahan pemasangan VHD
Jika Anda mengalami kesalahan yang terkait dengan "memasang disk distribusi", ini bisa disebabkan oleh pemadaman mendadak atau pemadaman listrik dan dapat mengakibatkan VHD distribusi Linux dialihkan ke baca-saja untuk menghindari kehilangan data. Anda dapat memperbaiki dan memulihkan distribusi menggunakan e2fsck
perintah Linux dengan mengikuti langkah-langkah di bawah ini.
Gunakan perintah lsblk untuk mengidentifikasi nama perangkat blok
Ketika WSL 2 menginstal distribusi Linux, WSL 2 memasang distribusi sebagai Virtual Hard Disk (VHD) dengan sistem filenya sendiri. Linux mengacu pada hard drive ini sebagai "perangkat blokir" dan Anda dapat melihat informasi tentang perangkat tersebut dengan menggunakan lsblk
perintah .
Untuk menemukan nama perangkat blok yang saat ini digunakan oleh WSL 2, buka distribusi Anda dan masukkan perintah: lsblk
. (Atau buka PowerShell dan masukkan perintah: wsl.exe lsblk
.) Output akan terlihat seperti ini:
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
Informasi tentang perangkat blok meliputi:
- NAMA: Nama yang ditetapkan ke perangkat akan sd[a-z], mengacu pada Disk SCSI dengan penugasan huruf untuk setiap disk yang digunakan.
sda
selalu distribusi sistem. - MAJ:MIN: Mewakili angka yang digunakan oleh kernel Linux untuk mengidentifikasi perangkat secara internal dengan angka pertama yang mewakili jenis perangkat (8 digunakan untuk Antarmuka Sistem Komputer Kecil/disk SCSI).
- RM: Beri tahu kami apakah perangkat dapat dilepas (1) atau tidak (0).
- UKURAN: Ukuran total volume.
- RO: Mari kita ketahui apakah perangkat bersifat baca-saja (1) atau tidak (0).
- TYPE: Mengacu pada jenis perangkat (disk dalam hal ini).
- MOUNTPOINTS: Mengacu pada direktori saat ini pada sistem file tempat perangkat blok berada (SWAP adalah untuk memori tidak aktif yang telah dikonfigurasi sebelumnya sehingga tidak ada titik pemasangan).
Kesalahan fallback baca-saja
Jika WSL mengalami "kesalahan pemasangan" saat membuka distribusi Linux, distribusi dapat diatur sebagai baca-saja sebagai fallback. Jika itu terjadi, distribusi dapat menampilkan kesalahan berikut selama startup:
An error occurred mounting the distribution disk, it was mounted read-only as a fallback.
Ketika distribusi dimulai sebagai baca-saja, setiap upaya untuk menulis ke sistem file akan gagal dengan kesalahan seperti ini:
$ touch file
touch: cannot touch 'file': Read-only file system
Untuk memperbaiki kesalahan pemasangan disk di WSL, dan memulihkannya kembali ke status yang dapat digunakan/ dapat ditulis lagi, Anda dapat menggunakan wsl.exe --mount
perintah untuk memasang ulang disk dengan langkah-langkah berikut:
Matikan semua distribusi WSL dengan membuka PowerShell dan masukkan perintah:
wsl.exe --shutdown
Buka PowerShell sebagai administrator (dalam prompt perintah yang ditinggikan) dan masukkan perintah mount, ganti
<path-to-ext4.vhdx>
dengan jalur ke file .vhdx distribusi. Untuk bantuan menemukan file ini, lihat Cara menemukan file VHD dan jalur disk untuk distribusi Linux Anda.wsl.exe --mount <path-to-ext4.vhdx> --vhd --bare
wsl.exe lsblk
Gunakan perintah dari PowerShell untuk mengidentifikasi nama perangkat blok untuk distribusi (sd[a-z]) lalu masukkan perintah berikut untuk memperbaiki disk (mengganti<device>
dengan nama perangkat blok yang benar, seperti "sdc").e2fsck
Perintah memeriksa sistem file ext4 (jenis yang digunakan oleh distribusi yang diinstal dengan WSL) untuk kesalahan dan memperbaikinya.wsl.exe sudo e2fsck -f /dev/<device>
Catatan
Jika Anda hanya memiliki satu distribusi Linux yang terinstal, Anda mungkin mengalami kesalahan "file ext sedang digunakan" dan perlu menginstal distribusi tambahan untuk menjalankan wsl.exe lsblk
. Anda dapat menghapus instalasi distribusi setelah perbaikan selesai.
Setelah perbaikan selesai, lepaskan disk di PowerShell dengan memasukkan:
wsl.exe --unmount
Peringatan
Anda dapat menggunakan perintah : sudo mount -o remount,rw /
untuk mengembalikan distribusi baca-saja ke status yang dapat digunakan/dapat ditulis, tetapi semua perubahan akan berada dalam memori sehingga akan hilang saat distribusi dimulai ulang. Sebaiknya gunakan langkah-langkah yang tercantum di atas untuk memasang dan memperbaiki disk sebagai gantinya.
Cara menemukan file .vhdx dan jalur disk untuk distribusi Linux Anda
Untuk menemukan file .vhdx dan jalur direktori untuk distribusi Linux, buka PowerShell dan gunakan skrip berikut, ganti <distribution-name>
dengan nama distribusi aktual:
(Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq '<distribution-name>' }).GetValue("BasePath") + "\ext4.vhdx"
Hasilnya akan menampilkan jalur yang terlihat seperti %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx
. Contohnya:
C:\Users\User\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
Ini adalah jalur ke file yang ext4.vhdx
terkait dengan distribusi Linux yang Anda cantumkan.
Windows Subsystem for Linux