WSL2 기반으로 Docker를 사용하고 있는데....
어느 순간 쓰기 에러가 발생하고 있다.
WLS2는 VHD를 사용하여 리눅스 환경을 구성하는데, 초기 최대 크기가 256GB이다.
확인해보니 이미 240GB를 차지하고 있었다.
이 오류는 VHD 크기를 확장하면 해결된다.
1. WSL 인스턴스 종료
wsl --shutdown
파워쉘을 열어서 위의 명령어를 사용하여 WSL 인스턴스를 종료한다.
2. VHD 위치 찾기
WSL2 기반의 도커를 사용할 경우, 도커 볼륨을 확인하면 VHD 위치를 확인할 수 있다.
VHD 위치를 알고 있다면 이 단계를 넘어가도 된다.
WSL2 가 설치된 VHD를 찾을 경우, 일단 배포 설치 패키지 이름을 찾는다.
Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName
우분투를 설치하였기 때문에 위와 같이 입력하였다.
다른 리눅스 배포판을 설치하였을 경우 Ubuntu 대신 설치된 리눅스 배포판을 사용한다.
출력된 PackageFamilyName을 사용하여 VHD 파일의 fullpath를 찾는다.
먼저 탐색기에서 "%LOCALAPPDATA%" 입력하면 >>AppData>Local 폴더가 열린다.
하위의 "Packages" 폴더를 열고 위에서 찾은 PackageFamilyName으로 폴더를 찾은 뒤
하위의 "LocalStat" 폴더를 열면 ext4.vhdx 파일을 찾을 수 있다.
3. VHD 크기 조정
관리자 권한으로 Windows 명령 프롬프트를 열고 다음을 입력한다.
diskpart
DISKPART> select vdisk file="vhd path"
DISKPART> detail vdisk
detail 명령의 출력을 통해 가상 크기를 확인한다.
초기 상태라면 256GB가 표시될 것이다.
원래 값보다 큰 값으로 재 설정하는데, 새 크기를 입력할 때는 MB로 입력해야 한다.
따라서 1TB를 입력할 경우 1024000을 입력한다.
DISKPART> expand vdisk maximum=1024000
DISKPART> exit
4. WSL2 시작
Ubuntu 같은 WSL 앱을 실행하면 WLS2가 자동으로 실행된다.
도커를 사용할 경우, 도커를 재시작 하면 된다.
'Programming' 카테고리의 다른 글
[git] push 나눠서 하기 (0) | 2021.11.29 |
---|---|
[git] http.postBuffer 관련 오류 (0) | 2021.11.29 |
[git] 오류 관련 처리 2 (0) | 2021.11.16 |
[python] 엑셀 파일을 JSON으로 변환하기 (0) | 2021.10.01 |
[git] Filename too long 에러 관련 (0) | 2021.09.22 |