180bpm
[WSL2] wsl의 가상 디스크 (.vhdx) 용량 최적화 본문
이전글에서 이어지는 내용
https://180bpm.tistory.com/226
WSL2 환경에서 폴더가 지워지지 않는 문제
WSL2 Ubuntu에서 특정 폴더를 rm -rf로 지웠는데 1초 만에 다시 생기거나, "Directory not empty"라며 삭제가 거부되는 현상을 해결한 실전 기록입니다. 1. 증상: 좀비처럼 되살아나는 폴더 상황: 특정 폴더
180bpm.tistory.com
작업에 비해 용량이 너무 커서 뭐가 문제인가 하고 찾아봤다.
1. 전체 사용량 확인
`df -h /` 로 사용량 확인
vhdx는 256gb인데 df에선 200gb 정도로 나왔다.
이건 나중에 diskpart로 해결 되었다.
2. 폴더 별 정보
`sudo du -ah /home | sort -rh | head -n 10`
누가 많이 먹는지 확인
pip 캐시와 docker의 이미지등이 주범이었다.
우선 둘다 필요 없으니 강제 삭제
rm -rf ~/.cache/pip
rm -rf ~/.cache/*
sudo docker system prune -a --volumes -f
3. wsl --manage --set-sparse true ?
검색해보니 `sparse` 기능을 이용하면 동적으로 가변한다고 하길래 적용해봤는데 동작하지 않았음.
zero fill을 해야 한다고 해서 봤는데 한도끝도 없이 올라가고, 회수도 되지 않았음.
그래서 diskpart로 강제로 회수 함
# 1. WSL 종료 후 Sparse 일시 해제 (DiskPart 충돌 방지)
wsl --shutdown
wsl --manage Ubuntu-22.04 --set-sparse false
# 2. DiskPart 실행 (관리자 권한)
diskpart
select vdisk file="C:\Users\유저\AppData\Local\Packages\...\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
250gb에서 회수되지 못한 50gb와 삭제해서 생긴 100gb까지 처리되서 총 용량 100gb로 실사용량과 일치하게 됨
Docker Desktop Data도 회수해서 80gb에서 10gb로 줄임
정리 후 `wsl --manage --set-sparse true`를 다시 적용해 뒀음. 효과가 있을진 두고 봐야 함.