ระบบไฟล์ของ Linux Subsystem อยู่ที่ไหนใน Windows 10


22

ค่อนข้างชัดเจนว่าระบบไฟล์ '10 "โฮสต์" ของ Windows ติดตั้ง/mnt/c/จากมุมมอง "Linux" แต่เป็นไปได้ไหมที่จะเข้าถึงระบบไฟล์ "Linux" จาก Windows? ถ้าใช่มันอยู่ที่ไหน


ผลลัพธ์จากอะไรคือสิ่งที่mountอยู่ในbashเปลือก?
DavidPostill

สิ่งนี้จะไม่ส่งคืนร่องรอยใด ๆ :rootfs on / type rootfs
มีไฟสี่ดวงใน

อืมมม ตกลง. เกี่ยวกับcat /etc/fstabอะไร
DavidPostill

ไม่น่าเสียดายจากมุมมอง "ลินุกซ์" มันกำลังมองหานั่งอยู่บนฮาร์ดแวร์:LABEL=cloudimg-rootfs / ext4 defaults 0 0
มีสี่ไฟ

ตกลง. ไม่มีความคิดอื่น
DavidPostill

คำตอบ:


24

ระบบไฟล์รูทเดียวอยู่ที่นี่จนกว่าจะมีการอัปเดต Windows 10 Fall Builders (เปิดตัวในเดือนตุลาคม 2017):

%LOCALAPPDATA%\Lxss\rootfs

ตัวอย่างเช่น, C:\Users\Vigo\AppData\Local\Lxss\rootfs\

จุดเมานท์อื่น ๆ อยู่ในระดับหนึ่งขึ้นไปในlxssไดเรกทอรี ตัวอย่างเช่นคุณเองไดเรกทอรีภายในลินุกซ์จะอยู่ในhome%LOCALAPPDATA%\Lxss\home

เริ่มต้นจากการอัพเดต Fall Builders เป็นไปได้ที่จะติดตั้ง Linux มากกว่าหนึ่งอินสแตนซ์และรันแบบขนาน อินสแตนซ์ที่มีอยู่ (หรือที่รู้จักในชื่อดั้งเดิม) จะยังคงอยู่ในไดเรกทอรี แต่อินสแตนซ์ใหม่ที่สร้างจะอยู่ภายใต้:

% LOCALAPPDATA% \ Packages \ <distribution_specific_name> _ <random_string> \ LocalState \ rootfs

ตัวอย่างเช่นการติดตั้ง Ubuntu 18.04 ของฉันอยู่ภายใต้

CanonicalGroupLimited.Ubuntu18.04onWindows_ 79rhkp1fndgsc
ไดเรกทอรี

คำเตือน : ระวังที่จะไม่สร้าง , แก้ไขหรือลบไฟล์ที่อยู่ภายใต้lxssหรือการกระจายต้นไม้ที่เฉพาะเจาะจงจาก Windows

การสำรวจและอ่านไฟล์เป็นการดำเนินการที่ไม่เป็นอันตรายเท่านั้น ดูหน้าบล็อก Microsoft นี้สำหรับรายละเอียด

โปรดทราบว่าเริ่มจาก Build 1903 มีทางเลือกอื่นในการเข้าถึงไฟล์ของการแจกจ่ายที่รันอยู่ซึ่งไม่แสดงปัญหาที่กล่าวถึงก่อนหน้านี้

เพียงใช้เส้นทาง\\wsl$\<distribution_specific_name>\และคุณจะสามารถสร้างและแก้ไขไฟล์ได้ AppData ยังคงไม่รองรับการเข้าถึงไฟล์ด้วยบิลด์ 1903


มันถูกซ่อน :)
Y2K

ฉันไม่สามารถเพิ่มลงใน Quick Access ของ Windows Explorer เป็นบุ๊คมาร์คเพื่อให้ค้นหาได้ง่าย
John

4
เวอร์ชันคัดลอกวางที่ผู้ใช้สามารถใช้ได้:%USERPROFILE%\AppData\Local\Lxss\rootfs
Silveri

3
คำเตือน: ตาม Microsoft คุณไม่ควรแก้ไขระบบไฟล์ linux ของคุณโดยใช้แอปพลิเคชัน Windows blogs.msdn.microsoft.com/commandline/2016/11/17/...
Korey

1
คุณสามารถทำให้ส่วนแรกของเส้นทางนั้นง่ายขึ้นโดยใช้%LOCALAPPDATA%แทน%USERPROFILE%\AppData\Local
Herohtar

8

ทุกวันนี้คุณสามารถติดตั้งลีนุกซ์หลายรุ่นได้ ดังนั้นการกระจายแต่ละครั้งจะมีระบบไฟล์ของตัวเองอยู่ในโฟลเดอร์ที่แตกต่างกัน

  • หากคุณติดตั้ง linux distributions จาก Windows Store ระบบไฟล์จะอยู่ภายใต้ %USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
  • หากคุณติดตั้งย้ายหรือทำซ้ำการแจกจ่าย linux โดยใช้LxRunOfflineหรือรุ่นใด ๆ ของWSLDistroLauncherระบบไฟล์จะอยู่ในโฟลเดอร์ใด ๆ ในคอมพิวเตอร์ของคุณ

การรับข้อมูลจาก Registry

ตำแหน่งของแต่ละระบบไฟล์สามารถหาได้จาก Windows Registry ข้อมูลอยู่ภายใต้

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

คุณสามารถเริ่มหน้าต่าง PowerShell และดำเนินการคำสั่งต่อไปนี้เพื่อรับตำแหน่งของระบบไฟล์

PS> (Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | ForEach-Object {Get-ItemProperty $_.PSPath}) | select DistributionName, @{n="Path";e={$_.BasePath + "\rootfs"}}

คุณจะได้รับตารางพร้อมข้อมูลดังต่อไปนี้

DistributionName Path
---------------- ----
Ubuntu           C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
Ubuntu-18.04     C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
mydistro         C:\wsl\mydistro\rootfs

ใช้ lxRunOffline

LxRunOfflineเป็นเครื่องมือสำหรับจัดการการแจกแจงลินุกซ์ที่ติดตั้งบน WSL คุณสามารถใช้ LxRunOffline เพื่อรับไดเรกทอรีที่ใช้โดยการกระจายการติดตั้ง

# lxrunoffline get-dir -n <name of the distro>

C:\> lxrunoffline get-dir -n backup
c:\wsl\installed\backup

C:\> lxrunoffline get-dir -n Ubuntu
C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

2

สำหรับ WSL2 คุณสามารถเข้าถึงโฮมไดเร็กตอรี่ได้จาก windows explorer เช่นนี้:

\\wsl$

ขออภัยที่จะมาสายในงานปาร์ตี้!


ควรอัปเดตเป็นคำตอบที่ถูกต้อง
getglad

1

เวอร์ชันย่อยของระบบย่อย linux ติดตั้งระบบไฟล์ภายใต้packagesพา ธ เต็มจะเป็นดังนี้:

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\root

หรือ:

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\home\myLinuxUserName

... ขึ้นอยู่กับจุดที่แน่นอน การค้นหาไดเรกทอรี.bashrcจะเปิดเผยเส้นทางเหล่านี้ ...

หรือใช้readlink .ภายในเชลล์ลินุกซ์เพื่อโพสต์เส้นทางลินุกซ์ปัจจุบันเป็นเส้นทาง 'DOS' ไปยังคลิปบอร์ดของ windows วางที่ที่เหมาะสมเพื่ออ่านเส้นทางกายภาพจริง


1

ดูเหมือนว่า Microsoft ได้ทำการเปลี่ยนแปลง / ซ่อนมันอีกบางส่วนขณะนี้อยู่ที่:

% USERPROFILE% \ AppData \ Local \ Packages \ CanonicalGroupLimited.UbuntuonWindows _ ????????????? \ LocalState \ rootfs

เนื่องจากอาจมีการเปลี่ยนแปลงในอนาคตเพียงทำตามคำแนะนำของ PGP ในการค้นหาไฟล์ของไฟล์. profile หรือ. bashrc


1

ฉันสร้างสคริปต์นี้ที่เปิดโฟลเดอร์ WLS ใน Explorer

cd C:\Users\Naotho Machida\AppData\Local\Packages\Canonical*\LocalState\rootfs\etc
explorer %cd%

เพียงบันทึกเป็น yourScript.cmd แล้วเรียกใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.