- 필요 : Windows 10 빌드 19041 ( 2020/05 업데이트 )

 

    - 윈도우 OS에서 동작하는 리눅스 wsl2 사용방법

    - 리눅스 서버를 구동하고 윈도우에서 접속할 수도 있다.

 

    - 주의! 버츄얼박스(VirtualBox)가 비정상 동작을 할 수도 있다.

       참고 :  https://codens.info/2061

 

 

//-----------------------------------

< WSL 설치 방법 >

    - 아래의 2개 명령은 'Windows 기능 켜기/끄기'의 커맨드라인 명령

 

    - Linux용 Windows 하위 시스템(WSL) 기능 켜기

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart



    - 가상 머신 플랫폼(Virtual Machine Platform) 기능 켜기

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart



    - 재부팅



    - Linux 커널 업데이트 패키지 설치

x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지 다운로드

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi



    - WSL 2를 기본 버전으로 설정 변경

wsl --set-default-version 2



    - 버전 확인

wsl -l -v

 

 

    //-------------------------

    - 리눅스 배포판 설치

Microsoft Store 실행

linux로 검색 -> 배포판 선택

    Ubuntu 18.04 LTS

https://www.microsoft.com/ko-kr/p/ubuntu-1804-lts/9n9tngvndl3q?rtc=1&activetab=pivot:overviewtab

 

    

설치를 실행하면 리눅스 콘솔 창이 나타나면서 username입력을 요구한다.

    -> username과 password를 입력한다



//-----------------------------------------------------------------------------

    //------------------------------------------

    - WSL이 설치된 윈도우 경로

Ubuntu 18.04의 경우

C:\Users\사용자ID\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

 

    - WSL2는 가상머신에서 동작하므로 윈도우 탐색기로 리눅스 파일을 바로 볼수 없다

 

//-------------------------------------

    - 설치된 경로 보기 (PowerShell)

Get-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss" -Recurse

 

 

 

//-----------------------------------------------------------------------------

    //----------------------

    - 리눅스 콘솔 실행 명령

wsl

 


//-----------------------------------------

< Windows Terminal 활용 >

    - 윈도우 터미널을 설치하면 좀더 편리하게 WSL를 사용할수 있음

 

    - 설치 

https://www.microsoft.com/ko-kr/p/windows-terminal/9n0dx20hk701?activetab=pivot:overviewtab

 

    - 테마 설정 방법

https://codens.info/1979




    //------------------------------------

    - 윈도우 터미널의 기본 쉘을 리눅스로 설정 하는 방법

터미널 설정(Ctrl + ,)  -> settings.json 수정

    -> defaultProfile 항목을 리눅스 프로파일 id(guid)로 변경

 

    - 예)

{

    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",

...

 

    //------------------------------------

    - 명령어 옵션으로 윈도우 터미널을 리눅스 쉘로 시작 (command line arguments options)

wt -p "프로파일 이름"

        - 프로파일 이름은 터미널 설정(Ctrl + ,)  -> settings.json에 설정되어 있는 이름

 

        - 예)

wt -p "Ubuntu-18.04"

 


//-----------------------------------------------------------------------------
기본 사용자 설정
    - 시작을 root로 시작하지 않고 ubuntu 계정으로 시작하기
https://superuser.com/questions/1566022/how-to-set-default-user-for-manually-installed-wsl-distro

    - /etc/wsl.conf 파일 수정
[user]
default=ubuntu

    - 수정후 wsl 재시작(종료, shutdown)

wsl --shutdown

 

        - 다른 방법(terminate)
wsl -l  # 배포판 리스트
wsl --terminate 배포판이름

 

//----------------------------------------------------

< WSL 사용법 >

https://docs.microsoft.com/en-us/windows/wsl/interop

 

    - 윈도우에서 리눅스 명령 실행

        - 파워쉘(Windows Power Shell) 에서 WSL의 리눅스 명령 실행

        - wsl 명령서 사용

 

PS > wsl ls -la ~

        - 리눅스 사용자 홈

 

PS > wsl ls -la "/mnt/c/Program Files"

        - 윈도우 C:\Program Files

 

PS > wsl sudo apt-get update

        - 리눅스 업데이트



    //------------------------------------- 

    - WSL(리눅스 콜솔)에서 윈도우 명령 실행

        - WSL은 윈도우 프로그램을 바로 실행 가능, 뒤에 .exe 까지 붙힌다

 

$ ipconfig.exe | grep IPv4 | cut -d: -f2

        - 리눅스 파이프 사용가능

 

$ notepad



    //-------------------------------

    - WSL에서 윈도우 명령 실행 안되게 설정

echo 0 > /proc/sys/fs/binfmt_misc/WSLInterop

 

        - 다시 가능하게 설정

echo 1 > /proc/sys/fs/binfmt_misc/WSLInterop




//----------------------------------

< OS간 파일 제어 >

    - WSL2는 가상머신에서 동작하므로 윈도우 탐색기로 리눅스 파일을 바로 볼수 없다



    - 리눅스에서 윈도우 D:\Z 로 복사

$ cp file1.txt "mnt/d/z"

 

    - 윈도우에서 리눅스로 파일 복사

> copy file2.txt   \\wsl$\Ubuntu-18.04\home\ubuntu



    - 윈도우에서 리눅스 네트워크 드라이브로 연결 방법

탐색기 -> 내컴퓨터에서 마우스 우클릭 -> 네트워크 드라이브 연결 

    -> 폴더 : \\wsl$\Ubuntu-18.04



//-----------------------------------------------------------------------------

< 드라이브 연결(마운트) 방법 > 
    - 윈도우 -> WSL
> net use Z: "\\wsl$\Ubuntu-22.04"
        net use Z: "\\wsl$\Ubuntu-22.04\home" <=== 에러 발생


    - WSL -> 윈도우
$ mkdir /home/ubuntu/win-data
$ sudo mount -t drvfs "D:\Data" /home/ubuntu/win-data

 

 

//-----------------------------------------------------------------------------

    - '이 경로에 윈도우 터미널 열기' 파일 탐색기 마우스 우클릭 메뉴 추가 레지스트리

 

Windows Registry Editor Version 5.00

 

[HKEY_CLASSES_ROOT\Directory\shell\wtcmd]

@="이 경로에 윈도우 터미널"

"icon"="d:\\util\\icon\\wt_32.ico"

 

[HKEY_CLASSES_ROOT\Directory\shell\wtcmd\command]

@="C:\\Users\\사용자ID\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d \"%V\""



        - 경로 주의!! 환경변수를 사용한 경로를 사용할 수 없다(에러 발생)

            - 다음의 경로는 레지스트리에 사용할 수 없다.

"%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\wt.exe"

"%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe" 




//-------------------------------------------------------------------------------

* wsl2 root 비밀번호 분실시 해결 방법

 

    - 기본 접속 계정 설정

        - 명령어 주의! wsl이 아니고 ubuntu.exe

        - Ubuntu-18.04 배포판의 경우는 ubuntu1804.exe 

ubuntu.exe config --default-user root

 

    - wsl 접속

wsl

 

    - root 패스워드 변경

passwd



//-------------------------------

* 배포판(distribution) 관리

https://docs.microsoft.com/en-us/windows/wsl/wsl-config

 

    - 설치된 배포판 리스트

wsl -l

        - 결과 예

Linux용 Windows 하위 시스템 배포:

Ubuntu(기본값)  <--- ubuntu.exe

docker-desktop-data

docker-desktop 

Ubuntu-18.04 <--- ubuntu1804.exe

 

   - 기본 실행할 배포판 지정 설정
wsl --setdefault 배포판이름

 

   - 등록삭제(리스트에서 삭제)

wsl --unregister 배포판이름

 

    - 배포판 지정 실행

wsl -d docker-desktop

wsl -d Ubuntu-18.04

 

 

//-----------------------------------------------------------------------------
< wsl 에서 CUDA Toolkit 설치 방법 (wsl cuda) >

      - 윈도우에서 윈도우용 nvidia 그래픽 드라이버 설치
https://www.nvidia.co.kr/Download/index.aspx?



      - CUDA 설치(다운로드)
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local

Linux -> x86_64 -> WSL-Ubuntu -> 2.0 -> deb (network)
표시되는 설치 명령 실행

      - 명령예) CUDA 12.4 설치
$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
$ sudo dpkg -i cuda-keyring_1.1-1_all.deb
$ sudo apt-get update
$ sudo apt-get -y install cuda-toolkit-12-4


     - CUDA 버전 확인
nvidia-smi


 

//-----------------------------------------------------------------------------

// 참고

Windows 10에 Linux용 Windows 하위 시스템 설치 가이드

https://docs.microsoft.com/ko-kr/windows/wsl/install-win10



WSL 1과 WSL 2 비교

https://docs.microsoft.com/ko-kr/windows/wsl/compare-versions





반응형
Posted by codens