라벨이 WSL인 게시물 표시

WSL, Docker Desktop 관련 Distro의 크기 줄이기

WSL, Docker Desktop 관련 Distro의 크기 줄이기 1테라도 부족해 지금도 가난하지만 더 가난했던 어린 시절, 컴퓨터는 무조건 중고였던 때에는 40GB, 20GB, 심지어 4GB 하드 디스크를 사용했던 적도 있다. 특히 4GB짜리를 사용할 때엔 초등학교 4학년이었는데, 당시 재밌게 즐겼던 워록 이라는 FPS 게임을 설치하기 위해 크레이지 아케이드 , 서든어택 을 지우고 시스템 드라이브에서 필요 없다고 판단되는 폴더들을 최대한 지운 뒤 1 당시 시골 깡촌에서 ADSL 회선의 느려터진 초당 120KBps로 600MB 가까이 되는 워록 설치 파일을 받고, 또 그걸 설치하고 실행하고 하는 생 쇼를 했었다. 시간이 지나 현재 1테라 NVMe SSD 3개, 512GB SSD 한 개, 2테라 하드디스크 한 개를 합해 총 5.5TB를 굴리고 있는 입장에서 보면 말도 안 되는 짓거리이긴 하나, 4GB 하드를 사용한 기간은 길지 않았고 어차피 게임 한두개에 어도비 플래시 MX 또는 8, 포토샵, Visual Studio 2008을 설치하기만 했으면 됐기에 큰 문제는 아니었다. 그러나 이제는 문제가 된다. 5.5TB도 부족하기 때문이다. 심지어 어디 한 곳에 쏠려 있으면 분산이라도 시키겠는데, 용도별로 딱 딱 정리된 상태가 이렇다. 각 디스크에 많아야 200GB 여유가 있고, 평균 100GB정도 여유가 있다. 용량이 왜 이리 부족할까 근 10년간 쌓인 용량이기에 한 번은 도대체 뭐가 들어있어서 이렇게 용량이 부족할까 하여 TreeSize 툴로 분석을 해봤다. 당시 C드라이브는 일단 Visual Studio 2019 가 100기가바이트를 넘게 차지했고, Adobe, Cocos, Unity, Unreal, … 등과 NuGet package cache , ReSharper cache , WSL Ubuntu distro , Docker Distro , … 아무튼 많았다. 다른 드라이브는 주로 개발에 필요한 라이브러리들,...

WSL2 방화벽 문제?

이미지
제가 이전 포스트 에서 작성한 방법대로 잘 써먹던 중, 어느 순간부터 다시 WSL2에서 인터넷이 안 되기 시작했습니다. 여전히 핑은 됐고 여타 포트들로 통신도 되지만 80포트, 443포트 등 필수 포트에 연결이 안 되는 증상이었죠. 더 최악은, 갑자기 IIS까지 작동을 안 하기 시작했다는 겁니다. 생각해보니 재부팅 한 뒤로부터 이런 것 같은데 문제는 제가 재부팅을 아무리 자주 해봐야 최소 3일에 한 번 정도밖에 안 한다는 것이죠. 원인 찾기 어쩌겠습니까. 최대한 기억을 더듬어서 재부팅 전에 제가 시스템에 뭘 했는지 찾아보는 수밖에요. IIS는 왜 갑자기 작동을 안 해? 일단 급한 불부터 끄기로 했습니다. IIS가 작동을 안 하는 문제에 대한 해결책을 우선 찾아야했습니다. 정확히 어떻게 작동을 안 하느냐 하면, IIS의 80포트, 443포트에 바인딩된 사이트가 윈도우 부팅 시부터 중지 상태로 있으며, 시작하려 해도 다른 프로세스에서 파일을 사용 중 이라며 시작되지 않았습니다. 예전 같았으면 파일은 옘병할 무슨 파일? 이라며 삽질을 오지게 했겠으나, 지금까지의 경험 덕분에 여기서 말하는 파일 이 포트 라는 것을 깨닳을 수 있었습니다. 그래서 일단 어떤 프로세스가 80포트를 점유하고 있는지 알아보기 위해 터미널을 켰습니다. grep 을 사용하기 위해 우분투 디스트로를 사용했습니다. ~$ netstat.exe -aon | grep :80 실행해보니 다음과 같은 결과가 뜨고, 어떤 PID가 해당 포트를 점유중인지 알 수 있었습니다. [1] 해당 PID를 점유하는 프로세스가 뭔지 작업 관리자에서 찾아보니 svchost.exe . 어떤 서비스인지 알기 위해 우클릭 후 서비스 보기를 눌러보니 iphlpsvc 가 잡히더군요. 해당 서비스가 뭔지 구글링해보니 포트포워딩에 관여하는 서비스라고 설명돼있었습니다. 그래서 생각했죠. netsh . 근 10년 전에 게리모드 서버를 운영하며 포트포워딩이 필요했던 때가 있어서 윈도우에서 포트포...

WSL2 ping은 먹는데 인터넷은 안 된다?

이미지
WSL2가 나온 직후부터 저를 계속해서 괴롭혀오던 문제가 있습니다. 바로 Hyper-V에서 새 가상 스위치를 추가하는 시점부터 WSL이 제대로 작동하지 않는다는 것이죠. 정말 가능한 모든 경우의 키워드를 들고 스택오버플로우, 깃헙 이슈 페이지, MSDN, 마소 서포트 센터 등 오만 곳을 다 돌아다녔으나 해결하지 못했습니다. 핑은 되는데 인터넷은 안 된다? 그러다가 어느 순간 핑이 되기 시작했습니다. 아마 Interface Metric을 조정했을 때였던 것으로 기억합니다. 핑이 비허용되지 않은 어떤 곳에도 핑을 날릴 수 있었습니다. [1] Name Resolution 그러나 여전히 도메인 URL에 대한 핑은 안 됐었는데, 이건 /etc/wsl.conf 에 아래와 같은 사항을 등록한 뒤, [ network ] generateResolvConf = false /etc/resolv.conf 를 우선 지우고 ~$ sudo rm /etc/resolv.conf /etc/resolv.conf 에 네임서버를 추가한 뒤 ~$ sudo vim /etc/resolv.conf # /etc/resolv.conf 내용 # # nameserver 8.8.8.8 # nameserver 1.1.1.1 WSL이 시작할 때마다 resolv.conf를 삭제하거나 덮어쓰는 것을 방지하기 위해 읽기 전용 속성을 /etc/resolv.conf 에 할당했습니다. ~$ sudo chattr +i /etc/resolv.conf 여전히 인터넷은 불가 그러나 여전히 인터넷은 불가능했죠. IP로 핑을 날리던 게 이제 ping google.com 과 같이 도메인으로 날릴 수 있게 되었다는 차이 뿐이었습니다. 미쳐버릴 노릇 저한테 이런 현상은 그야말로 미쳐버릴 노릇이었습니다. 사설 GitLab을 운영중이기 때문에 Docker를 지울 수 없었고, 개발 상의 이유로 Hyper-V의 가상 스위치를 제거할 수도 없었으며, 마찬가지의 이유로 WSL [2] 도 자...