2022-11-18

wsl2에 archlinux 설치

wsl2에 2022-11-18 현재 공식적으로 배포중인 linux distro에 archlinux는 없다.

하지만 linux 배포판중 archlinux를 가장 좋아하기때문에 archlinux를 설치해보았다.

docker에서 배포중인 archlinux 이미지를 사용하여 기본 설정하고 export 한 다음에 wsl에 등록하였다.

docker는 이미 설치되어 있다고 가정한다.


1. docker archlinux image 가져오기

> docker pull archlinux


2. archlinux container 실행

> docker run -it --name archlinux-wsl archlinux


3. archlinux 기본 설정

3.1. update 및 sudo 설정

# pacman -Syu
# pacman -Sy sudo vi
# visudo

3.2. 아래 내용을 찾아 주석을 해제한다.

%wheel ALL=(ALL:ALL) ALL

3.3. user 계정 생성. 아래 명령에서 userid는 사용할 user 계정을 쓴다.
# useradd -G wheel,users -m userid
# passwd userid

3.4. 아래와 같이 passwd, group shadow, gshadow 파일 존재 여부와 권한 확인

# ls -l /etc/passwd /etc/shadow /etc/group /etc/gshadow
-rw-r--r-- 1 root root 672 Nov 18 12:23 /etc/group
-rw------- 1 root root 598 Nov 18 12:23 /etc/gshadow
-rw-r--r-- 1 root root 873 Nov 18 12:19 /etc/passwd
-rw------- 1 root root 523 Nov 18 12:19 /etc/shadow

3.5. shadow, gshadow 파일이 없다면 아래 명령으로 생성

# pwconv
# grpconv

3.6. 권한이 다르다면 아래 명령으로 권한 설정

# chmod 644 /etc/passwd
# chmod 644 /etc/group
# chmod 600 /etc/shadow
# chmod 600 /etc/gshadow

3.7 root 계정 로그인 막기. root의 login shell을 /bin/bash에서 /usr/bin/nologin으로 변경한다.

# vi /etc/passwd

root:x:0:0::/root:/usr/bin/nologin

3.8 wsl.conf 설정

# vi /etc/wsl.conf

아래 내용을 삽입한다. userid는 3.3에서 사용한 userid와 동일하게 사용한다.

[user]
default = userid

3.8. docker image에서 나오기

# exit


4. docker에서 archlinux image export 하기

> docker export --output archlinux-wsl.tar archlinux-wsl


5. wsl에 archlinux import하기. archlinux-wsl.tar의 내용을 archlinux라는 이름으로 c:\archlinux 경로에  추가할것이다. 원하는 이름과 경로를 사용한다.

> wsl --import archlinux c:\archlinux archlinux-wsl.tar


6. wsl로 archlinux 실행. 

> wsl -d archlinux


6.1 만약 This account is currently not available. 같은 에러가 발생한다면 wsl.conf에 userid설정이 적용 안된것이니 아래 명령을 사용한다.

> wsl --shutdown
> wsl -d archlinux


7. wsl에 기본 linux를 archlinux로 설정

> wsl --set-default archlinux




댓글 없음:

댓글 쓰기