일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 일본
- FT-8
- 어린이
- 가족여행
- 갤럭시 핏2
- 둠
- 여행
- 한강
- 페루
- 휴양림
- 대만
- BSC100S
- 한강 라이딩코스
- 저렴한 속도계
- 캠핑
- 박물관
- 도쿄
- ubuntu 24.04
- 제주도
- iGPSPORT
- 아마추어무선
- 체험학습
- 딸래미
- 크로스 컴파일
- cross compile
- 스마트폰 리눅스
- ARM
- 태블릿 리눅스
- Termux
- 비욘드트러스트
- Today
- Total
주희아빠의 헝그리 라이딩
WSL 1 vs WSL 2 실질적인 차이점 본문
2023.11.1
WSL 1 vs WSL 2 실질적인 차이점
최근 얼마간 WSL1 과 WSL2 를 사용해 보면서 실제로 차이가 나는 몇가지를 발견하였습니다.
공식적으로 마이크로소프트에서 말하는 차이점은 아래 링크를 참고해 주십시오.
https://learn.microsoft.com/ko-kr/windows/wsl/compare-versions
사실 읽어봐도 저는 잘 모르겠습니다. 대부분의 경우는 WSL2 가 더 좋으므로 그냥 이것을 이용하면 됩니다.
1. 파일의 저장되는 형태가 다릅니다.
WSL1 은 다음처럼 windows 의 실제 파일시스템으로 존재합니다. 거의 모든 점에서 WSL2 유리하지만 WSL1 의 유일한 장점이 파일 액세스 속도라고 하는데 아마 이때문이 아닐까 싶습니다.
파일이 저장되는 경로는 다음과 같습니다.
C:\Users\multitab\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState
한칸 아래인 rootfs 에 들어가 보면 다음처럼 리눅스 파일시스템이 그대로 존재하는 것을 볼 수 있습니다.
WSL2 는 다음처럼 단일 파일로 구성됩니다. 일반적으로 보던 다른 VM 에서의 형태와 유사하군요. 다른 vm 관리자에 물리면 바로 돌아가려나???
중간에 WSL 버전을 1과 2에서 서로 오가면 이 때 파일이 컨버팅되는 임시 상황도 볼 수 있습니다.
일반 파일시스템과 vhdx 디스크가 동시에 존재함.
2. WSL1 에서는 디스크관련 몇가지 문제가 발생하는 것을 발견했습니다.
/dev/ 아래 loop 장치가 안잡힙니다. 그래서 이 장치를 사용하는 스크립트의 경우는 문제가 생겼습니다.
추가로 lspci 명령어도 동작하지 않습니다.
WSL2 에서는 /dev/loop* 장치들이 올바르게 나오고 lspci 명령어도 잘 수행됩니다.
3. X11 어플리케이션 바로 사용 여부
원래 X11 어플리케이션의 경우는 별도로 DISPLAY=ip:0 의 세팅을 해주고 Windows 쪽에 X-Server 역할을 해주는 X-Manager 나 mobaxterm 같은 것을 띄워주어야 화면을 받을 수 있습니다.
예) export DISPLAY=192.168.1.5:0 <-- windows 의 ip.
WSL1 에서는 당연히 이렇게 동작하는데 WSL2 에서는 별도의 설정 없이도 X 관련 어플리케이션을 띄울 수 있습니다.
사진은 위에 것 참조. 오랜만에 보는 'xclock'...
그렇다고 다른 머신의 Terminal 에서 띄운 프로그램까지 X 를 사용할 수 있는건 아닙니다. WSL 에서 실행되는 것에 대해서만 받아줍니다.
나중에 또 차이점을 발견하면 업데이트하도록 하겠습니다.
Tip 1 . wsl 버전 1 과 2 변환하기. 필요에 따라 wsl1 과 wsl2 를 변환할 수 있습니다. 변환에 필요한 시간은 사용한 디스크양에 따라 달라집니다.
Tip 2. WSL 의 리눅스 저장 파일 옮기기.
c: 드라이브 공간이 부족해서 d: 로 옮기거나 아예 다른 컴퓨터로 이동할 수도 있습니다.
솔직히 이런 구석에 쳐 박혀 있으면 관리도 안됩니다.
C:\Users\multitab\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState
-- windows 쪽 cmd 창 혹은 powershell 에서 진행
C:\Users\multitab> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
Ubuntu-20.04 Stopped 2
C:\Users\multitab> wsl --export ubuntu-20.04 c:\temp\ubuntu.tar
내보내기가 진행 중입니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
작업을 완료했습니다.
-- 바로 import 하면 같은 이름이 있다고 오류가 납니다. 기존것을 지워주고 진행합니다.
C:\Users\multitab> wsl --unregister ubuntu-20.04
등록 취소 중입니다.
작업을 완료했습니다.
-- 새로 옮겨갈 디렉토리를 지정해 줍니다.
C:\Users\multitab> wsl --import ubuntu-20.04 c:\home\ubuntu-20.04 c:\temp\ubuntu.tar
가져오기가 진행 중입니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
작업을 완료했습니다.
-- export/import 를 진행하면 기본접속 유저 정보가 날아갑니다. 다시 설정해 줍니다.
-- 명령어는 ubuntu, ubuntu2004 처럼 구분됩니다.
C:\Users\multitab> ubuntu2004 config --default-user multitab
C:\Users\multitab> dir c:\home\ubuntu-20.04\
C 드라이브의 볼륨: Windows10
볼륨 일련 번호: 2AD2-3996
c:\home\ubuntu-20.04 디렉터리
2023-11-17 오후 08:59 <DIR> .
2023-11-17 오후 08:59 <DIR> ..
2023-11-17 오후 09:19 4,374,659,072 ext4.vhdx
1개 파일 4,374,659,072 바이트
2개 디렉터리 107,668,172,800 바이트 남음
Tip 3. wsl ubuntu 호출 명령어
wsl 에 여러벌의 리눅스가 설치된 경우 각각 고유의 이름을 가지게 됩니다. 보통 처음에 설치한 것은 ubuntu 이고 이후에는 버전명이 붙는 것 같습니다. 이 이름으로 바로 시작을 하거나 위에처럼 config 를 변경할 때도 사용 됩니다.
다음 경로를 보면 실행 파일을 찾을 수 있습니다. 본인의 유저 디렉토리로 치환하여 봐주십시오.
C:\Users\multitab\AppData\Local\Microsoft\WindowsApps