WSL2 + Ubuntu 구성 (Windows)
윈도우에서 WSL2 기능을 활성화하여 Ubuntu 운영체제를 사용하는 방법을 살펴볼 것이다.
WSL이란?
WSL (Windows Subsystem for Linux)은 윈도우 환경에서 리눅스의 실행 파일 형식인 ELF64 바이너리를 실행할 수 있도록 하는 기술이다. 다시 말해 윈도우에서 리눅스를 사용할 수 있도록 만들어 주는 기술이다.
윈도우 상에서 여러 리눅스 배포판을 지원 (Ubuntu, Debian, Alphine, Fedora..)하기 때문에 아주 많은 사람들이 사용한다.
1. WSL 설치
WSL 기능을 사용하기 위해 Windows 기능 활성화를 진행해야 한다. Powershell을 실행하고 DISM 명령어를 통해 기능을 활성화를 진행한다. DISM은 Deployment Image Servicing and Management의 약자로 윈도우 이미지와 관련된 조작을 위한 커맨트라인 명령어이다.
Powershell을 관리자 권한을 실행한 후에 아래 명령어를 실행한다.
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 윈도우 서브시스템 기능을 활성화
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 가상머신 플랫폼 기능을 활성화
완료되면 재부팅을 한다. 재부팅 후에 powershell 에서 wsl 명령어를 실행해보면 정상적으로 작동하는 것을 확인할 수 있다.
wsl
2. Ubuntu 설치
WSL에서 사용하는 리눅스 배포판은 Microsoft Store에서 설치할 수 있다. Microsoft Store에서 Ubuntu를 검색한 후 원하는 버전을 선택하여 다운로드 받으면 된다.
여기서는 Ubuntu 20.04 LTS 버전을 다운 받겠다.
다운로드 완료 후 Ubuntu를 실행한다. 처음 실행 할 때는 세팅 때문에 몇 분 정도 걸릴 수 있다.
이제 우분투 운영체제에서 사용할 사용자명과 비밀번호를 입력한다.
입력하면 다음과 같이 우분투 shell이 정상적으로 작동하는 것을 볼 수 있다.
다시 powershell로 돌아가서 Ubuntu 가 정상적으로 설치되었는지 확인한다.
3. WSL2로 업그레이드
WSL2를 사용하기 위해서는 WSL2 리눅스 커널 업데이트를 설치해야 한다. 아래 링크에서 리눅스 커널 업데이트 파일을 다운받는다.
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
다운받은 파일을 실행한다.
이제 powershell에서 아래 명령어로 WSL2로 업그레이드를 진행한다.
wsl --set-version Ubuntu-20.04 2
다시 목록을 확인하면 버전을 변경하면서 우분투 리눅스가 중지된 것을 볼 수 있다. 이 때 wsl 명령어를 치면 자동으로 재시작 된다.
4. WSL2 사용 설정
WSL2로 버전을 업그레이드 했으니 이제 WSL2를 기본으로 사용하도록 변경해본다.
wsl --set-default-version 2
5. VSCode 연동
다음으로 WSL를 VSCode에 연동해본다. VSCode Extension에서 Remote - WSL을 설치한다.
이제 powershell에서 원하는 프로젝트 디텍토리로 이동한 다음 아래 명령어를 입력하면 된다.
code .
해당 프로젝트가 WSL 환경으로 VSCode에서 열렸다. 이후 터미널 창은 종료해도 무장하며 다음부터는 VSCode에 접속하면 해달 WSL 환경으로 프로젝트가 열린다.
WSL은 윈도우와는 다른 환경이고, VSCode는 원격으로 해당 환경에 접속하게 된다.
Windows 파일 시스템 C:/ 드라이브(C:\Users<user name>\Project)는 WSL 명령줄에 탑재될 때 /mnt/c/Users/
WSL 연결 해제
좌측 하단에 초록색 아이콘을 클릭하고 close remote connection 검색 후
닫았던 WSL 다시 연결
좌측 하단에 초록색 아이콘을 클릭하고 New WSL Window 클릭