윈도우를 기준으로
하나의 피시에서 여러개의 서버를 구동시키기에는 Virtual Machine이 유용하다.
다만 VMware의 경우 내부적으로 가상 컴퓨터 장치를 구현하여 그안에 OS를 넣고 운영하는 방식으로
호스트 머신과 완전히 분리된 환경을 구축할 수 있어 유용하다.
하지만 반대로 하나의 피시를 기준으로 서버화를 할땐 WSL이 유용하다.
기존의 WSL1의 경우 윈도우 API로 치환함으로써 약간 유사 리눅스를 만들었다면
WSL2의 경우 리눅스 커널 그 자체를 구현했다.
그래서 WSL1이 유사 리눅스라고 했던 것과 달리 WSL2의 경우 리눅스라고 생각해도 무방하다.
사전 준비
먼저 용량을 확보하기 위해서는 리눅스 배포판의 설치 위치를 알아야 한다.
만약, 설치 당시 임의로 설치경로를 변경했다면 해당 경로로 진행하면 된다.
하지만, 어디에 설치했는지 모를 경우 기존 경로로
폴더 경로 : C:\Users\{유저명}\AppData\Local\Packages\<리눅스배포판이름>\LocalState
가장 베스트는 이곳에서 찾을 수 있으면 좋겠지만, 대체로 여기에 없거나 찾기 힘들 수도 있다.
이 경우에는 레지스토리를 통해 찾는 것을 권장한다.
레지스토리 경로 : HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss
위의 경로로 들어가게 되면 폴더들이 있다.
해당 폴더에 들어가면 BasePath를 통해 WSL2에 설치된 리눅스 배포판의 위치를 알 수 있다.
저장공간 늘리기 작업 시작
1. WSL 종료
가장 중요하다.
WSL을 종료하지 않고 진행하게 된다면 어떤 오류가 발생할지 장담이 안된다.
powershell을 통해 WSL을 종료해준다.
$ wsl --shutdown
2. 가상 디스크 수정작업
WSL 용량을 확장하기 위해서는 먼저 가상 디스크(ext4.vhdx)의 용량을 늘려야 한다.
우선 CMD을 관리자 권한으로 실행하고 diskpart를 실행한다.
$ diskpart
앞써 사전작업에서 찾아둔 ext4.vhdx경로를 갖고 있어야 한다.
호출된 diskpart를 통해 해당 경로를 저장한다.
DISKPART> Select vdisk file="ext4.vhdx경로를 입력한다."
# Select vdisk file="D:\wsl\ubuntu-20.04\ext4.vhdx"
저장이 잘 되었는지 확인하고 싶으면 호출해보면 된다.
DISKPART> detail vdisk
#장치 유형 ID: 0 (알 수 없음)
#공급업체 ID: {00000000-0000-0000-0000-000000000000} (알 수 없음)
#상태: 추가됨
#가상 크기: 256 GB
#물리적 크기: 184 GB
#파일 이름: D:\wsl\ubuntu-20.04\ext4.vhdx
#자식임: 아니요
#부모 파일 이름:
#연결된 디스크#: 찾을 수 없음.
호출했을 때 정상적으로 값이 나온다면 이제 용량 확장이 가능하다.
이때 중요한 것은 WSL을 무조건 꺼진 상태에서 진행해야 한다.
아래의 명령어를 통해 확장하되 단위는 메가바이트 단위이다.
예를 들어 500G를 원하면 500000으로 입력하면 된다.
저같은 경우 350GB로 100GB만 확장할 것이기 때문에 350000으로 입력할 것이다.
확장을 했다면 나가면 된다.
DISKPART> expand vdisk maximum=350000
DISKPART> exit
3. WSL 용량 수정
`가상 디스크(ext4.vhdx)의 용량이 늘어났다면 이제 WSL안의 리눅스 용량을 늘리면 된다.
이제 WSL을 실행시켜 경로를 파악한다.
저같은 경우 /dev/sdc로 뜨는데 대부분 /dev/sdb로 뜰 것이다.
그래도 혹시 모르시 체크해보고
아래와 같이 명령어를 입력해서 용량을 늘리면 된다.
단위도 메가바이트 단위로 diskpart와 동일하지만 뒤에 M이 붙는다.
용량은 가상디스크용량보다 작거나 같다.
# sudo resize2fs /dev/sdc <sizeofMB>M
$ sudo resize2fs /dev/sdc 350000M
시간이 좀 걸릴 수 있어서 중간에 멈추면 크랙이 날 수 있어 기다려주면 된다.
작업이 완료되면 아래와 같은 로그를 출력한다.
resize2fs 1.44.1 (24-Mar-2023)
Filesystem at /dev/sdc is mounted on /; on-line resizing required
old_desc_blocks = 32, new_desc_blocks = 38
The filesystem on /dev/sdb is now 88574321 (4k) blocks long.