설정에서 기능을 활성화 한 후 Windows 10에 Ubuntu 하위 시스템을 설치했지만 드라이브에서 Ubuntu 파일 시스템 루트 디렉토리는 어디에 있습니까?
wsl.exe
예를 들어, wsl chmod 600 ~/.ssh/id*
- 않는 하지 윈도우 파일 시스템을 통해 이러한 폴더에 파일을 복사합니다.
설정에서 기능을 활성화 한 후 Windows 10에 Ubuntu 하위 시스템을 설치했지만 드라이브에서 Ubuntu 파일 시스템 루트 디렉토리는 어디에 있습니까?
wsl.exe
예를 들어, wsl chmod 600 ~/.ssh/id*
- 않는 하지 윈도우 파일 시스템을 통해 이러한 폴더에 파일을 복사합니다.
답변:
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/c
Bash 셸 환경에 있습니다.
출처 : Dustin Kirkland의 블로그 , howtogeek
attrib -s -h lxss
시스템 디렉토리로 표시를 해제 하여 이를 숨길 수 있습니다 .
/mnt/<drive>/
안전하지만 Windows에서 Linux 파일 시스템에 액세스하는 것은 안전하지 않으므로 배포 파일 시스템에 쉽게 액세스 할 수 없습니다.
이것은 Bash가 처음 소개 된 이후로 변경된 것으로 보이며 Windows 스토어의 배포에는 적용되지 않거나 내 홈 디렉토리가 다른 위치에 있기 때문에 모든 시스템에서 일치하지 않을 수도 있습니다.
%localappdata%\lxss\home\{username}
또는:
C:\Users\{user}\AppData\Local\lxss\{username}
{user}
Windows 사용자 이름은 어디에 있으며 {username}
UNIX 사용자 이름은 설치 중에 설정됩니다.
따라서 루트 디렉토리는 다음과 같습니다.
%localappdata%\lxss
루트 디렉토리는 디렉토리에서 Windows 탐색기에 표시되지 않을 수 있습니다 %localappdata%
. 탐색기의 '주소 표시 줄'에 입력하여 액세스 할 수 있어야합니다.
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
나를 위해 일한 유일한 것은이었다 %localappdata%\lxss\home\{username}
(가) 어디에, {username}
당신의 BASH 사용자 이름입니다 설치 중에했다. 어떤 이유로 숨겨진 폴더의 lxss를 표시하면에 표시가 거부되고 Windows 및 BASH 사용자 이름으로 C:\Users\WINDOWS-USER\AppData\Local\
전체 C:\
경로를 제공해 도 작동하지 않습니다.
작동하는 바탕 화면 바로 가기를 만드십시오.
bash
위치 표시 줄 에 입력하여 열린 폴더의 파일 탐색기 창에서 Bash를 빠르게 열 수 있습니다 .
충분 해.
또한 상황에 맞는 메뉴 항목을 추가 할 수 있습니다. 상황에 맞는 메뉴에 바로 가기를 추가하면 더 많은 RAM이 사용되므로 필요하지 않은 경우 개인적으로 권장하지 않습니다.
https://www.howtogeek.com/270810/how-to-quickly-launch-a-bash-shell-from-windows-10s-file-explorer/
ls -a
추가 한 파일이 표시되지 않았습니다. Bash는 Windows 파일 탐색기를 통해 드롭 된 파일을 인식하지 못하여 Windows에 bash를 설치하려는 목적을 완전히 물리 쳤습니다.