[WSL1/WSL2] 홈 디렉터리 위치 :: WSL 홈으로 Windows 파일 옮기기
WSL1에서 C드라이브에 접근해보자
Windows의 드라이브들은 /mnt
디렉터리에 마운트되어 있다.
C드라이브에 접근해보자.
cd /mnt/c
OS Error 13은 파일 시스템의 권한 문제가 생겼을 때 발생합니다.
보시다시피 권한 문제가 발생할 수 있으니 조심해야 한다.
Windows에서 WSL1으로 접근해보자
Windows에서는 아래의 Packages 폴더 안의 어딘가에 WSL1이 위치한다.
C:\Users\[사용자명]\AppData\Local\Packages\
내가 깐 배포판명이 포함된 폴더가 그 배포판의 WSL이 실제로 위치하는 경로이다.
만약 Ubuntu 깔았다면 Packages폴더 아래에 Ubuntu라는 단어가 들어간 폴더명이 보일 것이다. 바로 그 폴더가 Ubuntu WSL의 위치다.
그 경로에서 LocalState
폴더 안의 rootfs
폴더가 바로 WSL1의 Root와 동일한 경로이다.
C:\Users\[사용자명]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
따라서 Ubuntu WSL1의 디렉터리는 윈도우의 아래의 경로에 있는 폴더와 같다.
C:\Users\[사용자명]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\[우분투사용자명]
발생할 수 있는 파일의 권한 문제
WSL에서 C 드라이브로 접근했을 때처럼 권한 문제가 발생한다. Windows 폴더를 열어서 강제로 WSL1 경로에 파일을 붙여 넣으면 서로 다른 OS여서 그런지 권한이 자주 꼬인다. 그렇기 때문에 다른 파일 시스템을 쓰는 OS에서 (Windows가 예상하지 못하는 방법으로) 옮기는 경우 권한 문제를 주의하자.
Windows에서 생성한 파일을 Ubuntu WSL 경로로 Windows 탐색기를 이용해서 직접 옮겨보자
문제가 발생하는 상황
- Windows에서 텍스트 파일을 생성해보자
- 생성한 파일을 Windows에서 Ubuntu WSL 홈 폴더 아래에 옮겨보자
이때 Ubuntu WSL을 켜서 NewFile.txt
의 권한을 확인해보면?
Windows 파일을 그냥 옮겨왔기 때문에 위와 같이 아무런 권한이 존재하지 않는다.
- 권한이 저렇기 때문에 WSL에서 그 파일을 열거나 수정하지 못한다.
권한 문제의 해결법
꼬인 권한은 chmod
명령어로 다시 부여해서 해결할 수 있다.
한번 모든 권한을 부여하고 읽어보자.
777
권한 부여
- 이제
NewFile.txt
를 읽어보자!
출력된 텍스트 마지막에 "%"는 Windows의 Line Ending(CRLF)을 리눅스에서 읽으려고 해서 깨진 것이다.
이제는 NewFile.txt
의 내용을 정상적으로 출력할 수 있다.
추천하는 방법
위와 같이 윈도우 상에서 그냥 WSL1 경로로 파일을 옮기면 권한이 이상해진다.
WSL1을 실행한 후에 마운트된 /mnt/c
에서부터 WSL 홈으로 복사하자.
WSL2의 경로를 Windows 탐색기로 열어보자
WSL1과 다르게 WSL2는 Windows에서 직접 이동해서 사용할 수 없다. 존재하는 위치는 위의 방법과 같은 방법으로 찾을 수 있지만 파일 공유 프로토콜이 달라져서 그런지 직접적으로 사용하진 못한다.
직접 이동해서는 사용하지 못하고 다른 방법을 사용해야 한다. 바로 네트워크 연결을 통해서 여는 방법이다. 윈도우의 파일탐색기(explorer.exe)를 호출해서 한방에 열 수 있다.
현재 Working Directory를 네크워크를 통해 Windows 탐색기로 여는 방법
아래의 명령어를 WSL에서 실행하면 현재 작업 중인 위치를 네트워크 연결을 통해서 Windows에서 열어준다.
explorer.exe .
explorer.exe
는 Windows 탐색기이고 그 옆에.
은 현재 Directory를 뜻한다. 합하면 Windows 탐색기로 내 현재 작업 위치를 열어주라는 명령어이다.
댓글
이 글 공유하기
다른 글
-
Terminal과 Shell
Terminal과 Shell
2022.04.08 -
Vim에서 Vundle 삭제하기
Vim에서 Vundle 삭제하기
2021.03.31 -
[리눅스] apt, apt-get의 사용법 비교
[리눅스] apt, apt-get의 사용법 비교
2020.05.01 -
[리눅스] scp 기본 사용법
[리눅스] scp 기본 사용법
2020.04.15