WSL(Windows Subsystem for linux)은 내가 무척 오랫동안 상상만 해오던 것을 조금씩 현실로 실현시켜주고 있다.
Windows에서 가상머신을 별도로 실행시키지 않고도 Linux를 사용할 수 있게 해준 것이 WSL Version 1이다.
하지만 WSL version 1에서는 단순히 리눅스의 바이너리 명령어가 실행되는 정도의 수준이었다면 WSL version 2에서는 커널 레벨 수준까지 리눅스 운영체제가 그대로 실행되도록 구현하였다 놀라운 소식을 든게 되었다. 게다가 2021년 10월달에 릴리즈 되는 Windows 11에서는 XWindow까지 바로 실행시킬 수 있다고 하니 그 날이 더 기다려진다.
어쨌든… wsl2는 IT 분야에서 일하는 개발자, 엔지니어에게는 매우 유용한 도구임에 틀림 없다.
오늘은 WSL2의 기본 경로에 설치된 리눅스를 내가 원하는 별도의 디스크로 이동 시키는 방법을 포스팅한다.
WSL 2의 리눅스 기본 설치 경로
wsl2를 설치하였다면 Windows 의 Microsoft Store에서 자기가 원하는 리눅스를 설치할 수 있다. 만약 Kali Linux를 설치하였다면 다음과 비슷하게 경로가 생성되고 이전 버전과는 달리 VHDX 파일에 설치되어 있는 것을 확인할 수 있다.
C:\Users\taeho\AppData\Local\Packages\ KaliLinux.54290C8133FEE_ey8k8hqnwqnmg \LocalState\ext4.vhdx |
위의 디렉토리에 가면 VHDX 파일이 보인다. 이 파일이 바로 리눅스가 설치된 가상 DISK다. 이전의 WSL version 1에서는 가상DISK가 아닌 Windows의 파일시스템의 특정 경로를 최상위 루트(/)디렉토리로 마운트해 리눅스의 파일들이 Windows 탐색기에서도 보였었다.
WSL 2의 VHDX 파일 이동시키기
이 VHDX 파일을 그냥 다른 경로로 이동시킨다고 되는 것은 아니다. 파일을 옮기면서 부수적으로 따라줘야하는 설정들이 있는데 그 작업을 자동으로 해주는 스크립트를 배포하는 용자~들이 있다.

move-msl 이라는 스크립트다. 이 소스를 받아 원하는 폴더에 압축을 풀어 놓으면 준비는 완료된다.
먼저 wsl에 설치된 리눅스 운영체제와 wsl의 버전을 확인한다.

위와 같이 “wsl -l -v” 명령을 실행하면 설치되어 있는 리눅스와 구동 상태 그리고 wsl 이미지의 버전이 표시된다. 반드시 VERSION이 2 이어야 한다. 그리고 그 아래에는 move-wsl의 압축을 풀어놓은 모습이다.
move-wsl 은 파워쉘로 만든 스크립트, 도스 배치파일로 만든 스크립트 그리고 bash의 쉘스크립트로 만든 버전이 존재한다. 이 포스트에서는 도스창에서 bat 파일을 실행시키는 방법을 사용한다.

move-wsl.bat에 위 화면과 같이 이동시키고자 하는 리눅스의 이름(NAME)과 이동시킬 경로를 지정해준다. 위에서는 E:\wsl2를 지정했다. 이 wsl2 폴더는 없는 상태에서 실행해도 된다. 자동으로 생성한다.
위 화면처럼 정상적으로 수행되면 VHDX가 두번째에 지정한 경로.. 위 화면에서 E:\wsl2 폴더 아래에 이동되어 있는 것을 알 수 있다.

그리고 나서 wsl2를 실행해 보면 다음과 같이 root 계정으로 로그인된 것을 알 수 있다.

만약 root 접속하는 것이 문제 없다면 모르겠지만 일반계정으로 로그인하고자 한다면 다음과 같이 /etc/wsl.conf 파일을 만들고 계정의 기본설정에 taeho를 넣어주고 WSL의 리눅스를 셧다운하고 재실행하면 된다.

그리고 나서 wsl의 리눅스를 실행하면 root 프롬프트가 일반 계정 프롬프트($)로 변경되어 접속됨을 알 수 있다.
#wsl2 #vhdx이동