상세 컨텐츠

본문 제목

윈도우 WSL 및 리눅스 설치

Windows/WSL

by Hoonjo 2023. 6. 14. 15:25

본문

WSL에 대하여 알아보고, 윈도우에 WSL을 설치하고 리눅스(CentOS7)을 세팅해보겠습니다.

- WSL 이란❓

Windows Subsystem for Linux 입니다.
윈도우에서 리눅스 커널을 설치하여 리눅스를 사용 할 수 있게 만들어주는 MS에서 제공하는 기술입니다.

기존엔 Oracle VM, VMware 같은 프로그램을 사용하여 가상 환경을 구성하여 사용하게 되면

내 PC와 자원이 분리가 되어 리눅스가 실행됩니다.
WSL을 사용하게 되면 Docker와 비슷한 개념으로 내 PC의 자원을 공유하여 같이 사용하게 됩니다.

즉, CPU와 메모리, 디스크를 윈도우와 같은 레벨로 사용하며 리눅스에서 윈도우의 파일시스템에도 접근할 수 있습니다.


- WSL 설치하기 (install) 📀

1. 윈도우 PowerShell을 관리자 권한으로 오픈

Ctrl + Shift + Enter를 눌러도 되고
마우스 오른쪽 클릭하여 관리자 권한으로 실행을 눌러도 됩니다.

 

2. Linux용 Windows 하위 시스템 사용하기

  • 아래 명령어 복사해서 붙여 넣고 실행해주세요
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

 

3. Virtual Machine 기능 사용하기

  • 아래 명령어 복사해서 붙여 넣고 실행해주세요
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

  • PC 재부팅 필수! (윈도우 업데이트가 생겼다면 윈도우 업데이트도 필요합니다.)
    (윈도우 11로 OS를 업그레이드 필요 X)
  • wsl 기본 버전 선택
wsl --set-default-version 2

 

4. Linux 커널 업데이트 패키지 다운로드

x64용 패키지 다운👈(z클릭!)
ARM64용 패키지 다운👈(클릭!)
https://docs.microsoft.com/ko-kr/windows/wsl/install-manual
 링크를 못 믿겠다면 공식 페이지 클릭 👈

뭘 받아야 할지 모르겠다면..
systeminfo를 입력하여 시스템 종류를 찾아보세요!

 

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

  • 방금 다운받으신 파일 설치 해주시면 됩니다.

 

6. 리눅스 OS 다운 및 설치

 

7. CentOS 7.9 설치

다운받은 파일을 압축 해제 -> 원하는 경로로 옮기기

-> .exe 파일 원하는 이름으로 변경

(이름 띄어쓰기나 특수문자는 안하시는게 좋습니다.... feat. PKM 박제..)

-> 실행

실행하시면 자동으로 설치가 이루어집니다.


- WSL 설정 및 실행 ⚙

1. WSL 기본 설정(systemctl, sshd)

다시 클릭하여 실행

패키지 최신 업데이트

yum -y update

systemctl 패치
초기 systemctl 명령어가 정상 수행되지 않습니다.
아래 패치가 필요합니다.
vi 편집기를 이용하여 아래 스크립트를 생성 해 줍니다.

vi systemctl_patch.sh


파일명 : systemctl_patch.sh

#!/bin/bash
mv /usr/bin/systemctl /usr/bin/systemctl.old
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl
chmod +x /usr/bin/systemctl
exit 0


파일 권한 변경

chmod 770 systemctl_patch.sh


실행

./systemctl_patch.sh

ssh 재설치

yum remove -y openssh-server openssh-clients
yum install -y openssh-server openssh-clients

sshd 데몬 config 수정

vi /etc/ssh/sshd_config

위와 같이 수정하여 줍니다.
ESC + :wq (내용 저장)


ssh 키 생성

ssh-keygen -A


ssh 서비스 중지 & 실행

systemctl restart sshd


ssh 서비스 확인

netstat -ntlp

sshd 데몬을 통한 22 port가 open되었는지 확인

 

2. WSL 실행, 종료 배치파일 생성 & 가상 ip 부여하기

WSL 종료하기

  • wsl 목록 확인
wsl -l -v


Running 상태이면 종료를 시켜줍니다.
종료 명령어 👇

wsl -t (머신 이름 입력)



계속 명령어 입력하기 귀찮습니다.... 그죠?


"메모장을 열어주세요"

파일명 : CentOS7_ShutDown.bat (꼭 확장자 이름은 bat로 저장하셔야 합니다.)

WSL 기동하기

배치파일을 만들겠습니다. 메모장을 열어주세요

파일명 : CentOS7_StartUp.bat (꼭 확장자 이름은 bat로 저장하셔야 합니다.)
eth0의 IP는 DHCP이기 때문에 고정 IP를 할당 해 주기 위해 아래와 같은 작업이 필요합니다.

wsl -d (머신 이름) -u root ip addr add 192.168.254.16/24 broadcast 192.168.50.255 dev eth0 label eth0:1
netsh interface ip add address "vEthernet (WSL)" 192.168.254.100 255.255.255.0



저장 후 실행해주세요

WSL 실행 상태 확인 (PowerShell)

기동 된 모습

ip가 설정 된 모습

IP 확인 (Linux)
ifconfig


eth0 NIC를 활용하여 바인드되어 eth0:1 nic가 생성되고, ip는 192.168.254.16 입니다.


- SSH 원격 접속 📡

1. sshd 서비스 실행

systemctl start sshd

2. putty를 이용하여 접속 해 봅니다.

 


접속 성공!🎉🎉

  • 윈도우와 파일시스템을 함께 쓰고 있는 부분을 통해 자원 공유를 간단히 확인 해 볼 수 있습니다.

VM 등의 무거운 세팅을 하지 않고도 간단히 리눅스를 실행하여 테스트를 진행 해 볼 수 있으며,
가상머신의 리소스 부족 현상을 조금이나마 줄 일 수 있다는 점이 좋은거 같습니다.

고생하셨습니다!👏👏