[WSL] 끔찍한 혼종의 윈눅스

Hoon;·2022년 4월 13일
2
post-thumbnail

- WSL ❓

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

기존엔 Oracle VM, VMware 같은 프로그램을 사용하여 가상 환경을 구성하여 사용하게 되면 내 PC와 자원이 분리가 되어 리눅스가 실행됩니다.
WSL을 사용하게 되면 Docker와 비슷한 개념으로 내 PC의 자원을 공유하여 같이 사용하게 됩니다.

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

- WSL 설치 📀

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. 기본 설정(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. 실행, 종료 배치파일 생성 & 가상 ip 부여하기

  • WSL 종료하기


    wsl 목록 확인
> wsl -l -v


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

> wsl -t (머신 이름 입력)



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

메모장을 열어주세요

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

wsl -t 머신 이름 입력



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


고생하셨습니다!👏👏

profile
S/W Engineer & Developer | 블로그 이전 - https://bakingdevlog.tistory.com

0개의 댓글