วิธีการเข้าถึงไดรฟ์เครือข่ายที่ติดตั้งบนระบบย่อย Windows Linux


35

ฉันมีไดรฟ์แซมบ้าซึ่งติดตั้งอยู่ในคอมพิวเตอร์ที่ใช้ Windows

ฉันมีไดรฟ์ "/ mnt / c" ใน WLS ("Windows 10 bash") แต่ไม่มี "/ mnt / z"

มีวิธีเข้าถึงอย่างใดหรือไม่ ฉันสามารถติดตั้งใหม่ใน WLS ได้ไหม?


3
มีการอภิปรายเกี่ยวกับคุณสมบัตินี้ได้ที่คำติชมของผู้พัฒนาของ Microsoft wpdev.uservoice.com/forums/...
Nelson

คำตอบ:


21

[อัพเดท - เด่นชัด คุณลักษณะนี้มีให้ใน สร้าง 16176 . ฉันยังไม่ได้ลอง]

ไม่แม้ว่าอาจมีกลลวงบางอย่างที่ฉันไม่ได้ค้นพบ Windows Subsystem สำหรับ Linux ไม่ติดตั้งไดรฟ์เครือข่าย พนักงานของ Microsoft กล่าว ที่นี่ (ในความคิดเห็น):

ขณะนี้เราเท่านั้น "เมานต์" ไดรฟ์คงที่ ไม่สามารถจัดการไดรฟ์ USB / ถอดได้ / เครือข่ายได้ในขณะนี้ ความสามารถนี้อยู่ในงานในมือของเรา แต่ไม่ได้อยู่ในการ์ดในเวลาไม่นาน

ดังนั้นอย่ากลั้นลมหายใจของคุณ

ฉันพยายามทำงานโดยใช้ลิงก์สัญลักษณ์เช่นนี้

c:> mklink /d c:\some\directory \\some_server\some_share

ลิงก์ใช้งานได้ดีใน Windows "ปกติ" (cmd.exe, PowerShell, file explorer, ฯลฯ ) แต่ WSL มองไม่เห็น:

$ ls -ld /mnt/c/some/directory
/mnt/c/some/directory not found

สำหรับการใช้งานของฉันเองข้อ จำกัด นี้เป็นรูปแบบการอุด ฉันมีสิ่งต่าง ๆ บนไดรฟ์เครือข่ายที่ฉันไม่ต้องการย้าย มีทางเลือกอื่น; ฉันใช้ Cygwin


เห็นด้วยนี่เป็น showstopper สำหรับฉันเช่นกัน - ฉันเพิ่งติดตั้ง msys2 สำหรับสิ่งนี้
Ela782

3
รายละเอียด: blogs.msdn.microsoft.com/wsl/2017/04/18/...
bleater

ลำดับการโต้แย้งของคุณต่อ mklink นั้นผิด linkname targetไม่ใช่ target linkname
masterxilo

ใช่ masterxilo คุณถูกต้อง - ฉันมีคำสั่ง mklink ผิดที่นี่ คงที่ เมื่อฉันลองมันจริงฉันทำถูกแล้วและมันไม่ได้ผล WSL-vis-a-vis ตอนนี้เป็นจุดที่สงสัยเนื่องจาก WSL สามารถเชื่อมต่อเครือข่ายที่ใช้ร่วมกันได้ แต่ขอบคุณสำหรับการแก้ไข แม้ว่าเกือบจะไม่มีใครดูคำตอบนี้ฉันเกลียดที่จะทิ้งความผิดพลาดแบบนั้น
Joseph Thvedt

58

จาก ลิงก์ bleater โพสต์

การติดตั้ง DrvFs

ในการติดตั้งไดร์ฟ Windows โดยใช้ DrvF คุณสามารถใช้คำสั่ง Linux mount ปกติ ตัวอย่างเช่นหากต้องการเมานต์ไดรฟ์แบบถอดได้ D: as / mnt / d ให้รันคำสั่งต่อไปนี้:

$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d

ตอนนี้คุณจะสามารถเข้าถึงไฟล์ของ D: ไดรฟ์ภายใต้ / mnt / d เมื่อคุณต้องการยกเลิกการต่อเชื่อมไดรฟ์ตัวอย่างเช่นคุณสามารถลบออกได้อย่างปลอดภัย

$ sudo umount /mnt/d

กำลังติดตั้งตำแหน่งเครือข่าย

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

$ sudo mkdir /mnt/share
$ sudo mount -t drvfs '\\server\share' /mnt/share

หมายเหตุเครื่องหมายอัญประกาศเดี่ยวรอบ ๆ เส้นทาง UNC สิ่งเหล่านี้จำเป็นต่อการป้องกันไม่ให้มีการหลบหลีกแบ็กสแลช หากคุณไม่ล้อมรอบเส้นทาง UNC ด้วยเครื่องหมายอัญประกาศเดี่ยวคุณต้องหลีกเลี่ยงแบ็กสแลช \\\\server\\share )

WSL ไม่มีวิธีใดในการระบุข้อมูลประจำตัวที่จะใช้เพื่อเชื่อมต่อกับเครือข่ายที่ใช้ร่วมกัน หากคุณต้องการใช้ข้อมูลรับรองที่แตกต่างเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ให้ระบุใน Windows โดยไปที่แชร์ใน File Explorer โดยใช้ Windows Credential Manager หรือคำสั่ง net use คำสั่ง net use สามารถเรียกใช้จากภายใน WSL (ใช้ net.exe use) ผ่าน interop พิมพ์ net.exe ช่วยในการใช้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้คำสั่งนี้


ทำงานโดยสิ้นเชิงสำหรับ "ทุบตีสำหรับ windows 10" ของฉัน! ขอบคุณมาก!
Ying Zhang

คำตอบที่ถูกต้องควรเปลี่ยนเป็นคำตอบนี้เพราะตอบคำถามโดยตรง
Tomek

คุณต้องมี "Windows Insider build" เพื่อรับ DrvFs -1 (ไม่ลงคะแนนจริง)
FractalSpace

2
ฉันไม่มี windows insider build และมันใช้งานได้สำหรับฉัน
gman

นั่นยอดเยี่ยมมาก
Erik

0

มี (อย่างน้อย) สองวิธีในการใช้ Bash ใน Windows:

  1. Bash ที่มาพร้อมกับ WLS (เมื่อติดตั้ง Linux บน Windows 10 จาก Windows Store หรือแหล่งอื่น ๆ )
  2. Git-Bash บน Windows

Git-Bash สามารถเข้าถึงโฟลเดอร์เครือข่าย (ติดตั้ง git-bash & gt; ไปที่โฟลเดอร์เครือข่าย & gt; คลิกขวา & gt; "Git Bash Here" & gt; pwd เพื่อดูเส้นทาง)

ถ้าคุณ ต้อง ใช้ bash รุ่น WLS จากนั้นคุณสามารถโทร Git-Bash จาก WLS bash ดังนี้

WLS_Bash_Shell:$ /mnt/c/Program\ Files/Git/bin/bash.exe ScriptThatUsesNetworkFolders.sh

0

ดู https://github.com/Microsoft/WSL/issues/2999#issuecomment-455835951

นี่เป็นวิธีในการเมานต์ GFS ใน WSL ตาม รับ `sshfs 'ทำงานบน WSL หรือค้นหาทางเลือก เคล็ดลับคือการใช้ https://www.nsoftware.com/sftp/netdrive/ เพื่อ ssh ถึง GFS จาก Windows และแปลงเป็นระบบไฟล์ที่สามารถติดตั้งภายใต้ WSL

  1. ติดตั้ง OpenSSH Server ภายใต้ Win10 การตั้งค่า Win10 - & gt; แอป - & gt; จัดการคุณลักษณะที่เป็นตัวเลือก - & gt; เพิ่มสถานที่ - & gt; เซิร์ฟเวอร์ OpenSSH รีสตาร์ทถ้าจำเป็น บริการที่เปิด - & gt; OpenSSH - & gt; คุณสมบัติ - & gt; ประเภทเริ่มต้น - & gt; อัตโนมัติ (ล่าช้า)

  2. ติดตั้งและเรียกใช้ SFTPNetDrive คลิกขวาที่ไอคอนในไอคอนที่ซ่อน - & gt; หน้าต่างหลัก (หรืออาจเปิดอยู่แล้ว) - & gt; โปรไฟล์ - & gt; โปรไฟล์ใหม่ (เซิร์ฟเวอร์: localhost, ผู้ใช้: * pwd: * ตัวอักษรของไดรฟ์: F (หรืออื่น ๆ ) ขั้นสูง - & gt; (โปรโตคอล - & gt; ไม่เลือกการบีบอัด; โฟลเดอร์ที่ระบุ: G: \)

  3. ใน Bash (wsl): sudo mkdir / mnt / f; sudo mount -t drvfs F: / mnt / f

ฉันไม่แน่ใจว่ามันเสถียรแค่ไหน แต่ฉันสามารถเปิดไฟล์ใน WSL ได้

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