윈도우 WSL 및 리눅스 설치
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 다운 및 설치
- CentOS 7.9 (저는 이걸로 설치하겠습니다.)
https://github.com/mishamosher/CentOS-WSL/releases/tag/7.9-2111 👈 (새 창) - 다른 OS는 Microsoft Store에서 검색하여 간단히 설치 가능합니다.
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 등의 무거운 세팅을 하지 않고도 간단히 리눅스를 실행하여 테스트를 진행 해 볼 수 있으며,
가상머신의 리소스 부족 현상을 조금이나마 줄 일 수 있다는 점이 좋은거 같습니다.
고생하셨습니다!👏👏