WSL 파일시스펨, 네트워크

WSL 파일시스템

윈도우와 WSL 사이의 파일 시스템 공유

WSL 데이터 공간

Windows에 WSL 패키지는 아래의 Packages 폴더 안의 어딘가에 위치한다.

1
C:\Users\[사용자명]\AppData\Local\Packages\

Ubuntu 깔았다면 Packages폴더 아래에 Ubuntu라는 단어가 들어간 폴더명이 보일 것이다. 바로 그 폴더가 Ubuntu WSL의 위치다.

1
2
3
4
5
6
7
8
9
10
11
PS C:\Users\daddy> ls .\AppData\Local\Packages\

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2020-11-01 오후 10:45 1527c705-839a-4832-9118-54d4Bd6a0c89_cw5n1h2txyewy
d----- 2020-11-01 오후 10:31 ActiveSync
d----- 2020-11-12 오전 8:07 adobe.acrobatreaderdc.protectedmode
d----- 2020-11-01 오후 10:45 c5e2524a-ea46-4f67-841f-6a9465d9d515_cw5n1h2txyewy
d----- 2021-02-16 오후 7:52 CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
d----- 2021-02-17 오후 4:58 CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc
d----- 2020-11-01 오후 10:45 E2A4F912-2574-4A75-9BB0-0D023378592B_cw5n1h2txyewy

위 패키지 경로에서 LocalState 폴더 안의 rootfs 폴더가 바로 WSL1의 Root와 동일한 경로이다.

1
2
3
4
5
PS C:\Users\daddy> ls .\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021-02-17 오후 5:34 1206910976 ext4.vhdx

권한문제

윈도우와 리눅스는 서로 다른 권한 매커니즘을 가지므로 윈도우 탐색기 상에서 그냥 WSL 경로로 파일을 옮기면 권한이 이상해진다. 가능하면 WSL 로그인후에 사용한다.

탐색기로 홈디렉토리 열기

현재 Working Directory를 네크워크를 통해 Windows 탐색기로 여는 방법
아래의 명령어를 WSL에서 실행하면 현재 작업 중인 위치를 네트워크 연결을 통해서 Windows에서 열어준다.

1
explorer.exe .

WSL 네트워크

DHCP

https://stackoverflow.com/questions/61002681/connecting-to-wsl2-server-via-local-network

참고

WSL 설치

WLS 설치

https://docs.microsoft.com/ko-kr/windows/wsl/install-win10#manual-installation-steps

https://www.44bits.io/ko/post/wsl2-install-and-basic-usage

WSL 에러

가상머신 에러

wsl2 코드 4294967295

Windows 기능 추가/삭제를 이용해 1 Linux 하위시스템, 2 가상머신 껏다 켜는 방법
https://bluenotes.kr/272

wls2 삭제후 재 설치
https://hyelmy.github.io/%EB%81%84%EC%A0%81%EB%81%84%EC%A0%81/honeytips2/

https://blogger.pe.kr/853

재시작

여러가지 방법이 있지만 대부분의 Windows에서 동작하는 방법은 먼저 PowerShell을 관리자 권한으로 열고 다음 명령을 실행하면 됩니다.

1
Restart-Service LxssManager

Windows 10 버전 1903/19H1 (빌드 18362) 이상 부터는 명령 프롬프트(CMD)를 열고 다음 명령어만 간단히 입력함으로서 WSL 시스템을 종료할 수 있습니다.

wsl -t [배포판 이름]
예를 들어 Ubuntu 20.04를 설치하였다면 wsl -t ubuntu를, Debian을 설치하였다면 wsl -t debian과 같이 사용하시면 됩니다.

추가로 Windows 10 버전 2004/20H1 (빌드 18917) 이상 부터는 명령 프롬프트에서 다음 명령어를 사용하여 모든 WSL 시스템을 한 번에 종료할 수 있습니다. 가령 Ubuntu와 Debian 머신이 구동되고 있다면 아래 명령어로 모두 종료 시킬 수 있습니다.

wsl –shutdown

1
2
3
4
5
6
7
(base) PS C:\Users\daddy> wsl -l
Linux용 Windows 하위 시스템 배포:
Ubuntu-20.04(기본값)
(base) PS C:\Users\daddy> wsl -t Ubuntu-20.04
(base) PS C:\Users\daddy>
(base) PS C:\Users\daddy> wsl -t Ubuntu-20.04 --shutdown
(base) PS C:\Users\daddy>

주요 명령

  1. WSL 버전 확인하기 (cmd창에서)
1
2
3
wsl -l -v

wsl -- list --verbose

우분투 배포판 버전 변경하는 명령어

1
wsl --set-version Ubuntu-20.04 2
  1. 우분투 종료 명령어
    wsl -t Ubuntu-20.04
  • 새로 설치하는 리눅스 배포판에 wsl2로 변경

wsl –set-default-version 2

  1. WSL2 활성화 (Power shell 상)
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

wsl IP 주소

1
wsl hostname -I

네트워크

ssh

https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=gui

DHCP

https://stackoverflow.com/questions/61002681/connecting-to-wsl2-server-via-local-network

참고

고정 IP

https://netmarble.engineering/wsl2-static-ip-scheduler-settings/

https://blog.dalso.org/linux/wsl2/11430

1

배치 파일을 만들어서 작업 스케쥴러에 추가해 재시동시 다시 설정한다.

1
2
wsl -d Ubuntu-20.04 -u root ip addr add 192.168.254.10/24 broadcast 192.168.10.255 dev eth0 label eth0:1
netsh interface portproxy add v4tov4 listenport=8585 listenaddress=0.0.0.0 connectport=8585 connectaddress=192.168.254.10
1