Programming

[WSL2] 디스크 용량 늘리기

반응형

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