WSL에서 우분투 최신 버전 사용하는 방법

WSL은 윈도우에서 리눅스를 사용할 수 있도록 도와주는 도구입니다. WSL은 가상머신이 아닌 윈도우와 통합된 리눅스 환경을 제공하므로 활용도가 높습니다. 리눅스에는 다양한 배포판이 있습니다. WSL에서도 다양한 리눅스 배포판을 사용할 수 있으며, 기본적으로 마이크로소프트 스토어에서 리눅스 배포판을 찾아볼 수 있습니다.

하지만 아직 스토어에서 지원하지 않는 최신 버전이나 특정 버전을 WSL에서 사용하고 싶다면 어떻게 해야할까요? 이 글에서는 스토어에 등록되어있지 않은 Ubuntu 최신 버전을 사용하는 방법을 알아봅니다.

WSL에서 지원하는 우분투 배포판 검색#

먼저 마이크로소프트 스토어에서 현재 사용할 수 있는 Ubuntu 배포판을 검색해보겠습니다.

스토어에서 설치할 수 있는 Ubuntu 배포판들

23년 7월 현재 우분투 최신 버전은 23.04 (Lunar Lobster)입니다. 하지만 위의 검색 결과에서 알 수 있듯이, 우분투 배포판은 22.04.2 LTS, 20.04.6, 18.04.6 LTS 버전을 설치할 수 있습니다. 이 패키지들은 우분투의 개발사인 캐노니컬(Canonical)에서 관리하고 있으며, 무료로 설치해서 사용할 수 있습니다. 또한 제공되고 있는 버전들은 모두 5년간 지원하는 LTS 버전인 것을 알 수 있습니다.

23.04는 최신 버전이라 아직 앱이 등록되지 않았을 수도 있지만, 정책상 추후에도 WSL 앱으로 제공되지 않을 수도 있습니다.

그럼 여기서부터는 직접 23.04 버전을 WSL에서 임포트하고 사용하는 방법을 알아보겠습니다.

우분투 23.04를 WSL에서 임포트하는 방법#

우분투에서는 현재 공식적으로 WSL 이미지들을 제공하고 있습니다. 2023년 7월 현재 WSL 이미지로 제공되는 버전은 22.04 LTS, 22.10, 23.04, 그리고 개발중인 23.10이 있습니다.

lunar(23.04)의 디렉터리로 이동하면 날짜별로 이미지가 존재합니다. (글을 작성하는 시점에서) 가장 최신인 20230706 디렉터리에서 amd64 버전의 압축 파일을 다운로드 받습니다.

파워셸에서 다음 명령어를 실행해 이미지를 다운로드 받습니다. 다운로드는 시간이 걸립니다.

$ wget https://cloud-images.ubuntu.com/wsl/lunar/20230706/ubuntu-lunar-wsl-amd64-wsl.rootfs.tar.gz

StatusCode        : 200
StatusDescription : OK
Content           : {31, 139, 8, 0...}
RawContent        : HTTP/1.1 200 OK
                    Keep-Alive: timeout=2, max=10
                    Connection: Keep-Alive
                    Accept-Ranges: bytes
                    Content-Length: 459327887
                    Content-Type: application/x-gzip
                    Date: Sat, 08 Jul 2023 15:03:57 GMT
                    ETag: "1...
Headers           : {[Keep-Alive, timeout=2, max=10], [Connection, Keep-Alive], [Accept-Ranges, bytes], [Content-Length, 459327887]...}
RawContentLength  : 459327887

이 이미지 압축 파일을 임포트해보겠습니다. wsl 임포트 명령의 형식은 다음과 같습니다.

$ wsl --import <NAME> <WSL_DIR> <IMAGE_PATH> --version <WSL_VERSION>

각 변수의 의미는 다음과 같습니다.

  • NAME: WSL 머신 이름을 지정합니다.
  • WSL_DIR: WSL 머신이 저장될 디렉터리입니다.
  • IMAGE_PATH: 임포트 할 리눅스 배포판 압축 파일 경로입니다.
  • WSL_VERSION: WSL ���전을 지정합니다. 2를 지정해주세요.

몇 분 정도 걸린다고 출력 되지만, 이 작업은 생각보드 금방 끝납니다.

$ mkdir $HOME\wsl\ubuntu2304
$ wsl --import ubuntu2304 "$HOME\wsl\ubuntu2304" ".\ubuntu-lunar-wsl-amd64-wsl.rootfs.tar.gz" --version 2
가져오기가 진행 중입니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
작업을 완료했습니다.

ubuntu2304를 임포트한 디렉터리에 가보면 vhdx 파일이 생성된 것을 확인할 수 있습니다.

PS C:\Users\lainyzine\wsl\ubuntu2304> ls

    디렉터리: C:\Users\lainyzine\wsl\ubuntu2304

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----      2023-07-09  오전 12:10     1254096896 ext4.vhdx

wsl 명령어로 임포트가 잘 되었는지 확인해봅니다.

$ wsl -l -v
NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop-data    Running         2
  docker-desktop         Running         2
  ubuntu2304             Stopped         2
  rockylinux9            Stopped         2

ubuntu2304 WSL 머신이 정상적으로 등록된 것을 확인할 수 있습니다.

직접 임포트한 Ubuntu 23.04 초기화 및 맛보기#

그럼 정상 동작하는지 바로 실행해보겠습니다. -d 옵션에 명시적으로 ubuntu2304를 지정해줍니다.

$ wsl -d ubuntu2304
Welcome to Ubuntu 23.04 (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)

* Documentation:  https://help.ubuntu.com
* Management:     https://landscape.canonical.com
* Support:        https://ubuntu.com/advantage

This message is shown once a day. To disable it please create the
/root/.hushlogin file.
root@DESKTOP:~#

성공적으로 Ubuntu 23.04 셸이 실행된 것으로 보입니다. 시작할 때 리눅스 버전이 출력됩니다만, cat으로 릴리스 파일을 출력해서 확인해보겠습니다.

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=23.04
DISTRIB_CODENAME=lunar
DISTRIB_DESCRIPTION="Ubuntu 23.04"

우분투 23.04인 것을 확인할 수 있습니다. 스토어를 사용하면 설치 버튼으로 간단히 리눅스 배포판을 설치할 수 있지만, 직접 임포트하는 것도 그렇게 어렵지는 않습니다. 특히 원하는 버전을 사용할 수 있다는 메리트가 있습니다.

버전 이외에도 스토어 버전과 차이가 있는 것을 눈치 채셨을 수도 있습니다. 스토어 버전은 설치할 때 새로운 사용자를 만들고, 비밀번호를 등록합니다. 그런데 직접 임포트한 버전에서는 리눅스 사용자가 root입니다.

$ whoami
root

root는 리눅스의 모든 권한을 가진 특수한 계정으로, 일반적으로 이 계정을 직접 사용하지는 않습니다. 스토어 버전과 마찬가지로 관리자 권한을 가진 사용자를 추가해서 사용하는 것을 추천합니다.

다음 명령어들을 차례대로 실행해줍니다. 이 때 lainyzine은 자신이 사용할 계정 이름으로 변경해주세요.

## lainyzine 유저 생성
$ useradd -m -s /bin/bash lainyzine

## lainyzine 사용자 비밀번호 설정
$ sudo passwd lainyzine

## lainyzine 사용자를 sudo 그룹에 추가
$ usermod -aG sudo lainyzine

다음으로 wsl.conf 파일에 다음 내용을 추가해주세요.

[user]
default=lainyzine

익숙한 리눅스 커맨드라인 에디터가 없다면 다음 명령어로 설정 파일을 생성할 수 있습니다.

$ echo -e "[user]\ndefault=lainyzine" > /etc/wsl.conf

다시 파워셸로 돌아갑니다(exit 명령어를 실행하면 리눅스 셸을 종료합니다). ubuntu2304를 재시작해줍니다.

$ wsl -t ubuntu2304
$ wsl -d ubuntu2304
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 23.04 (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


This message is shown once a day. To disable it please create the
/home/lainyzine/.hushlogin file.
lainyzine@DESKTOP-21LTHRR:~$

새로 생성한 계정으로 로그인 되면 성공입니다. 이 계정은 root 계정이 아니지만 관리자 권한을 가지고 있습니다. sudo를 사용해 관리자 권한이 정상적으로 부여되었는지 테스트해봅니다. sudo su를 실행하면 임시로 root 계정을 사용할 수 있습니다.

$ sudo su
[sudo] password for lainyzine:
root@DESKTOP:~#

우분투 최신 버전 사용을 위한 준비는 이걸로 끝났습니다. 이제 WSL에서도 우분투 최신 버전을 즐겨주세요.

디폴트 머신을 우분투 최신 버전으로 변경하는 방법#

새로 등록한 머신을 디폴트 머신으로 변경하고 싶다면 다음 명령어를 실행해주세요.

$ wsl --set-default ubuntu2304

다음 명령어로 디폴트 머신이 변경된 것을 확인해봅니다.

$ wsl -l -v
NAME                   STATE           VERSION
* ubuntu2304             Running         2
  docker-desktop-data    Running         2
  Ubuntu                 Running         2
  docker-desktop         Running         2
  rockylinux9            Stopped         2

이제 따로 -d ubuntu2304를 붙이지 않아도, ubuntu2304 머신이 기본적으로 사용됩니다. 예를 들어 이제 ubuntu2304 머신을 실행하려면 인자 없이 wsl을 실행하면 됩니다.

$ wsl
[...]
lainyzine@DESKTOP:~$

추천 문서#

다른 버전을 사용하는 방법도 기본적으로는 같습니다. 이미지를 다운로드 받고, WSL에서 임포트하고, 기본 사용자를 셋업해주면 됩니다. 앞서 소개한 우분투 공식 WSL 이미지 링크입니다.

이 글에서는 직접 WSL 머신을 임포트하는 방법을 소개했습니다. WSL은 익스포트 기능도 지원하고 있어서, 이미 설치된 리눅스 머신을 익스포트하고, 다시 다른 이름으로 임포트하는 방식으로 머신을 복제할 수 있습니다. 다음 글에서는 이미지를 복제하는 방법과 같은 배포판 같은 버전의 리눅스를 여러 대 사용하는 방법을 소개합니다.

리눅스 배포판 설치하고 나면 이제부터가 시작입니다. 다음 글에서는 WSL 설치부터 활용까지 다양한 주제를 소개합니다.