Windows 11의 WSL2에서 리눅스 X Window 응용프로그램 실행하기

    반응형

    언제부턴가 마이크로소프트가 오픈소스 진영에 호의적인 행동을 보이기 시작했다. 그리고 놀랄만한 툴들을 마이크로소프트에서 무료로 출시하고 있다. 대표적으로 VSCODE라고도 불리는 Visual Studio Code라는 개발자도구가 있다. 그리고 최근 또하나의 획기적인 작품(?)을 사용할 수 있으니... 바로 WSL2에서 GPU 가상화를 통한 X Window 응용프로그램 지원이다.

     

    쉽게 말해 Windows 에서 지원하고 있는 WSL(Windows Subsytem for Linux)에서 리눅스의 GUI 응용프로그램들을 실행할 수 있다는 얘기다.

     

    오래 전, 유닉스와 리눅스 환경에서 실행되는 X Window 프로그램들을 Windows에서 Windows 응용프로그램들과 함께 실행할 수 있었으면 좋겠다는... 당시로서는 말도 안되는 바램이 있었다. 그래서 Windows 용 X Server를 설치하고 억지로 억지로 네트워크를 통해 다른 유닉스나 리눅스에 X Window 터미널을 실행시켜 접속하고 작업을 하기도 했었다.

     

    그런데... 그런 상상을 한지 20년도 더 지난 지금.. Windows 11에 포함된 WSL2에서 그 상상이 현실이 되었다. 사실 WSL을 처음 만져보면서 마이크로소프트의 개과천선에 놀랐었다. 하지만 X Window까지 지원하리라고는 생각하지 못했었는데 언제부턴가 WSL에서 X Window 지원을 위해 작업을 하고 있다는 소문이 들리더니 결국은 현실이 되었다.

     

    하지만 Windows 11의 WSL2의 리눅스 커널에서 공식적으로 X Server를 지원함에도 Windows에 X Server를 설치하고 DISPLAY만 Windows로 설정하여 X Window 응용프로그램을 실행하는 편법을 소개하거나 MSTSC 클라이언트를 통해 접속하는 방법을 소개하는 블로그도 꽤나 많다. 하지만 이제 그럴 필요가 없다.

     

    WSL에서 X Window 응용프로그램을 실행시키는 방법을 포스팅한다.

    vGPU를 지원하는 그래픽 드라이버 설치

    WSL의 가상화에서  X Window의 GUI API를 실행하기 위해서는 GPU(Graphic Process Unit)의 가상화가 이루어져야 가능한 것으로 보인다. 그래서 마이크로소프트의 WSL 관련 기술자료에서는 주요 GPU 벤더에서 제공하는 vGPU를 지원하는 드라이버 다운로드 페이지를 제공하고 있다.

    https://docs.microsoft.com/ko-kr/windows/wsl/tutorials/gui-apps

    위의 마이크로소프트 사이트에 가면 다음과 같이 각 GPU 벤더의 다운로드 페이지 링크를 제공한다.

    WSL에서 Linux GUI 앱 실행
    WSL에서 리눅스 GUI 앱 실행을 위한 주요 GPU 벤더의 vGPU 지원 드라이버 다운로드 페이지 링크

    인텔의 vGPU 지원 그래픽 드라이버를 다운로드 받아 설치한다.

    인텔의 vGPU 지원 그래픽 드라이버 다운로드 및 설치

    WSL2 업데이트 및 버전 2 리눅스 실행

    vGPU 지원 그래픽 드라이버를 설치하고 나면 Windows 11의 WSL 실행하기 위해 Windows Power Shell 또는 Command 창 또는 Windows Terminal을 관리자 권한으로 실행한다.

    윈도 파워쉘 실행
    Windows 파워쉘 실행

    먼저 WSL 엔진을 업데이트 한다. ( wsl --update )

    WSL 업데이트 및 셧다운
    WSL 업데이트 및 셧다운

    그리고 WSL로 실행중일 수도 있는 가상머신들을 모두 종료한다.  ( wsl --shutdown )

     

    여기서 중요한 점은 wsl에 설치된 리눅스가 모두 아래와 같이 VERSION 2 로 설치되어 있어야 한다. VERSION 1에서는 X Window 응용프로그램을 실행할 수 없다.

    wsl 리눅스 가상머신의 버전 확인
    wsl 리눅스 가상머신의 버전 확인

    WSL에 설치된 리눅스의 가상머신 버전 확인은 wsl -l -v 명령으로 수행한다.

     

    버전이 2 로 확인되면 다음의 명령을 통해 리눅스를 실행한다. 이 포스트에서는 Kali Linux (칼리 리눅스)를 기준으로 설명한다. 가상 머신의 실행은 wsl - d kali-linux 로 실행한다. -d 옵션 뒤에의 리눅스는 앞에서 wsl -l -v 명령의 결과로 출력되는 리눅스 머신의 NAME의 값을 지정하면 된다.

    
wsl 의 가상머신을 명령행에서 실행하기
    wsl 의 가상머신을 명령행에서 실행하기

    만약 우분투라면 마이크로소프트의 공식 지원 페이지를 참고하는게 좋겠다. 

    https://docs.microsoft.com/ko-kr/windows/wsl/tutorials/gui-apps

    리눅스 업데이트 및 GUI 패키지 설치 (칼리 리눅스 - Kali Linux)

    칼리 리눅스가 실행되면 먼저 리눅스를 업그레이드 한다. 우선 데비안 계열과 우분투 계열 모두 동일한 명령으로 패키지 정보를 업데이트가 가능하다.  ( sudo apt update )

    칼리 리눅스 패키지 정보 업데이트

    다음은 실제 업그레이드를 실행한다. ( sudo apt upgrade )

    칼리 리눅스 업그레이드 패키지 설치

     

     

     

    다음은 칼리 리눅스의 X Window 패키지를 새로 설치하거나 업그레이드 한다. ( sudo apt install kali-desktop-xfce )

    칼리리눅스에 x window 패키지 설치

    이 과정은 꽤 시간이 걸릴 수 있는데... 다음에 설치할 칼리 리눅스 앱의 설치에 비하면... 껌이다. -.-

    X Window 패키지 설치

    칼리 리눅스의 기본적인 도구들을 설치한다. 이 패키지들은 해킹 또는 모의해킹이나 취약점 점검에 사용되는 도구들이다. 그리고 X Window 응용프로그램으로 개발된 점검 도구들도 함께 설치된다. ( sudo apt install kali-linux-default )

    칼리리눅스의 도구 설치를 위한 다운로드

    이 작업은 징그럽게 오래 걸렸다. 다운로드에만 거의 14시간 이상 걸린 듯 하다. 다운로드가 끝나면 자동으로 설치가 진행된다.

    다운로드 받은 칼리리눅스 응용프로그램 설치

    일단 편한 X Window 터미널 응용프로그램인 gnome-terminal 을 설치해본다.

    
gnome-terminal 설치
    gnome-terminal 설치

    WSL에서 리눅스 X Window 응용프로그램 실행

    여기까지 문제 없이 진행되었다면 wsl에 설치된 리눅스에서 gnome-terminal 명령을 실행해본다.

    wsl에서 x window 터미널 실행 - gnome-terminal
    wsl에서 x window 터미널 실행 - gnome-terminal

    오옷... Windows 터미널과 x window 터미널 (gnome-terminal)이 함께 실행되었다.

    만약 여기서 디스플레이할 터미널을 찾을 수 없다거나 display 라는 단어가 들어간 에러가 발생한다면 다음의 명령어를 실행한 뒤 gnome-terminal을 실행시켜 본다.

     

    $ DISPLAY=:0.0;export DISPLAY

     

    이제 칼리리눅스의 다른 앱 중 하나를 실행해본다. burpsuite 다.

    윈도탐색기, 엑셀과 칼리리눅스의 버프스위트와 그놈터미널이 함께 실행된 화면

    오래(?) 살다보니 상상만 하던 이런 세상이 오기도 한다. 

     

    댓글(0)

    Designed by JB FACTORY