본문 바로가기

Devops/Docker

[Docker] windows wsl 2 설치하기

우선 터미털 입력을 편리하게 하기 위해 Windows Store에서 Terminal 앱을 설치한다.

 

설치한 후 Terminal을 실행하고 wsl (Windows Subsystem for Linux) 명령어를 실행하고 버전 확인을 위해 wsl -l -v를 입력해본다.

 

PS C:\Users\kms> wsl -l -v

Copyright (c) Microsoft Corporation. All rights reserved.

사용법: wsl.exe [인수]

인수:

    --install <옵션>
        Linux용 Windows 하위 시스템 기능을 설치합니다. 옵션을 지정하지 않으면
        권장 기능은 기본 배포와 함께 설치됩니다.

        기본 배포 및 다른 유효한 배포 목록을 보려면
        'wsl --list --online'을 사용하세요.

        옵션:
            --distribution, -d [인수]
               이름별로 다운로드 및 설치할 배포를 지정합니다.

                인수:
                    유효한 배포 이름(대소문자 구분 안 함).

                예:
                    wsl --install -d Ubuntu
                    wsl --install --distribution Debian

    --list, -l [옵션]
        배포를 나열합니다.

        옵션:
            --online, -o
                'wsl --install'로 설치할 수 있는 배포 목록을 표시합니다.

     상태
        Linux용 Windows 하위 시스템의 상태를 표시합니다.

--help
        사용법 정보를 표시합니다.
PS C:\Users\Kms>

그러나 현재 wsl의 버전 정보는 나오지 않고 옵션에도 --version 옵션이 보이지 않는다. 즉 현재상태는 wsl2 상태가 아닌것이다.

 

IO성능 향상이 된 wsl version 2를 사용하기 wsl 2 활성화 설정을 하여야 한다.

 

wsl 2 활성화 하기

 

wsl 2를 업데이트 하기 위한 공식 문서는 아래와 같다.

https://learn.microsoft.com/ko-kr/windows/wsl/install

 

터미널을 관리자 모드로 열고(관리자 모드로 열지 않으면 아래 권한 관련 에러가 발생) 아래 두 커맨드 라인을 입력한다.

 

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

 

만일 관리자 모드로 터미널을 열지 않고 수행하면 아래와 같이 권한 에러가 발생한다.

PS C:\Users\Kimminsoon> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Error: 740

Elevated permissions are required to run DISM.
Use an elevated command prompt to complete these tasks.
PS C:\Users\kms>


관리자 모드로 터미널을 열고 위 명령어를 입력하면 아래와 같이 정상 수행이 된다.

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows

PS C:\Users\Kimminsoon> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Deployment Image Servicing and Management tool
Version: 10.0.22000.653

Image Version: 10.0.22000.918

Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.
PS C:\Users\kms>
PS C:\Users\kms> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Deployment Image Servicing and Management tool
Version: 10.0.22000.653

Image Version: 10.0.22000.918

Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.
PS C:\Users\kms>

 

wsl version 2로 사용하기 위해서 재기동을 수행한다.

 

재기동을 수행한 후 wsl 명령을 수행해보면 여러가지 옵션이 추가된것을 볼 수 있고 list를 조회해보면 아래와 같이 하위 시스템이 배포되어 있지 않다고 출력을 하고 있다.

PS C:\Users\kms> wsl -l
Linux용 Windows 하위 시스템에 배포가 설치되어 있지 않습니다.
아래의 Microsoft Store에서 배포를 설치할 수 있습니다.
https://aka.ms/wslstore

 

리눅스 하위 패키지를 설치하기 전에 리눅스 커널 업데이트를 해야 한다.

https://learn.microsoft.com/ko-KR/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

 

위 링크를 참조해서 윈도우용 커널 업데이트 패키지를 설치한다.

 

 

윈도우용 커널을 업데이트하고 리눅스 배포판을 설치하기 전에 기본적으로 wsl 버전을 설정한다. 2를 사용하는게 목적이므로 아래와 같이 커맨드를 입력한다.

 

PS C:\Users\kms> wsl --set-default-version 2
WSL 2와의 주요 차이점에 대한 자세한 내용은 https://aka.ms/wsl2를 참조하세요
작업을 완료했습니다.

 

wsl 2 기반 리눅스 배포판 설치

 

우선 설치가능한 배포판 리스트를 온라인에서 조회해 보고 install을 해본다. 아래는 ubuntu 20.04 버전을 install 명령으로 수행한 모습니다.

PS C:\Users\kms> wsl -l -o
다음은 설치할 수 있는 유효한 배포 목록입니다.
'wsl --install -d <배포>'를 사용하여 설치하세요.

NAME            FRIENDLY NAME
Ubuntu          Ubuntu
Debian          Debian GNU/Linux
kali-linux      Kali Linux Rolling
openSUSE-42     openSUSE Leap 42
SLES-12         SUSE Linux Enterprise Server v12
Ubuntu-16.04    Ubuntu 16.04 LTS
Ubuntu-18.04    Ubuntu 18.04 LTS
Ubuntu-20.04    Ubuntu 20.04 LTS
PS C:\Users\kms> wsl --install -d Ubuntu-20.04
다운로드 중: Ubuntu 20.04 LTS
설치 중: Ubuntu 20.04 LTS
Ubuntu 20.04 LTS이(가) 설치되었습니다.
Ubuntu 20.04 LTS 실행 중...

 

정상적으로 배포판이 설치되면 배포판에서 계정 설정 화면이 나온다. 신규 계정을 입력하면 최종적으로 리눅스 배포판으로 로그인되고 쉘로 진입한다

 

최종적으로  wsl 유틸로 설치된 리눅스 배포판과 wsl 버전을 확인해보면 원하는대로 되어 있음을 볼 수 있다.

PS C:\Users\kms> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2

 

 

-- The End --