-
WSL home directory 변경wsl 2022. 2. 11. 18:00
/mnt/하위 디렉토리들은 wsl를 사용할때 통신하는데에 오래 걸려 반응이 느리다는 것이다.
따라서 npm 반응속도를 높이기 위해 /mnt/c/....에 있던 홈 디렉토리를 변경하기로 했다.
하지만 그 과정이 순탄하지 않았다.
npm 느림 포스트에서 언급했지만 좀 더 자세히 기록해볼까 한다.
WSL 홈 디렉토리 변경
usermod 사용
구글링하여 홈 디렉토리를 변경하는 방법을 찾아보았다. 보아하니 user마다 홈 디렉토리가 다르고 그것을 바꿔주는 과정이었다.
$ usermod -d /newhome/username username
이 명령어를 사용하면 username이라는 사용자의 홈 디렉토리를 /newhome/username로 바꾸는 것이다.
하지만 역시 한번에 먹히면 재미가 없나보다.
usermod: user username is currently used by process 359
이미 프로세스에서 username이 사용 중이라고 끄고 다시 시도하라는 것 같다.
superuser로 바꾸고 다시 시도해 보았으나 결과는 똑같았다.
kill 명령어로 프로세스를 죽여도 보았으나 어째서인지 su 모드인 터미널 창도 같이 꺼져서 다른 방법을 시도하기로 했다.
/etc/passwd 편집
/etc/passwd에 user에 대한 정보와 홈디렉토리 등 정보가 있다. 하지만 vim과 같은 에디터로 직접 수정하는 것보다
vipw 명령어를 사용하는 것이 좋다고 한다. 동시에 여러 사용자가 이 정보를 수정하려고 할때 발생하는 충돌을 막기 위함이라고 한다.
$ sudo vipw
원하는 에디터를 고르라고 나온다. 본인은 vim을 사용하였다.
(-s 옵션은 /etc/passwd의 shadow 버젼을 수정하는 것이라고 한다. shadow 버전을 수정할 것이 아니니 -s 옵션은 빼주자)
이후에 vim으로 passwd가 열린다. 그럼 원하는 사용자의 홈디렉토리를 수정하고 저장하고 나오면 된다.
이렇게 홈디렉토리를 변경해주었다.
원래 쓰던 파일들 옮기기
이전 홈 디렉토리에서 사용하던 중요한 파일들을 옮긴다.
본인은 .ssh 내에 정보들과 프로젝트 디렉토리 등 복사하여 옮겼다.
홈 디렉토리를 옮기니 발생한 문제들
1. PATH 문제
사용하던 디렉토리가 변경되니 zsh와 같은 여러 프로그램들의 경로도 바꿔 줘야했다. 특히 nvm과 npm은 $HOME 변수에 따라 설치되기 때문에 재설치 해주어야 하고 .zshrc 내용도 바꿔줬다.
이참에 mnt/ 밑에 있는 프로그램들을 거의 안쓰도록 설정했다.
//vim .zshrc 후 추가 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$HOME/bin:/mnt/c/Users/Jee/AppData/Local/Programs/'Microsoft VS Code'/bin:/mnt/c/Windows
vscode의 code 명령어를 쓰기위해 /mnt/c/Users/Jee/AppData/Local/Programs/'Microsoft VS Code'/bin와
explore.exe(윈도우 파일 탐색기)를 쓰기 위해 /mnt/c/Windows 만 /mnt/의 하위 디렉토리로써 추가하였다.
2. starting directory 문제
분명 홈 디렉토리는 변경되었는데, wsl terminal을 켤 때, 이전 홈 디렉토리에서 시작되는 것이었다.
근데 또 cd 명령어를 입력하면 새로운 홈 디렉토리인 ~ 로 이동하였다.
- startingDirectory 설정하기
설정에 들어가면 settings.json에 접근할 수 있다.
"startingDirectory": "//wsl$/Ubuntu-20.04/path/to/dir",
다음과 같이 줄을 추가해주면 된다고 하나, 이상하게도 해당 디렉토리가 아닌 완전 root 디렉토리에서 시작했다.
어떤 사람들은 윈도우 하위 디렉토리만 설정 가능하다는 사람도 있다.
따라서 다른 방법을 찾아 보았다.
2. commandline 설정
"commandline" : "wsl.exe ~"
다음과 같이 commandline 설정을 추가해주니 정상적으로 홈 디렉토리에서 시작되었다.
wsl을 실행시키면서 ~에서 시작하라는 명령을 추가해준 것 같다.
'wsl' 카테고리의 다른 글
WSL 외부 접속 설정하기 - ssh, 포트포워딩 (8) 2022.07.29