[WSL2] 새 계정 추가하기

최가윤·2024년 9월 15일
0

WSL2

목록 보기
4/4
post-thumbnail

우당탕탕~!

구축한 GPU 서버를 함께 사용하기 위해 계정을 추가해보자. 지난 번의 설치 이후로 발생한 문제는
1. GPU 누수 현상: 다른 서버에서는 14GB로 작동하는 코드가 현재 서버의 모든 vram을 다 사용함
2. Driver 인식 불가: root 계정과 새로운 계정에서는 nvidia-smi 명령어가 작동하지 않음
이다.

그래픽 드라이버를 지우고 새로 깔아야하나 심란하게 지내다가 간단하게 2번을 해결해서, 이 글에서는 2번의 해결과정에 대해 기록을 남기고자 한다

0. Root 계정으로 이동

WSL2를 이용한 Ubuntu는 기본적으로 사용자 계정으로 로그인이 된다. 그리고 이 초기 사용자 계정은 sudo 권한을 사용할 수 있다. 그렇다... 나같은 알못은 자연스럽게 root 계정으로 로그인 할 일이 없어 존재를 잊고 사는 거였다...

먼저 root 계정의 비밀번호를 초기화해준다

sudo passwd root

이후 해당 비밀번호를 이용해 root 계정으로 전환한다.

su root

이제 root 계정에서 nvidia-smi 명령어를 입력하면, Command 'nvidia-smi' not found, but can be installed with: ... 오류가 발생한다.

하하하 초기 사용자 계정에서는 정상적으로 열리는 드라이버가 왜 root 계정에서는 안 되는가? 열심히 구글링을 해봤지만 이유를 알 수 없었는데, 놀랍게도 GPT o1이 해결해주었다. ...GPT가 이렇게 똑똑한데 감히 내가 코딩을 공부하는게 맞을까?

1. NVIDIA-SMI 경로 설정

root 계정에서 nvidia-smi 명령어가 정상적으로 작동하지 않았던 이유는 PATH 환경변수의 문제이다. 초기 기본 계정에는 PATH 환경변수에 nvidia-smi의 경로가 포함되어있지만, 다른 계정에서는 포함되어 있지 않기에 발생한다.

따라서 PATH 환경변수를 확인하고 추가해주자!

먼저 nvidia-smi의 경로를 확인하자.

which nvidia-smi

내 경우에는 /usr/lib/wsl/lib/nvidia-smi으로 나타났다.

그리고 이제 각 계정의 PATH 환경변수를 확인해보자

# 각 계정에서 실행
echo $PATH

초기 사용자 계정에는 nvidia-smi를 포함한 많은 경로가 잡히지만, root 계정는 아니었다. 따라서 root 계정에서도 경로를 잡을 수 있도록, /etc/profile 파일을 수정해주자!

vi /etc/profile

# profile
...
export PATH=$PATH:/usr/lib/wsl/lib

# :wq!로 빠져나오기
source /etc/profile

이제 nvidia-smi이 정상적으로 작동한다! 감격...

각 계정별로 ~/.bashrc을 수정해도 되지만, 나는 계정을 새로 만들 때마다 수정하는 것은 번거로울 것 같아서 root 계정에서 일괄 적용을 하기로 결정했다.

  • 참고: 사용자별 설정(~/.bashrc)은 시스템 전체 설정(/etc/profile)보다 우선 적용된다.

2. CUDA Toolkit 확인

이전 글을 참고해 다음 명령어를 실행한다

ls /usr/local/ | grep cuda

다행히도 CUDA-12.0이 잘 잡힌다. root 계정으로 가서 다음 명령어를 입력해주자.

vi /etc/profile

# profile
...
export PATH=$PATH:/usr/lib/wsl/lib

# :wq!로 빠져나오기
source /etc/profile

3. cuDNN 확인

이전 글을 참고해 다음 명령어를 실행한다

nvcc --version

안 잡힌다. 하지만 항목 1을 생각해보면 안 잡히는 이유는 간단하다. 여기도 PATH 설정이 필요하기 때문이다~

vi /etc/profile

# profile
...
export PATH=/usr/local/cuda-12.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64:$LD_LIBRARY_PATH

# :wq!로 빠져나오기
source /etc/profile

이제 cuDNN도 잘 잡힌다.
혹시몰라 conda 가상환경까지 설정하고 Pytorch까지 설치해 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')까지 실행해보았는데, 일단 cuda를 잘 찾는 거 같다.

4. 새 계정 추가하기

새 계정을 추가하는 방법은 useraddadduser가 있다. 가장 큰 차이는 useradd는 사용자의 홈디렉토리를 자동 생성하지 않아 별도로 설정해주어야 한다는 점, adduser는 자동으로 생성해준다는 점이다.

따라서 간단하게 adduser 명령어로 새 계정을 추가했다

sudo adduser {계정명}

새 계정에 sudo 권한을 추가하는 방법은 다음과 같다

# sudo 그룹으로 추가
usermod -aG sudo {계정명}

# sudoers 파일의 root ALL... 아래에 추가
vi /etc/sudoers
{계정명} ALL=(ALL:ALL) ALL

참고자료

profile
Study AI (2022 - )

0개의 댓글

관련 채용 정보