임베디드아로마

wsl2 에서 파일처리 속도 느릴때 방법, 고정아이피 사용 대안방법 본문

Experience

wsl2 에서 파일처리 속도 느릴때 방법, 고정아이피 사용 대안방법

aromacrony 2020. 7. 14. 11:55

WSL2 에서 네트워크 드라이버로 윈도우 탐색기에서 파일 처리가 엄청나게 느린 문제가 있습니다. 이는 아마 이미 Github 에 이슈가 되었던 부분과 관련이 있어 보이는데 Microsoft 팀도 인지하고 작업 중인데 언제 해결될지는 모르겠네요. 

그래도 WSL2 를 업무에 사용하고파서 (원도우 탐색기를 아무래도 많이 사용합니다.) 찾아낸 방법이 바로 Samba 입니다. 사실 이전에 vmware 를 사용할 때도 사용했었습니다. samba 를 사용하면 윈도우 탐색기에서 파일 처리가 느린 문제를 해결할 수 있습니다. 

 

그런데 문제는 WSL2 가 부팅시마다 IP 가 변경된다는 점이죠. 그래서 검색을 해서 고정IP 를 사용하는 대안 방법을 찾아냈습니다. 

 

@echo off

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

if '%errorlevel%' NEQ '0' (

    echo Run as Administrator...

    goto UACPrompt

) else ( goto gotAdmin )

:UACPrompt

    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"

    set params = %*:"=""

    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

 

    "%temp%\getadmin.vbs"

    rem del "%temp%\getadmin.vbs"

    exit /B

:gotAdmin

C:\Windows\System32\bash.exe -c "sudo service smbd start"
wsl -d Ubuntu -u root ip addr add 192.168.50.100/24 broadcast 192.168.50.255 dev eth0 label eth0:1
netsh interface ip add address "vEthernet (WSL)" 192.168.50.50 255.255.255.0

 

해당 내용을 배치파일(bat) 로 저장합니다.

 

이 스크립트 실행방법은 ip address 를 추가하는 것이 있기에 관리자 권한으로 실행이 필요합니다. 그래서 처음에 자동으로 관리지 권한으로 실행하는 부분을 스크립에 추가했습니다.

그런 다음 samba 를 자동실행으로 실행해주고 WSL 고정IP 를 사용하는 내용입니다.

 

여기서 192.168.50.100 이 윈도우탐색기에서 WSL 의 공유폴더로 접속하는 아이피입니다.

 

 

이제 추가적으로 윈도우 부팅시에 서비스를 자동으로 시작하기 위한 방법입니다. 위에 스크립트에서 samba 실행하기 위해서 암호입력이 필요한데 여기 방법으로 암호입력없이 스크립트 실행이 가능합니다.

 

1. visudo 로 sudo 권한 부여

 WSL 처음 설치시 지정한 기본 계정이 존해하는데 해당 계정을 visudo 로 root 비밀번호 없이 sudo 를 수행할 수 있는 권한을 부여합니다.

 

$ visudo 나 $sudo visudo 를 실행합니다.

 

visudo 접속 후 맨 밑에다가 아래 항목을 추가합니다.

 

계정명 ALL=(ALL:ALL) NOPASSWD:ALL

 

계정명 부분에다 기본 계정명을 입력합니다.

저장할 떄는 Ctrl + X 누른 뒤, Y 를 누르고, 파일명을 그대로 저장합니다

2. Windows 배치 파일를 시작폴더에 위치

위에 스크립트 파일을 %AppData%\Microsoft\Windows\Start Menu\Programs\Startup 디렉토리에 복사를 한다.

그럼 재부팅시에 해당 배치 파일이 실행되면서 서비스가 실행됩니다.

 

Comments