Linux 용 Windows 서브 시스템에서 Ubuntu 파일 시스템 루트 디렉토리는 어디에 있습니까?


389

설정에서 기능을 활성화 한 후 Windows 10에 Ubuntu 하위 시스템을 설치했지만 드라이브에서 Ubuntu 파일 시스템 루트 디렉토리는 어디에 있습니까?


24
참고 사항 (WSL 팀) 은 Linux 배포 데이터 폴더에 쪼개지 말 것을 강력히 권장합니다 ). 당신은 데이터 손실을 경우 및 / 또는 손상 우리는이 상호 운용성 시나리오를 개선하기 위해 노력하고 우리의 블로그에 진전 발표 할 가능성이 높다 : blogs.msdn.microsoft.com/commandline
리치 터너

@RichTurner 필자는 매우 구체적인 (그리고 성가신) 이유가 있음을 발견했습니다. .ssh 폴더에 잘못된 권한을 반복적으로 표시하는 회사 정책은 구조를 회사 스크립트에 "off limit"로 표시해야한다는 의미입니다. 그러나 일반적으로-나는 당신에게 동의합니다.
Danny Staple

최신 업데이트가있는 상자 에서처럼 보이지만 더 이상 발생하지 않습니다.
Danny Staple

2
@DannyStaple 당신은 윈도우, 사용의 리눅스 배포판에서 파일 / 폴더에 대한 사용 권한을 변경해야하는 경우 wsl.exe예를 들어, wsl chmod 600 ~/.ssh/id*- 않는 하지 윈도우 파일 시스템을 통해 이러한 폴더에 파일을 복사합니다.
Rich Turner

@RichTurner : 이미 NTFS 메타 데이터를 터널링하는 방법과 같은 Linux 메타 데이터를 터널링하지 않는 이유는 무엇입니까?
Mehrdad

답변:


421

Windows 스토어에서 설치된 Ubuntu의 경우 :

저장소를 통해 설치하는 각 배포는 해당 응용 프로그램의 appdata 디렉토리에 설치됩니다. 예를 들면 다음과 같습니다. C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState -benhillis

Linux 용 Windows Subsystem의 이전 반복에서 Ubuntu 파일 시스템은 %localappdata%\Lxss예를 들어 Windows C:\Users\Username\AppData\Local\Lxss에서 사용자 이름 으로 사용자 이름을 바꿉니다. 파일 시스템 지원에 대한 WSL 블로그 게시물을 참조하십시오 .

WSL에서 사용하는 기본 파일 시스템은 VolF입니다. Linux 시스템 파일과 Linux 홈 디렉토리의 내용을 저장하는 데 사용됩니다. 따라서 VolF는 Linux 권한, 기호 링크, FIFO, 소켓 및 장치 파일을 포함하여 Linux VFS가 제공하는 대부분의 기능을 지원합니다.

VolF는 %LocalAppData%\lxss\rootfs백업 저장소로 사용하여 VFS 루트 디렉토리를 마운트하는 데 사용됩니다 . 또한, 몇 가지 추가 VolFs는 특히 포인트가 존재 탑재 /root하고 /home있는 사용하여 탑재 %LocalAppData%\lxss\root하고 %LocalAppData%\lxss\home, 각각. 이러한 별도의 마운트의 이유는 WSL을 설치 제거 할 때 홈 디렉토리가 기본적으로 제거되지 않으므로 거기에 저장된 모든 개인 파일이 보존되기 때문입니다.

주의

Windows 앱 및 도구를 사용하여 Linux 서브 시스템 내에서 파일을 작성 / 수정하면 Ubuntu 서브 시스템에서 데이터 손상 및 데이터 손실이 발생할 수 있습니다! ( 이주의 사항을 제안 해 준 Rich Turner 에게 감사합니다 !) 이것은 절대적으로 지원 되지 않습니다 . 동일한 블로그 게시물에서 :

Windows와의 상호 운용성

VolF 파일은 위에서 언급 한 디렉토리의 Windows에서 일반 파일로 저장되지만 Windows와의 상호 운용성은 지원되지 않습니다. Windows에서 이러한 디렉토리 중 하나에 새 파일이 추가되면 VolF에 필요한 EA가 없기 때문에 VolF는 파일을 어떻게 처리해야하는지 모르고 단순히 무시합니다. 많은 편집자가 기존 파일을 저장할 때 EA를 제거하여 WSL에서 파일을 다시 사용할 수 없게합니다.


Windows 파일 시스템은 /mnt/cBash 셸 환경에 있습니다.

여기에 이미지 설명을 입력하십시오

출처 : Dustin Kirkland의 블로그 , howtogeek


14
파일 시스템에 Lxss가 숨겨져있었습니다. 이제 바로 가기를 만들었지 만 여전히 숨길 수없는 것 같습니다.
Ogaday

3
@Ogaday는 시스템 디렉토리로 표시되어 있으므로 속성 창을 사용하여 숨기기를 해제 할 수 없습니다. attrib -s -h lxss시스템 디렉토리로 표시를 해제 하여 이를 숨길 수 있습니다 .
developerbmw

3
광산이 다른 위치에 있기 때문에 시스템간에 위치가 변경되었거나 다른 것처럼 보입니다. 내 위치와 함께 아래에 게시했습니다.
NicholasJohn16

8
@souravc Windows 앱 및 도구를 사용하여 LXSS 내에서 파일을 작성 / 수정하지 않도록 강력히 권장하는 답변 맨 위에 중요한 메모를 추가해 주시겠습니까? 데이터 손상 및 손실 가능성이 높습니다!
Rich Turner

5
위에서 언급 한 게시물을 읽으십시오 ( blogs.msdn.microsoft.com/commandline/2016/11/17/…) . WSL에서 Windows 파일 시스템에 액세스하는 것이 안전하므로 드라이브를 아래에 마운트하는 것은 /mnt/<drive>/안전하지만 Windows에서 Linux 파일 시스템에 액세스하는 것은 안전하지 않으므로 배포 파일 시스템에 쉽게 액세스 할 수 없습니다.
Rich Turner

51

이것은 Bash가 처음 소개 된 이후로 변경된 것으로 보이며 Windows 스토어의 배포에는 적용되지 않거나 내 홈 디렉토리가 다른 위치에 있기 때문에 모든 시스템에서 일치하지 않을 수도 있습니다.

%localappdata%\lxss\home\{username}

또는:

C:\Users\{user}\AppData\Local\lxss\{username}

{user}Windows 사용자 이름은 어디에 있으며 {username}UNIX 사용자 이름은 설치 중에 설정됩니다.

따라서 루트 디렉토리는 다음과 같습니다.

%localappdata%\lxss

루트 디렉토리는 디렉토리에서 Windows 탐색기에 표시되지 않을 수 있습니다 %localappdata%. 탐색기의 '주소 표시 줄'에 입력하여 액세스 할 수 있어야합니다.


내 컴퓨터에서 "C : \ Users \ {user} \ AppData \ Local \ Lxss \ {username}"또는 "% localappdata % \ Lxss \ home \ {username}"을 찾을 수 없지만 "C : \ Users \ {user } \ AppData \ Local \ lxss \ {username} "이 작동합니다. IE는 NOT "Lxss" "lxss"를 사용
user601770 조 Codeswell

내 시스템에는 rootfs 하위 디렉토리가 있지만 rootfs / home은 비어 있고 ./home에는 내 사용자 계정과 파일이 있습니다. % localappdata % \ lxss로 이동 한 다음 거기에서 탐색하여 어떤 레이아웃이 있는지 확인하고 해당 주소를 직접 탐색하면 lxss 디렉토리가 숨겨져있는 문제를 피할 수 있습니다.
jla

1
@ JoeCodeswelluser601770 이상합니다. Windows 파일 시스템은 일반적으로 대소 문자를 구분하지 않습니다. 내가 입력 할 수 있습니다 % LOCALAPPDATA % \ Lxss 또는 % LOCALAPPDATA % \ lxss 둘 다 %의 HOMEPATH %로 \의 AppData \ 로컬 \의 lxss 이동
JLA

8
이 폴더 (lxss)는 숨겨진 폴더보기가 활성화 된 경우에도 AppData \ Local의 폴더 목록을 Windows 탐색기 목록에 표시하지 않았습니다. lxss 폴더를 탐색기 바에 수동으로 붙여서 여기에 파일을 가져와야했습니다. 예를 들어 "url"폴더를 편집하십시오
Colin D

또는 바탕 화면으로 이동하여 "새로 만들기-> 바로 가기"를 마우스 오른쪽 단추로 클릭하고 C : \ Users \ yourname \ AppData \ Local \ lxss \ home \ yourname
Colin D

13

MS Market에서 Linux를 설치하는 경우 :

그들은 아래에 배포판을 배치했습니다.

$ cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/\{861c29b4-ebe2-49a5-8a22-7e53a27934a0\}/BasePath
C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

다음에 의해 정의 된 기본 배포판 :

bash# cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/DefaultDistribution
{861c29b4-ebe2-49a5-8a22-7e53a27934a0}

리눅스 루트는 더 깊다 :

c:/Users/user/AppData/Local/Packages/46932SUSE.openSUSELeap42.2_022rs5jcyhyac/LocalState/rootfs

추신. Cygwin을 사용하여 레지스트리 키를 탐색했습니다.

동일한 목표에 PowerShell을 사용하는 경우 명령은 다음과 같습니다.

# obtain the value of the ID of the default Linux distribution (and store it in a variable to avoid escaping characters issues):
$DEFAULT_LXSS_ID = (Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\ -name DefaultDistribution)

# which will have a value like:
echo  $DEFAULT_LXSS_ID
{bde539d6-0c87-4e12-9599-1dcd623fbf07}

# display the directory containing the rootfs Windows directory (mapped to the / Linux directory)
Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\$DEFAULT_LXSS_ID -name BasePath | Format-List -property "BasePath"
%LocalAppData%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState

PPS. https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/


5

나를 위해 일한 유일한 것은이었다 %localappdata%\lxss\home\{username}(가) 어디에, {username}당신의 BASH 사용자 이름입니다 설치 중에했다. 어떤 이유로 숨겨진 폴더의 lxss를 표시하면에 표시가 거부되고 Windows 및 BASH 사용자 이름으로 C:\Users\WINDOWS-USER\AppData\Local\전체 C:\경로를 제공해 도 작동하지 않습니다.

작동하는 바탕 화면 바로 가기를 만드십시오.


와우 좋은 팁, 같은 문제가 있었다
니콜라스 Mommaerts

4

bash위치 표시 줄 에 입력하여 열린 폴더의 파일 탐색기 창에서 Bash를 빠르게 열 수 있습니다 .

충분 해.

또한 상황에 맞는 메뉴 항목을 추가 할 수 있습니다. 상황에 맞는 메뉴에 바로 가기를 추가하면 더 많은 RAM이 사용되므로 필요하지 않은 경우 개인적으로 권장하지 않습니다.

https://www.howtogeek.com/270810/how-to-quickly-launch-a-bash-shell-from-windows-10s-file-explorer/


나를 위해 작동하지 않습니다. 명령 프롬프트를 열고 bash를 시작합니다.
blablatros

@blablatros는 그렇습니다.하지만 마녀의 bash 폴더에는 탐색기 바 bash에 쓰고 Enter를 누를 때 탐색기가 열려 있습니다. 내 문서 폴더에서 Windows 탐색기 폴더를 열고 위치 표시 줄에 bash를 작성하면 해당 폴더에 이미 우분투 bash가 열립니다 :)
Kangarooo

1
@ Kangarooo : Windows 10 GUI를 통해 파일에 액세스하고 싶습니다. 위의 대답에서 Windows 10 파일 탐색기를 통해 bash 디렉토리를 찾는 방법을 찾았으므로 외부 하드 드라이브에서 해당 디렉토리로 일부 파일을 복사했습니다. 그러나 bash 터미널을 열고을 누를 때 ls -a추가 한 파일이 표시되지 않았습니다. Bash는 Windows 파일 탐색기를 통해 드롭 된 파일을 인식하지 못하여 Windows에 bash를 설치하려는 목적을 완전히 물리 쳤습니다.
thinksinbinary 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.