IT/System Digging

[wsl] wsl d 드라이브로 옮기고 계정 정상화하기

심량 2022. 7. 15. 01:39

wsl 을 d 드라이브로 옮기는 일은 dongle94님의 글에 잘 설명되어 있습니다.

다만, 이 방법을 따라하면 딱 하나 안되는게 있습니다. 기존 계정으로 로그인되지 않고 root 계정으로 로그인됩니다..

이리저리 뒤져본 결과 해결책을 찾아 옮기는 방법을 간단히 정리하고 계정 정상화하는 방법을 기록하겠습니다.

  • 가정
    • c:, d: 드라이브 2개로 나눠져 있고 d 드라이브 용량이 충분히 크게 남아있다고 가정합니다.
  • Win+R 키 눌러서 cmd 실행
  • 현재 내가 설치한 wsl 이름 확인
    • wsl -l --all
    • Ubuntu(기본값)
    • dongle94 님 글과 달리 제 환경은 리눅스 이름이 달라서 실행이 되질 않았습니다. 이 명령으로 확인하니 Ubuntu 로 되어 있는 것을 확인할 수가 있습니다.
  • d 드라이브로 운영체제 이미지 내보내기
    • wsl --export 명령에 위에서 확인한 wsl 이름을 첫번째 인자로 적어줍니다. 두번째 인자는 저장할 파일명입니다.
    • wsl --export Ubuntu d:\u2004.tar
  • 내보낸 이미지 d 드라이브에 복원하기
    • wsl --import Ubuntu-20.04 d:\wsl\ubuntu_20_04\ d:\u2004.tar
  • 기존 wsl 삭제
    • wsl --unregister 명령에 위에서 확인한 wsl 이름을 적어줍니다.
    • 복원하지 않고 삭제하면 제 pc 에서는 삭제가 되지 않았습니다. 
    • wsl --unregister Ubuntu
    • wsl -l --all 로 기존 wsl 이름인 Ubuntu 가 삭제되어 안보이는지 확인합니다. 혹시나 삭제가 안 된 것 같으면 wsl --unregister Ubuntu 명령을 다시 실행해줍니다. 지금 복원한 Ubuntu-20.04 를 지우면 절대 안됩니다 --
  • 기본 로그인 계정 변경
    • 이 상태로 wsl 이나 bash 를 실행하면 root 계정으로 로그인됩니다. 물론 su 원래계정명 으로 원래 계정도 사용할 수 있지만 root 계정이 활성화되는 것이 꺼림칙합니다. 다음 명령으로 얼른 바꿔줬습니다.
    • wsl1
      • ubuntu config --default-user 원래사용자명
      • ※ wsl2 에서도 실행은 되는데.. c 드라이브 새 배포판을 설치해버립니다.
    • wsl2
      • touch /etc/wsl.conf
        • [user]
          default=my_id_쓰세요
    • 이 작업까지 마친 후에 wsl 이나 bash 를 실행하시면 원래 계정으로 로그인할 수 있습니다.