Home [ETC] wsl2 필수 명령어 모음
Post
Cancel

[ETC] wsl2 필수 명령어 모음

사용자 추가 명령어

wsl 설치시 root계정으로 시작할 경우가 존재한다. 이 때 사용자를 추가하는 방법은 다음과 같다. 만약 추가되어 있더라도, 처음 접속하는 곳이 root로 되어 있으면 변경해줄 수 있다.

사용자를 추가하는 방법은 ubuntu내에서 사용자를 추가하는 것이다.

  1. ubuntu 터미널을 연다.
  2. sudo adduser <username> 을 친다.
1
sudo adduser jhyoon

마지막으로 Y를 눌러 유저를 생성한다.

 

3.user계정을 sudo 그룹에 추가한다.

1
sudo usermod -aG sudo jhyoon

 

wsl bash가 실행되지 않을 때

이 때는 다양한 문제가 있을 수 있다.

먼저 윈도우에서 wsl이 사용 가능하도록 되어 있는지 확인해야 한다. powershell에서 아래 명령어를 쳐본다.

1
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

사용이 가능하다고 하면, 다음 단계로 넘어간다.

  • 가상 메모리가 할당되어 있는지 확인

참고 : https://qkrm.tistory.com/3

사용 가능하다고 되어 있어도 오류가 난다면, 가상 메모리가 할당되어 있는지 확인해본다. 먼저 windows + R 을 눌러 실행창을 띄우고, SystemPropertiesAdvanced를 친다.

 

그리고, 성능 부분에 설정을 클릭한다.

 

그 후 고급에 들어가 가상 메모리 편집을 클릭한다. 그러면 본인이 사용하고자 했던 디스크에 가상메모리가 할당되어 있는지 확인할 수 있다.

 

나의 경우 D:에 wsl을 설치했는데, 페이징 파일이 없었다. 그래서 시스템이 관리하는 크기 를 선택해주어 시스템에서 자동으로 메모리를 할당하도록 했다.

이를 다 하고 나면, 재부팅하라고 뜨는데, 재부팅하고, wsl을 실행하면 된다.

 

 

다른 디렉토리에 wsl 경로 설정

다른 드라이브에 wsl 경로를 설정하고자 한다면, 먼저 기본으로 설정되어 있는 것을 해제해야 한다.

powershell을 연다.

1
2
3
4
5
6
> wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-18.04           Running         2
  Ubuntu-20.04           Stopped         2
  docker-desktop-data    Stopped         2
  docker-desktop         Stopped         2

 

다른 배포판을 기본으로 설정하고자 하면 -s 또는 --set-default를 사용한다.

1
wsl -s Ubuntu-20.04

 

하나의 배포판을 다른 디렉토리로 옮기기 위해서는 배포판을 압축파일로 만든 후 옮겨야 한다.

  • wsl --export {배포판 이름} {내보낼 파일 이름}
1
wsl --export Ubuntu-18.04 Ubuntu-18.04.tar

이렇게 하면 현재 디렉토리에 Ubuntu-18.04.tar 파일이 생성된다.

이를 다른 폴더로 import 시켜준다.

  • wsl --import {배포판 이름} {배포판 위치 지정} {배포판 파일 이름}
1
wsl --import Ubuntu-18.04 D:\wsl\ Ubuntu-18.04.tar

그 후, 배포한다.

1
wsl -d Ubuntu-18.04

여기서 에러가 나지 않고, 우분투 계정으로 로그인이 되면, 잘 수행된 것이다.

 

이렇게 하고 나면, 기본 계정이 root로 되어 있다. root에서 작업을 하는 것은 위험하므로 일반 계정을 기본 계정으로 지정해주어야 한다.

 

ubuntu 18.04 를 기준으로

  • ubuntu1804 config --default-user {계정 이름}

 

만약 ubuntu 20.04라면

  • ubuntu2004 config --default-user {계정 이름}

 

wsl 진입이 불가능할 때

powershell에서도 wsl을 진입할 수 없을 때 사용하는 방법이 있다.

1
wsl -u root

root 계정으로 진입하는 것으로, 이것을 사용해도 진입이 안된다면….

 

sudoers 파일 오류

sudoers 파일은 살짝만 오류나도 시스템이 전부 고장날 수 있다. 그래서 조심스럽게 수정해야 하지만, 피치못할 사정으로 수정을 했는데 오류가 나는 경우 복구하는 방법을 설명한다.

  • https://meoru-tech.tistory.com/m/70

중요한 것은 sudoers 파일은 쓰기 권한을 주면 안된다. 쓰기 권한을 주면 바로 오류가 난다고 한다.

만약 wsl을 사용하다가 오류가 난 것이라면, 위에 wsl -u root를 사용하여 wsl 시스템에 진입해야 한다.

진입을 해서 nano 나 vim 등을 사용하여 /etc/sudoers 파일을 수정한다.

1
nano /etc/sudoers

또는

1
pkexec visudo

pkexec를 사용했는데, 아래와 같은 오류가 난다면 nano를 통해 수정해야 한다.

1
Error getting authority: Error initializing authority: Could not connect: No such file or directory
This post is licensed under CC BY 4.0 by the author.