WSL 기초 사용법, 그리고 Ubuntu 와 Ubuntu-22.04

wsl 명령의 기본사용법입니다.
설치된 배포판 정보보기, 삭제, 설치제거, wsl1<->wsl2 모드 전환,
shutdown(power-off), windows / linux 상호 file access 등


WSL에 ubuntu가 설치되면, 다음처럼 windows terminal에 자동 등록됩니다.
물론, windows terminal을 종료, 재시작해야 보입니다.

아래 그림은 Ubuntu 와 Ubuntu-22.04 둘 다 설치된 상황입니다.
현재 Ubuntu 는 Ubuntu-22.04 버전이고, Ubuntu 22.04.2 LTS 도 22.04로
거의 같은 버전입니다.

해당 Distro(배포판)를 설치한 후, MS Store에 가 보시면, sub version정보가 보입니다.
Ubuntu는 2204.2.33, Ubuntu-22.04 는 2204.2.47 로 조금 다르게 나옵니다. (2023,06,27)

sub version 의 정확한 차이는 저도 알기 어렵네요.



Ubuntu 22.04 LTS 를 클릭 또는 Ctrl-Shift-4 를 누르면
Ubuntu-22.04 terminal이 새탭에서 열립니다.

당연하게, Ubuntu 를 클릭하면, Ubuntu terminal 이 열립니다.



wsl 명령으로 설치된 Distro(배포판)정보를 볼때는?

Winows Terminal 에서, wsl -l -v 명령을 치면, 다음처럼 나옵니다.

  NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         2
  Ubuntu          Running         2


맨 앞의 * (asterisk)는 wsl 실행시 default Distro 를 의미합니다.
즉, wsl 명령시, Distro가 지정되지 않는 경우, 선택되는 배포판입니다.

NAME 항목에는 설치된 Ubuntu-22.04와 Ubuntu 가 보이고,
STATE의 stopped 는 power-off 상태를, Running은 실행중임을 의미합니다.
VERSION 은 wsl2 적용여부를 보여줍니다. WSL 적용이면 1, WSL2 면 2 입니다

배포판별 wsl 1, wsl 2 적용여부는 쉽게 바꿀 수 있습니다.

다음의 예는, Ubuntu-22.04 Distro 를 wsl 버전 1으로 바꿉니다.

wsl --set-version Ubuntu-22.04 1
마지막의 숫자를 2로 하면, wsl2 로 바뀌게 됩니다.


Windows 부팅후, STATE 는 모두 Stopped 이고,
해당 배포판의 terminal이 열때, Running 상태가 됩니다.

예전의 WSL 에서는, Running 상태가 되면, 동일한 배포판의 여러 terminal을
전부 닫아도(close), Running 상태를 유지했으나,
현재는(Win11, wsl version 1.2.5.0), 일정시간 후, Stopped 상태가 됩니다.

또한, 어떠한 linux terminal을 열지 않아도, windows 에서 해당 배포판의
linux file system을 access 하려고 하면, 잠시 후 Running 상태가 됩니다.

* windows 에서, linux file system을 access 하는 예제는 다음과 같습니다.
  • \\wsl$\Ubuntu-22.04\home\<user name>\Project
  • \\wsl.localhost\Ubuntu-22.04\home\<user name>\Project

* 반대로, linux 에서 windows file system으로 access는 다음과 같습니다.
  • /mnt/c/Users/gildong
  • /mnt/d/backup

** window 실행파일이나, linux 실행파일이나, 둘다 어디서든 실행이 됩니다.
   windows 환경에서든, linux 환경에서든 알아서 실행됩니다.

   또한, Windows 의 environment variable인 path를
   linux 에서 사용가능하도록, 기본적으로 설정됩니다.
   (물론, path 전달여부는, wsl 옵션으로 제어 가능합니다.)



power-off (Stopped) 상태로 만드려면?

Windows Terminal ( PowerShell ) 에서 wsl --shutdown [Distro] 명령을 사용합니다.

wsl --shutdown
wsl --shutdown Ubuntu-22.04

wsl --shutdown 은, 모든 배포판을 Stopped 상태로 만듭니다.
wsl --shutdown Ubuntu-22.04 는 Ubuntu-22.04 배포판만 Stopped 로 만듭니다.


** 유의 사항
  shutdown 명령을 내렸다고, 바로 stopped 상태가 되지 않습니다.
  MS site 안내에는, 8 seconds rule 이라고 나옵니다.

  8초 기다리라는 의미입니다. 물론, 대부분, 8초 보다 일찍 끝나긴 합니다.
  확실하게 보시려면, task manager 에서, wsl process 들을 확인하시면 됩니다.

  당연하지만, windows 에서 linux file system을 access 하고 있으면, 거부됩니다.



설치된 배포판을 지울때는 어떻게 하나?

Windows Terminal ( PowerShell ) 에서 wsl --unregister <Distro> 명령입니다.

wsl --unregister Ubuntu-22.04

위 명령은, Ubuntu-22.04 배포판의 instance 를 제거합니다.

Windows 의 wsl system은 Virtual Machine 입니다.
wsl --unregister 는, VM ( instance )를 지우는 것입니다.

다시 말해서, 설치용 원본파일은 지워지지 않습니다.


Download 받은 설치원본까지 지우려면?

Microsoft store의 library 에서 삭제하거나,
설정->앱->설치된 앱 에서 제거해야 합니다.



** 관리자 모드 참고사항.

Windows Terminal 은, 특별한 경우에만 관리자 모드로 실행하고,
ubuntu 설치포함, 대부분의 경우 일반 유저모드에서 하시기 바랍니다.

물론, 관리자로 해서, linux console로 들어가도 default linux user 계정으로 열립니다.

하지만, 관리자 모드로 Windows Terminal을 열고, 그 창에서, Ubuntu terminal을 열면
Winows 와 Linux간 interface(GUI,pulse server, 등) 에 문제가 생기고, 귀찮아 집니다.

ubuntu는, user mode에서 설치,사용 하도록 권고드립니다.


각 배포판의 설치/사용에서 관리자 모드의 차이점은, 알려진 정보가 별로 없습니다.

그렇지만, MS Store 에서 설치되는 것은,
기본적으로, User 계정에 귀속되고, User 계정에 설치되며, 실행됩니다.

즉, user 계정으로써, 설치와 사용이 default 라는 뜻입니다.

댓글 쓰기

0 댓글