WSL에서 자주 발생하는 문제와 해결 방법
1. 이 기사의 내용
WSL(Windows Subsystem for Linux)을 사용하고 있어 자주 있는 트러블과 그 대처 방법을 소개합니다.
새로운 트러블이 생겼을 때는, 수시로, 추기해 가고 싶습니다.
1-1.사용 환경
2.좋은 문제와 대책
2-1. PowerShell에서 WSL에 로그인할 수 없다 / 갑자기 WSL이 떨어진다
PowerShell에서 WSL을 시작한 후 오류 메시지 등이 표시되지 않고 로그인 할 수 없거나 갑자기 강제 로그 아웃되는 현상이 발생할 수 있습니다.
원인은 불분명합니다만, 아래의 순서로 LxssManager를 기동하는 것으로, 문제를 해소할 수 있습니다.
> net start LxssManager
※LxssManager가 떨어지지 않은 경우도 있는 것 같고, 그 경우는 LxssManager를 stop 후에 start한다
> net stop LxssManager
> net start LxssManager
2-2. WSL에서 nvidia-docker를 시작할 수 없음(GPU에 연결할 수 없음)
WSL에서 nvidia-docker run 명령을 실행하면 다음과 같은 메시지가 표시되고 Docker 컨테이너를 시작하지 못할 수 있습니다.
※오류 메시지 전문은 삼가할 수 없고, 일부만입니다.
docker: Error response from daemon: OCI runtime create failed: container_linux.go ~
WSL에서 nvidia-docker로 GPU 연결하는 경우에는 표준 드라이버가 아닌 CUDA on Windows Subsystem for Linux (WSL) - Public Preview 설치가 필요하지만 드라이버의 자동 업데이트로 WSL 비 호환 드라이버로 업데이트되는 경우가있는 것 같습니다. .CUDA on Windows Subsystem for Linux (WSL) - Public Preview에서 드라이버를 다운로드하고 업데이트하여 문제를 해결할 수 있습니다.
2-3. WSL에서 시작한 Docker 컨테이너의 웹 서버에 localhost로 연결할 수 없음
호스트 시스템의 localhost와 Docker 컨테이너의 localhost가 다르기 때문에 주소 확인이 불가능하기 때문입니다.
아래 2 점의 대응으로 문제를 해결할 수 있습니다.
2-3-1. 과제 개요
2-3-2. 해결 방법 개요
2-3-3. 서버를 "0.0.0.0"으로 LISTEN하는 방법 (예)
Gulp
gulpfile.js에 다음 줄을 추가합니다.
host: "0.0.0.0"
구체적인 예:
// Local server pointing on build folder
const connect = () => {
return plugins.connect.server({
root: config.destDir,
host: "0.0.0.0",
port: config.port || 3333,
livereload: true
});
};
2-4.mkfifo에서 FIFO를 생성할 수 없음
WSL로 FIFO를 생성 할 때 생성 대상 디렉토리를 Windows 파일 시스템으로 설정하면 다음 오류가 발생하여 FIFO 생성에 실패합니다.
$ mkfifo /mnt/c/Users/<user name>/fifo_test
mkfifo: cannot create fifo '/mnt/c/Users/<user name>/fifo_test': Operation not supported
~/
및 /tmp
와 같은 Linux 시스템 영역에서만 생성 할 수 있습니다.$ cd ~
$ mkfifo fifo_test
$ ls
fifo_test
2-5. 네트워크에 연결할 수 없음
WSL2에서 다음과 같이 네트워크에 연결할 수없는 경우
/etc/resolv.conf
에 nameserver 8.8.8.8
를 지정하면 해결되었습니다.8.8.8.8은 Google이 공개하는 공개 DNS입니다.
8.8.8.8이 아니어도 설정에 따라서는 접속할 수 있는 경우도 있는 것 같습니다만, Windows Update등의 갱신으로 드물게 변화가 생기는 것 같습니다.
연결할 수 없는 경우의 예
$ host google.com
;; connection timed out; no servers could be reached
연결할 수 있는 경우의 예
$ host google.com
google.com has address 142.250.207.110
google.com has IPv6 address 2404:6800:400a:805::200e
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.
3.사이고에게
DeepLearning 환경으로 WSL을 활용하는 중에 발생하는 트러블과 대책을 정리해 왔습니다.
Insider Preview는 Windows 업데이트가 자주 발생하기 때문에 새로운 문제도 발생할 수 있지만, 지금까지 활용해 온 중에서는 생각했던 것처럼 문제는 적은 인상입니다.
4. 관련 링크
2-1. PowerShell에서 WSL에 로그인할 수 없다 / 갑자기 WSL이 떨어진다
2-2. WSL에서 nvidia-docker를 시작할 수 없음(GPU에 연결할 수 없음)
2-3. WSL에서 시작한 Docker 컨테이너의 웹 서버에 localhost로 연결할 수 없음
2-5. 네트워크에 연결할 수 없음
Reference
이 문제에 관하여(WSL에서 자주 발생하는 문제와 해결 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryoma-jp/items/daa7965683279c42de8c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)