WSL2 ext4.vhdx 용량 관리, 자동 확장과 실제 디스크 부족을 구분하는 법
컴퓨팅 · WSL2 관리
AI를 활용하여 생성한 이미지입니다.
WSL2에서 Linux 패키지를 많이 설치하거나 컨테이너 이미지를 쌓다 보면 Windows 저장 공간이 예상보다 빠르게 줄어들 수 있어요. 이때 ext4.vhdx 파일의 크기, Linux 내부의 여유 공간, Windows 전체의 남은 공간을 한꺼번에 보고 판단하면 잘못된 조치를 하기 쉽습니다.[1]
먼저 세 숫자를 분리해요
WSL2는 배포판의 Linux 파일을 ext4 파일 시스템으로 저장하고, Windows에서는 이를 ext4.vhdx 가상 하드 디스크로 보여줘요. 이 VHD는 필요한 만큼 커질 수 있지만, Linux 안의 파일을 지웠다고 Windows의 파일 크기가 같은 순간에 줄어드는 것은 아니에요.[1]
| 확인 대상 | 명령 또는 위치 | 판단 |
|---|---|---|
| 배포판 버전 | wsl -l -v |
WSL 2인지 먼저 확인해요.[3] |
| Linux 파일 시스템 | 배포판 안에서 df -h / |
내부 파일 시스템이 가득 찼는지 봐요.[1] |
| Windows 저장 공간 | 설정의 시스템 > 저장소 | 호스트 디스크 자체가 부족한지 봐요. |
진단 순서
- PowerShell에서
wsl -l -v를 실행해 문제가 난 배포판의 이름과 VERSION을 확인해요. WSL 1이면 WSL2 VHD 관리 절차를 그대로 적용하면 안 됩니다.[3] - 해당 배포판에서
df -h /와du -xh --max-depth=1 ~를 실행해 큰 디렉터리를 찾습니다. 캐시·로그·컨테이너 데이터처럼 다시 만들 수 있는 것과 작업 파일을 구분해요. - Windows에서
%LOCALAPPDATA%\Packages아래의 배포판 저장 위치를 임의로 지우지 않아요.ext4.vhdx는 배포판 전체 파일 시스템이므로 파일 하나를 직접 삭제하면 복구가 아니라 배포판 손실로 이어질 수 있어요. - Windows와 Linux 어느 쪽이 부족한지 기록한 뒤에 정리하거나 확장해요. 원인을 모른 채 VHD 최대 크기만 키우면 실제 SSD 여유 공간 문제를 해결하지 못합니다.
VHD가 부족할 때 확장하기
최근 WSL 릴리스에서는 wsl --manage로 배포판의 가상 디스크 크기를 조정할 수 있어요. Microsoft 문서가 안내하는 순서는 먼저 wsl.exe --shutdown으로 모든 WSL 인스턴스를 종료한 다음 wsl --manage <배포판> --resize <크기>를 실행하는 방식입니다. 이 기능은 WSL 2.5 이상에서 사용할 수 있어요.[1]
wsl --version
wsl --shutdown
wsl --manage Ubuntu --resize 256GB
배포판 이름은 내 환경의 wsl -l -v 결과로 바꿔야 해요. 소수 단위 크기는 지원되지 않으므로 256GB처럼 정수 단위를 사용합니다.[1] 확장 후에는 배포판에서 df -h /를 다시 실행해 실제 파일 시스템이 늘었는지 확인해요.
크기를 줄이는 작업은 더 보수적으로 해야 해요. Microsoft 문서도 가상 디스크의 최대 크기를 늘리는 절차와 달리 축소는 훨씬 복잡하다고 설명해요.[1] 백업 없이 DiskPart나 VHD 파일을 직접 조작하지 말고, 먼저 배포판을 내보내 복구 가능한 사본을 만든 뒤 공식 절차와 현재 WSL 버전의 지원 범위를 확인하는 편이 안전합니다.
설정 파일과 저장 공간 문제를 섞지 않기
.wslconfig는 모든 WSL2 배포판에 적용되는 VM 전역 설정이고, /etc/wsl.conf는 특정 배포판의 설정이에요. 메모리·CPU·커널 같은 VM 설정과 자동 마운트·systemd 같은 배포판 설정을 서로 다른 파일에 넣어야 합니다.[2]
설정 파일을 바꾼 뒤 터미널을 닫았는데도 즉시 반영되지 않을 수 있어요. Microsoft는 모든 배포판이 완전히 멈춘 뒤 다시 시작해야 하고, 보통 약 8초의 시간이 필요하다고 안내해요. 확인이 필요하면 wsl --list --running으로 실행 중인 배포판을 보고, 확실히 다시 시작할 때는 wsl --shutdown을 사용합니다.[2]
정리 후 재발을 막는 기준
- 대형 프로젝트와 컨테이너 데이터의 위치를 홈 디렉터리와 분리해 기록해요.
- 패키지 캐시를 지우기 전에 다시 설치해야 하는 시간과 네트워크 비용을 따져요.
- Windows 저장소에서 VHD가 차지하는 공간과 Linux
df결과를 함께 남겨요. - 배포판을 복사하거나 이전하기 전에는
wsl --export같은 백업 경로를 준비해요. - 용량 확장 뒤에도 Windows SSD의 실제 여유 공간이 충분한지 확인해요.
WSL2 저장 공간 문제는 ‘VHD를 줄이는 명령’부터 찾기보다 어느 층에서 공간이 부족한지 구분하는 일이 먼저예요. 그 다음에 정리, 백업, 확장 순서로 접근하면 데이터 손실 위험을 크게 줄일 수 있습니다. 관련 네트워크 설정은 WSL2 네트워크 모드, NAT와 mirrored를 나눠야 하는 이유와 VPN 오류 점검법에서 이어서 확인할 수 있어요.