WSL2 디스크 압축때마다 찾아다니지 않기 위해 기록용으로 작성하는 포스트 입니다.
WSL은 윈도우에서 리눅스를 사용할 수 있다는 점에서 간편하지만 리소스를 많이 잡아먹는다는 문제가 있는데요. 특히 한번 디스크가 할당되면 WSL 가상 머신 내에서 파일을 지워도 윈도우로 용량이 돌아오지 않는다는 문제가 있습니다.
이 경우 수동으로 가상 머신의 디스크를 압축해주어야 합니다.
현재 프로세스 종료
파워쉘에서 작업 기준
- 현재 구동중인 가상 머신 확인
1
$ wsl -l -v
- 압축할 가상 머신 종료
1
$ wsl -t <NAME>
가상 머신과 연결된 프로그램이 실행되고 있으면 안됩니다. (VS Code 등)
파워쉘에서 작업 기준
diskpart
실행1
diskpart
- vdisk 선택
1
select vdisk file="<VDISK_FILE_PATH>"
vdisk 경로를 모르는 경우 다음과 같이 조회 가능
1 (Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq '<NAME>' }).GetValue("BasePath") + "\ext4.vhdx"
<NAME>
에 앞서wsl -l -v
로 조회한 NAME 입력
- 가상 디스크를 읽기 전용으로 연결
1
attach vdisk readonly
- 디스크 압축
1
compact vdisk
- 가상디스크 분리
1
detach vdisk
- diskpart 종료
1
exit
This post is licensed under CC BY 4.0 by the author.