여러분 안녕하세요! 이번 포스팅에서는 windows에서 wsl2를 활용해서 linux사용할 수 있는 환경을 만들어볼거에요~
저도 초보자이기 때문에 아래 블로그를 잘 따라오시면 여러분들도 금방 따라오실 수가 있습니다! 그러면 Step별로 한번 따라가보겠습니다! 제가 window에 linux를 사용해야하겠다고 생각한 계기가 인공지능 프로젝트를 하고 있는데, 제가 사용하는 모델이 오직 Ampere GPUs만 지원이 된다는거에요!!!!!! Colab에서 돌리고 있었는데 이 모델 돌리자고 pro로 업그레이드해서 A100사용하긴 부담이고, 맥북은 m1이라 안돌아가고... 마지막 데스크탑에만 rtx3090이 깔려 있어서 이걸로 시도를 해볼 수 있을 것 같은데.. 최악의 window환경이랍니다. window는 터미널 명령어도 좀 딱딱하고? 뭔가 잘 꼬여요.. 알 수 없는 잔오류들이 많이 발생해서 window에서 터미널 사용하기 너무 싫었는데, 얼마전! 저의 멘토님이 window에서 wsl2를 활용해서 linux를 사용한다라는 소식을 듣고 저도 얼른 시도해보았습니당 :)
** Ampere GPU란? High-end GPU인데요. RTX3090, RTX4090, A10, A100, A6000, H100 이상의 GPU를 말합니다~!
# Step0. WSL이란 무엇일까요?!
WSL은 Windows Subsystem for Windows의 약자입니다. WSL1버전과 WSL2버전이 있는데요. WSL1버전은 window LXCore위에 리눅스 커널 명령이 Windows NT커널로 변환된 다음 반환받는 것이고, 속도도 많이 느려서 WSL2를 많이 쓴다고 합니다! WSL1과 WS2차이는 아래 그림을 참고해주세요!
제일 큰 차이점은 WSL2부터 전체 Linux Kernel이 적용되어, WSL System상에서 Nvidia CUDA를 이용한 연산이 가능해졌다는 점입니다!
위의 그림은 WSL2구조 인데요. Windows에서 Windows를 띄워야하는 경우는 Hyper-V를 통해 띄우게 되며, Linux계열을 띄울 경우 Ubuntu Linux Kernel을 공유받는 Application이 뜨게 됩니다!
Window는 Hypervisor위에서 구동될 수도 하드웨어 위에 직접 구동될 수도 있습니다. 조건에 따라 좀 다른데요.
1. WSL2가 활성화된 경우, 위의 그림처럼 Windows와 Linux커널 모두 Hypervisor위에 구동됩니다.
2. WBS(Virtualization-Based Security)가 활성화 된 경우는 Windows NT커널은 Hypervisor위에 구동되어 Windows Core Isolation기능을 통해 보안을 위한 가상화가 적용됩니다.
3. 기본 설정 혹은 Windows 10 Home 에디션인 경우, Windows는 하드웨어 위에서 NT커널이 직접 구동이 된다고 보시면됩니다!
Window위에서 Linux를 사용하기 위해 VMWare같은 툴을 사용해 무거운 Linux Guest OS를 올려 사용하시거나 Azure VM, AWS EC2에서 Linux Machine을 임대해서 돈을 내면서까지 사용하지 않아도 이렇게 WIndows에서 간편하게 Linux Terminal을 띄워 Linux를 사용할 수 있는 방법이 바로 WSL입니다! WSL을 이용하면, Ubuntu, OpenSUSE, Kali, Debian, Arch Linux등의 Linux배포판을 설치하고 사용할 수 있습니다! 우리는 Linux배포판을 사용해서 설치해볼거에요!
# Step1-0, Window정보 체크하기!
주의할점은 WSL2를 사용하기 위해 요구되는 Windows build는 20262이상입니다! Nvidia에서 제공되는 WSL CUDA Toolkit Document에서는 최소 20145권장으로 21390 혹은 그 이상의 Windows Build를 요구한다고 합니다.
Windows + R키를 눌러서 실행창을 켜주시구요. winver을 입력합니다. 그 후 확인버튼을 눌러서 windows정보를 확인해주세요~!
# Step1, WSL2 설치하기
1. PowerShell을 관리자로 실행시켜주세요.
Windows PowerShell에서 wsl --install 명령어로 WSL을 설치해보시면 됩니다! 이 명령은 최신 Linux커널을 다운로드하고 기본 배포판으로 Ubuntu를 설치하고 WSL2를 기본값으로 설정하게 해줍니다!
# Step2, Linux 커널 업데이트
WSL이 이미 깔려있다면, microsoft WSL설치 설명서에 보시면 4단계 - Linux 커널 업데이트 패키지 다운로드 항목에서 Linux 커널 최신 패키지를 다운받아주세요!
이전 버전 WSL의 수동 설치 단계
wsl install 명령을 사용하지 않고 이전 버전의 Windows에 WSL을 수동으로 설치하는 방법에 대한 단계별 지침입니다.
learn.microsoft.com
커널 업데이트 패키지를 실행하시면 아래와 같은 창이 뜨시는데요. Next 그리고 Finish를 눌러주세요!
# Step3, WSL2를 기본 버전으로 설정하기.
PowerShell을 열고 이 명령을 실행하여 새 Linux배포를 설치할 때 WSL 2를 기본 버전으로 설정합니다!
wsl --set-default-version 2
# Step4, Windows Terminal을 설치해주세요.
Windows Terminal은 PowerShell/ 명령 프롬프트/ Azure CLI/ WSL을 이용한 bash등 command shell을 통합한 명령줄 어플리케이션입니다! 장점은 여러 탭 기능이 생겨서 좋습니다! 그리고 기본 터미널로 설정할 수도 있습니다~! 그리고 디자인 변경도 가능해요! 저는 우분투 터미널 느낌이 나게 하기 위해 보라색으로 색상을 변경하였습니다 ㅎㅎㅎ
Windows Terminal은 Microsoft Store에서 설치가 가능합니다! 아래 링크에 들어가서 Store에 있는 공식 앱을 설치해주세요!
https://apps.microsoft.com/detail/windows-terminal/9N0DX20HK701?hl=ko-kr&gl=KR
Windows Terminal - Microsoft Store 공식 앱
Windows 터미널은 명령 프롬프트, PowerShell 및 WSL과 같은 명령 줄 도구 및 셸 사용자를 위한 최신의 빠르고 효율적이며 강력한 생산성의 터미널 응용 프로그램입니다. 주요 기능으로는 여러 탭, 창,
apps.microsoft.com
# Step5, Linux 배포판을 설치하자!
Linux 배포판도 Microsoft Store에서 원하는 Linux배포판을 설치할 수 있습니다! 저는 포스팅 기준으로 최신인 Ubuntu 22.04.2 LTS버전을 설치해서 깔아 두었습니다! 아래 링크로 이동하여 설치해주세요~!
https://apps.microsoft.com/detail/ubuntu-2204-lts/9PN20MSR04DW?hl=ko-kr&gl=KR
Ubuntu 22.04.2 LTS를 설치후 다운로드하세요. 설치가 완료되면 Windows Terminal의 탭에서 선택해서 Ubuntu를 사용하실 수 있습니다! 만약에 보이지 않으신다면 하단에 Ubuntu로 검색해서 찾아주세요~!
ubuntu설치가 시작되는데요. 여러분의 username, 그리고 비밀번호를 입력해주세요. 이것은 Window사용자 이름과 관련없이 개별적으로 Linux에 적용되는 것입니다! 지정한 사용자이름은 Ubuntu 실행 시 기본 사용자가 되고 시작시 자동 로그인이 됩니다!
위의 그림은 이미 제가 conda설정까지 해놓은 화면입니다! 여러분들이 사용자이름을 지정하셨다면 위의 그림에 있는 (base)는 나타나지 않는 게 정상입니다. 옆에 탭키를 누르면 어떤 명령프롬프트를 사용할껀지 리스트가 있네요!
저는 Ubuntu를 기본값으로 설정해서 window terminal을 누를 때마다 Ubuntu터미널이 기본으로 나온답니다~!
여기까지 WSL2로 window에서 linux설치하는 법에 대해 살펴보았습니다!
ps 에러가 나시는 분들 참고!
ps) 혹시 ubuntu를 깔았는데, 이상한 에러가 뜨시는 분!
제어판 > 프로그래밍 기능 > 왼쪽에 Windows 기능 켜기/끄기 > Linux용 Windows 하위 시스템이 체크되어있는지 확인해주세요~! 체크해주시고 Reboot하신후 터미널을 다시 키시면 정상 작동 되실거에요!
그래도 에러뜬다!! 하시는분들은 체크를 해제한 후 Reboot, 다시 체크하신 후 Reboot하시면 정상 작동됩니다!! 제가 후자 케이스로 해결했습니다~!!
긴 포스팅 읽어주셔서 감사합니다~! 다음 포스팅에서는 WSL2환경에서 anaconda로 딥러닝환경 구축하기 포스팅을 이어서 써보겠습니다 ~!!!
'Operating System > Linux' 카테고리의 다른 글
개발속도를 업시켜주는 zsh 여러 플러그인(zsh-autosuggestions, highlight style, fzf, zsh-z) (0) | 2023.12.12 |
---|---|
WSL2 Ubuntu22.04 터미널에서 zsh설치해서 터미널 꾸며보기~ (0) | 2023.12.12 |
WSL2로 Ubuntu22.04환경에서 poetry 설치하기 (0) | 2023.12.03 |