Windows Linux Alt Sisteminde ağa bağlı sürücüye nasıl erişilir?


60

Yerel Windows bilgisayarıma monte edilmiş bir samba sürücüm var.

WLS'de ("Windows 10 bash") bir "/ mnt / c" sürücüsü var, ancak "/ mnt / z" yok.

Bir şekilde erişmenin bir yolu var mı? WLS'ye yeniden bağlayabilir miyim?


3
Bu özellik hakkında Microsoft Geliştirici Geri Bildirimi’nde tartışma var wpdev.uservoice.com/forums/…
Nelson

Yanıtlar:


23

[Güncelleme - görünüşe göre bu özellik 16176 sürümünde kullanılabiliyor . Henüz denemedim.

Hayır, keşfetmediğim bir numara olsa da. Linux için Windows Subsystem ağ sürücülerini bağlamaz. Bir Microsoft çalışanı burada diyor (bir yorumda):

Şu anda sadece sabit sürücüleri “takıyoruz”. USB / çıkarılabilir / ağ sürücüleri şu anda kullanılmamaktadır. Bu yetenek bizim birikimimizde, ancak yakın zamanda kartlarda değil.

O yüzden nefesini tutma.

Bunun gibi sembolik bir bağlantı kullanarak bunun üzerinde çalışmaya çalıştım:

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

Bağlantı "normal" Windows'ta (cmd.exe, PowerShell, dosya gezgini, vb.) Gayet iyi çalışır, ancak WSL'ye görünmez:

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

Kendi kullanımım için, bu sınırlama bir gösteri durdurucudur. Ağ sürücülerinde taşımak istemediğim şeyler var. Alternatifler var; Cygwin kullanıyorum.


Kabul ediyorum, bu benim için de bir göstericidir - Bunun için msys2 kurdum.
Ela782


argümanlarınızın linkname targettarget linkname
mklink'e sıralaması

Evet, masterxilo, haklısın - mklink komutunu burada yanlış yaptım. Sabit. Gerçekten denedim, doğru yaptım ve WSL karşısında bir işe yaramadı. Artık bir tartışma noktası çünkü WSL artık ağ paylaşımlarını bağlayabiliyor. Ancak düzeltme için teşekkürler. Bu cevaba neredeyse hiç kimse bakmasa bile, böyle bir hata yapmaktan nefret ediyorum.
Joseph Thvedt

106

dan bağlantı bleater yayınlanmıştır

DrvF'lerin Montajı

DrvF'leri kullanarak bir Windows sürücüsü monte etmek için, normal Linux mount komutunu kullanabilirsiniz. Örneğin, çıkarılabilir bir sürücü D: as / mnt / d dizini takmak için aşağıdaki komutları çalıştırın:

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

Şimdi, D: sürücünüzün dosyalarına / mnt / d altında erişebileceksiniz. Sürücüyü sökmek istediğinizde, örneğin güvenle sökebilmeniz için aşağıdaki komutu çalıştırın:

$ sudo umount /mnt/d

Ağ konumlarını bağlama

Bir ağ konumu bağlamak istediğinizde, elbette Windows'ta bir eşlenmiş ağ sürücüsü oluşturabilir ve yukarıda belirtildiği şekilde bağlayabilirsiniz. Bununla birlikte, onları bir UNC yolu kullanarak doğrudan monte etmek de mümkündür:

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

UNC yolu etrafındaki tek tırnak işaretlerine dikkat edin; bunlar ters eğik çizgiden kaçma ihtiyacını önlemek için gereklidir. UNC yolunu tek tırnaklarla çevrelemezseniz, ters eğik çizgileri ikiye katlayarak kaçmanız gerekir (örn. \\\\server\\share).

WSL'nin, bir ağ paylaşımına bağlanmak için hangi kimlik bilgilerini kullanacağını belirtmenin hiçbir yolu yoktur. Sunucuya bağlanmak için farklı kimlik bilgileri kullanmanız gerekiyorsa, bunları Windows Gezgini Yöneticisi'ni veya Windows use komutunu kullanarak Dosya Gezgini'ndeki paylaşıma gidip Windows'ta belirtin. Net use komutu, WSP içinden (net.exe kullanımı kullanılarak) interop üzerinden çağrılabilir. Bu komutun kullanımı hakkında daha fazla bilgi için net.exe help use yazın.


2
tamamen "Windows 10 için bash" için çalıştı! Çok teşekkür ederim!
Ying Zhang,

6
Doğru cevap, soruyu doğrudan cevapladığı için buna değiştirilmelidir.
Tomek

DrvF'leri almak için "Windows Insider yapısına" ihtiyacınız var. -1 (gerçekte aşağı oylama
yapılmaz

5
Windows içeriden
derlemede pencerem yok

2
Bu, paylaşımı bağlar, ancak her şey köke aittir ve bazı dosyalar okunamaz durumdadır (sudo ile ve WSL içindeki izinler 777 olsa bile). Dosyaları Windows Dosya Gezgini'nden okuyabilirim. Herhangi bir mount seçeneği eklemek ( -o) bana "yanlış fs tipi, kötü seçenek, kötü süper blok" hatası veriyor.
Jay K

2

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

GFS'yi WSL üzerinde çalışmaya başlamanın temeline dayanarak WSFS'ye monte etmenin bir yolu: Buradaki hile, https://www.nsoftware.com/sftp/netdrive/ adresini kullanarak Windows'tan GFS'ye ssh kullanmak ve dönüştürmek. WSL altında monte edilebilecek bir dosya sistemine.

  1. Win10 Win10 Ayarları altında OpenSSH Sunucusunu Kur -> Uygulamalar -> İsteğe bağlı özellikleri yönet -> Özellik ekle -> Gerekirse OpenSSH Sunucusunu yeniden başlat Servisler -> OpenSSH -> Özellikler -> Başlangıç ​​Türü -> Otomatik (gecikmeli)

  2. SFTPNetDrive'ı kurun ve çalıştırın, gizli simgelerdeki simgesine sağ tıklayın -> Ana pencere (veya belki de açık) -> Profil -> yeni profil (sunucu: localhost, kullanıcı: * pwd: * Sürücü Mektubu: F (veya başka bir) Gelişmiş - > (Protokol -> sıkıştırmanın işaretini kaldırın; belirtilen klasör: G: \))

  3. Bash (wsl) içinde: sudo mkdir / mnt / f; sudo mount -t drvfs F: / mnt / f

Ne kadar kararlı olduğundan emin değilim, ancak dosyaları WSL'de açmayı başardım.


-2

Windows'ta Bash'i kullanmanın (en az) iki yolu vardır:

  1. WLS ile birlikte verilen Bash (Linux'u Windows 10'a Windows Mağazası'ndan veya diğer kaynaklardan yüklerken)
  2. Windows'ta Git-Bash

Git-Bash'in ağ klasörlerine erişimi vardır (git-bash'ı kurun> ağ klasörüne gidin> sağ tıklayın> "Git Bash Burada"> pwdyolu görmek için çalıştırın ).

Eğer varsa zorunda Bash WLS sürümünü kullanın aşağıdaki gibi, o zaman WLS bash Git-Bash çağırabilirsiniz:

WLS_Bash_Shell:$ /mnt/c/Program\ Files/Git/bin/bash.exe ScriptThatUsesNetworkFolders.sh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.