WSL2 ext4.vhdx 용량 관리, 자동 확장과 실제 디스크 부족을 구분하는 법

Windows PC에서 WSL2 가상 디스크와 Linux 파일 저장 공간을 점검하는 현실적인 작업 장면

컴퓨팅 · 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 저장 공간 설정의 시스템 > 저장소 호스트 디스크 자체가 부족한지 봐요.

진단 순서

  1. PowerShell에서 wsl -l -v를 실행해 문제가 난 배포판의 이름과 VERSION을 확인해요. WSL 1이면 WSL2 VHD 관리 절차를 그대로 적용하면 안 됩니다.[3]
  2. 해당 배포판에서 df -h /du -xh --max-depth=1 ~를 실행해 큰 디렉터리를 찾습니다. 캐시·로그·컨테이너 데이터처럼 다시 만들 수 있는 것과 작업 파일을 구분해요.
  3. Windows에서 %LOCALAPPDATA%\Packages 아래의 배포판 저장 위치를 임의로 지우지 않아요. ext4.vhdx는 배포판 전체 파일 시스템이므로 파일 하나를 직접 삭제하면 복구가 아니라 배포판 손실로 이어질 수 있어요.
  4. 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 오류 점검법에서 이어서 확인할 수 있어요.

Sources

  1. [1] How to manage WSL disk space
  2. [2] Advanced settings configuration in WSL
  3. [3] Basic commands for WSL

함께 읽을 글