WSL (ubuntu / windows) AppData \ Local \ Lxss ไม่ได้ซิงค์กลับไปที่ ubuntu จริงหรือ?


10

หากคุณสร้างไฟล์ใน bash (แตะที่ /root/foo.txt) ที่ปรากฏในไดเรกทอรีที่ซ่อนอยู่ในAppData\Local\Lxss\ การแก้ไขจะไม่มีการเปลี่ยนแปลงใน bash ยิ่งกว่านั้นถ้าคุณเปลี่ยนมันอีกครั้งในทุบตีไฟล์ที่คุณเปลี่ยนผ่าน explorer ที่ถูกบล็อก!

มีจุดเชื่อมต่อจริงC:\หรือไม่?

ภาพจริงซ่อนอยู่ที่ไหน ?? (เช่นเดียวกับที่ระบบไฟล์เขียนกลับไปเป็นไฟล์รูปภาพในความเป็นจริง?)

0:14:29 ในhttps://channel9.msdn.com/Events/Build/2016/C906นี้ดูเหมือนว่าจะอ้างว่าคุณจะสามารถเข้าถึงได้อย่างเต็มที่จาก explorer 0:16:30 พวกเขาแสดงให้คุณAppData\Local\Lxss\ แต่ไม่เคยพูดถึงว่าไฟล์ของคุณจะไม่ซิงค์ตามที่ฉันอธิบาย


มันน่าเศร้าที่ไม่มี linux-binary หรือสิ่งที่สามารถใช้ sys call ที่พวกเขาสอน ntkernel นอกคุก (กลับไปที่ cygwin สำหรับสิ่งนั้น :() แต่อย่างน้อยพวกเขาก็ต้องติดตั้งระบบไฟล์ root ที่เขียนได้บน windows C: \ เมื่อ ครบรอบเป็นทองคำ
sabgenton

ฉันเดาว่าจะมีแซมบ้าเสมอ :(
sabgenton

1
เห็นได้ชัดว่ามันไม่ได้มีไว้เพื่อใช้ในทางนั้น github.com/Microsoft/BashOnWindows/issues/45
wbkang

ช่างเป็นหม้อ cosmicdanดูเหมือนจะพูดแค่สิ่งที่ฉันทำในตอนท้ายของความคิดเห็น ดูเหมือนว่า Mac จะยังคงติดตั้งที่ดีกว่าตอนนี้
sabgenton

คำตอบ:


4

ไฟล์ใหม่ที่สร้างขึ้นผ่าน Windows Explorer อาจไม่ปรากฏในทุบตีเนื่องจากไม่มีแอตทริบิวต์ LXSS NTFS พิเศษ

เมื่อ LXSS สร้างไฟล์ในรูท LXSS มันจะแนบข้อมูลเพิ่มเติมไปยังไฟล์เหล่านั้นผ่านทางแอตทริบิวต์ของ NTFS เพื่อจัดเก็บสิ่งต่าง ๆ ที่ไม่สามารถแสดงได้ด้วยคุณสมบัติ NTFS มาตรฐานเช่นสิทธิ์ในการใช้ไฟล์ลินุกซ์ หากสิ่งเหล่านี้ขาดหายไปไฟล์จะไม่ปรากฏขึ้น

สิ่งนี้ได้รับการสนับสนุนจากความจริงที่ว่าถ้าคุณสร้างไฟล์เป็น bash และทำสำเนาไฟล์ด้วย Windows Explorer ไฟล์นั้นจะปรากฏเป็น bash นี่น่าจะเป็นเพราะคุณสมบัติพิเศษทั้งหมดของ LXSS ถูกทำซ้ำกับไฟล์

เลเยอร์ระบบไฟล์ LXSS ก็ดูเหมือนว่าจะแคชระบบไฟล์ดังนั้นรายการไดเรกทอรีใน bash จะไม่สะท้อนสถานะที่แท้จริงของระบบไฟล์หากไฟล์ถูกเพิ่มหรือลบจนกว่าเทอร์มินัลทุบตีจะหยุดทำงาน (ซึ่งสิ้นสุดเซสชัน LXSS ในบริการ LXSS และล้างแคช)


3

ตกลงดูเหมือนว่าสิ่งที่AppData\Local\Lxss\สามารถแก้ไขได้และจะซิงค์กลับไปที่เซสชันทุบตี Ubuntu

คุณต้องปิดการทุบตีอย่างสมบูรณ์ และคุณไม่สามารถสร้างไฟล์ใหม่ได้

แปลกอย่างที่ Microsoft ดูเหมือนจะบอกว่าคุณทำไม่ได้

อย่างไรก็ตามนอกเหนือจากการสร้างความรำคาญแล้วยังไม่สามารถใช้งานได้มากเนื่องจากการสร้างไฟล์ใหม่ดูเหมือนจะไม่ทำงาน

ฉันไม่ทราบว่าเซสชันทุบตีนำสิ่งต่าง ๆ มาใส่ในหน่วยความจำหรือไม่ แต่ Microsoft สามารถทำให้สิ่งนี้เกิดขึ้นได้ดูเหมือนว่า .. หากพวกเขาเลือก


3

สิ่งที่ใช้ได้กับฉันคือการคัดลอกด้วย bash แทนที่จะใช้ Explorer

C-ไดรฟ์ที่ / mnt / C ดังนั้นเพื่อที่จะคัดลอกโฟลเดอร์ไดเรกทอรี C: \ tmp \ test1 ไป / tmp / cp -r /mnt/c/tmp/test1 ~/tmpในบ้านทุบตีคุณทำได้:


3

ฉันคิดว่าคุณจะพบสิ่งนี้ ... มีประโยชน์อย่างเหลือเชื่อ มีข้อมูลที่เป็นประโยชน์ค่อนข้างมากที่นั่น แต่สามารถสรุปได้ตามที่ใช้ในส่วนนี้:

การทำงานร่วมกันกับ Windows

แม้ว่าไฟล์ VolFs จะถูกเก็บไว้ในไฟล์ปกติบน Windows ในไดเรกทอรีที่กล่าวถึงข้างต้น แต่การทำงานร่วมกับ Windows ไม่ได้รับการรองรับ หากมีการเพิ่มไฟล์ใหม่ในหนึ่งในไดเรกทอรีเหล่านี้จาก Windows จะไม่มี EAs ที่จำเป็นสำหรับ VolFs ดังนั้น VolFs จึงไม่ทราบว่าต้องทำอย่างไรกับไฟล์และไม่สนใจเลย บรรณาธิการจำนวนมากจะตัด EAs เมื่อบันทึกไฟล์ที่มีอยู่อีกครั้งทำให้ไฟล์ไม่สามารถใช้งานได้ใน WSL

นอกจากนี้เนื่องจาก VFS แคชรายการไดเรกทอรีการแก้ไขใด ๆ ในไดเรกทอรีเหล่านั้นที่ทำจาก Windows ในขณะที่ WSL กำลังทำงานอาจไม่ถูกต้อง

บทความนี้จะพูดถึงเฉพาะของระบบแฟ้มและคุณลักษณะเพิ่มเติมเช่นกัน แต่โดยสรุปการแก้ไขไฟล์ WSL จาก windows นั้นไม่ต้องดำเนินการ


0

จนกว่าพวกเขาจะได้ผลออกมาฉันติดตั้งcygwin sshdเพื่อให้มองเห็นระบบไฟล์ NTFS ดั้งเดิมและรันubuntu sshdเพื่อให้มองเห็นไฟล์ lsxx linux ใช้ apt-get เพื่อติดตั้งsshfs และ win-sshfsเพื่อทำการmountแต่ละวิธี มันเป็นการแฮ็กแบบรอบ ๆ แต่ตอนนี้ใช้ได้สำหรับฉันแล้ว

หากคุณไม่ต้องการยุ่งกับ cygwin sshd คุณสามารถใช้ cygwin ssh เพื่อ scp ไฟล์ไปมา

การใช้ cygwin sshd ช่วยแก้ไขปัญหาการอนุญาตให้ใช้ไฟล์โดยใช้บัญชีผู้ดูแลระบบจริงในไฟล์. ssh / config ฉันมีสิทธิ์การเข้าถึงแปลก ๆ ที่จะผ่านส่วนต่อประสาน DevFS / NTFS


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