ext4.vhdx는 리눅스의 저장소 전체를 담은 가상 디스크 파일입니다. 안에서 파일을 지우면 리눅스 입장에서는 빈 공간이 생기지만, 그 자리는 여전히 vhdx 파일 안에 할당된 채로 남습니다.
윈도우는 그 안을 못 봅니다. 밖에서 볼 수 있는 건 파일 크기 하나뿐이고, 그 값은 안 줄어듭니다.
1. 먼저 리눅스 안에서 필요 없는 걸 지웁니다. (예: docker system prune, apt clean, 캐시 삭제)
2. 윈도우 검색창에 "PowerShell"을 치고 마우스 오른쪽 → "관리자 권한으로 실행".
3. wsl --shutdown (WSL을 완전히 끕니다. 켜져 있으면 다음 단계가 실패합니다)
4. Optimize-VHD -Path "C:\Users\이름\AppData\Local\Packages\...\ext4.vhdx" -Mode Full
경로는 배포판마다 다릅니다. Packages 폴더 안에서 배포판 이름이 들어간 폴더를 찾으면 그 안에 있습니다.
Hyper-V 관리 도구에 들어 있는 명령입니다. Windows 기능 켜기/끄기에서 "Hyper-V → Hyper-V 관리 도구 → Hyper-V 모듈(Windows PowerShell용)"을 켜면 쓸 수 있습니다.
Home 에디션이면 이 방법 대신 diskpart의 compact vdisk를 씁니다.
Store에서 설치한 배포판은 %LOCALAPPDATA%\Packages\ 아래에 배포판 이름이 들어간 폴더가 있고, 그 안 LocalState 폴더에 ext4.vhdx가 있습니다.
wsl --list --verbose 로 배포판 이름을 먼저 확인하면 폴더를 찾기 쉽습니다.
Docker Desktop이 만든 것은 %LOCALAPPDATA%\Docker\wsl\ 아래에 따로 있습니다. 둘 다 쓰신다면 두 파일을 각각 줄여야 합니다.
sudo apt clean — 받아둔 패키지 파일입니다. 다시 받을 수 있습니다.
~/.cache 아래 — pip·npm·huggingface 캐시가 여기 쌓입니다. AI 작업을 하셨다면 모델 캐시만 수십 GB인 경우가 있습니다.
리눅스 안에서 Docker를 쓰신다면 docker system prune -a 도 같이.
지운 다음 df -h 로 리눅스 안의 여유 공간을 확인하세요. 여기서 빈 만큼이 다음 단계에서 줄일 수 있는 최대치입니다.
그 리눅스 환경이 통째로 사라집니다. 안에 설치한 것, 만든 것 전부입니다. 되돌릴 방법이 없습니다.
안에서 지운 만큼입니다. 리눅스 안에서 아무것도 안 지우고 Optimize-VHD만 돌리면 거의 안 줄어듭니다.
테라클린은 이 글에 나온 것들을 실제로 재서, 지워도 되는 것만 이유와 함께 보여줍니다. 파일은 기기를 떠나지 않고, 무료입니다.
무료로 받기