mount.cifs kullanılamıyor: mount error (2): Böyle bir dosya veya dizin yok


17

Mount.cifs komutu systemd ile bir gentoo sisteminde çalıştırılamıyor

ae429-1105 etc # mount -t cifs //file.abc.edu.au/user /home/directory/path -o credentials=/etc/user,rw,iocharset=utf8,file_mode=0777,dir_mode=0777
mount error(2): No such file or directory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Bağlama noktası / home / dizin / yol ve kimlik dosyası / etc / user'ın varlığı ve erişilebilirliği doğrulanmıştır . Ayrıca ilgili modüller ve hizmetler de etkinleştirildi, yani,

 ae429-1105 etc # lsmod |egrep 'fuse|cifs'
 fuse                   72589  5 
 cifs                  312131  0

ve

ae429-1105 etc # systemctl -t service -a |grep Samba
nmbd.service                         loaded active   running Samba NetBIOS                     name server
smbd.service                         loaded active   running Samba SMB/CIFS     server
winbindd.service                     loaded inactive dead    Samba Winbind daemon

Bu sorun, örneğin bir örnek gibi birçok kullanıcı tarafından tanımlanmıştır . AYRICA , Ubuntu / debian sistemimde aynı komutun başarıyla bağlanabildiğini unutmayın.

Sorunlu makinedeki diğer bilgiler:

ae429-1105 etc # mount.cifs --version
mount.cifs version: 6.1

debian / ubuntu'da yüklü mount.cifs sürümü 6.0


/home/directory/pathortamında var olduğu kesin mi? Bahsetmediğiniz garip, çünkü ortaya çıkan ilk soru budur.
Hauke ​​Laging

Evet, bağlama noktasının / home / dizin / yolun varlığını ve erişilebilirliğini onayladım .
Chenming Zhang

Bu bilgiyi soruya eklemelisiniz, böylece diğer okuyucuların almak için yorumları okumasına gerek kalmaz.
Hauke ​​Laging

Yanıtlar:


8

Windows'un daha yeni bir sürümünden bir paylaşım takmaya çalışıyorsanız, sürüm 3.0'ı zorlamak için mount komutuna vers = seçeneğini sağlamanız gerekebilir. Dosya sunucularımızdan biri yakın zamanda 2012R2'ye yükseltildi ve o zaman bağlantımın çalışması durdu. Vers = 3.0 olarak ayarlamak sorunu çözdü. Çoğu Samba / CIFS hatası gibi "Böyle bir dosya veya dizin yok" mesajı pek yardımcı değildir.

Örnek olarak:

# mount -t cifs //win2012r2/someshare -o cred=/home/foo/.cifs_user, vers=3.0 /mnt/tmp

..burada .cifs_user dosyasında etki alanı, kullanıcı adı ve parolam var.

Görünüşe göre smbmount, sorunsuz veya herhangi bir özel seçenek olmadan çalıştığı için varsayılan olarak SMB protokolünün daha yeni bir sürümünü kullanıyor.

Aşağıda varsayılan protokol sürümünün 1.0 olduğuna dikkat edin.

Mount.cifs kılavuz sayfasından:

vers=
           SMB protocol version. Allowed values are:

           ·   1.0 - The classic CIFS/SMBv1 protocol. This is the default.

           ·   2.0 - The SMBv2.002 protocol. This was initially introduced in Windows Vista Service Pack 1, and
               Windows Server 2008. Note that the initial release version of Windows Vista spoke a slightly
               different dialect (2.000) that is not supported.

           ·   2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7 and Windows Server 2008R2.

           ·   3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and Windows Server 2012.

Ben v1.0 desteklenmesi gereken "nounix" bayrağı ile benzer bir sorun vardı. V2.0'a (benim için en yeni sürüm) geçmek sorunu çözdü. Ayrıca dosya izinleri vers = 2.0 (777 yerine 755) ile daha mantıklıdır
cxrodgers

2
Vers = option ile ilgili çözüm için çok teşekkürler! Benim için, sadece geriye doğru çalıştı ... 42.3 sürümünden 15.1'e açıklık geçişini yükselttikten sonra, çalışan bir ağ sürücüsünün montajı için bir fstab girişi 15.1'de çalışmayı durdurdu. Versiyon 1.0 seçeneğini kullandım ve tahmin edin ... Muhtemelen sıçrama 15.1, uzak dizini bulamayan SMB protokolünün daha yeni bir sürümünü kullanıyor.
John

Ubuntu 19.04'ten Windows Server 2003'te barındırılan bir paylaşıma bağlanma, seçenekler listeme vers = 1.0'ı ekleyene kadar sürekli olarak başarısız oldu. Teşekkürler!
user8675309

Benim için işe yaradı, hariç: vers=2.05 yaşındaki NAS sistemimin samba paylaşımlarını kurmak için TWO Sürümünü belirtmeliydim ... 3.0 ile hatayı aştım.
Frank Nocke

etc/fstabKullanıcılar: Bunu vers=3.0(veya 2.0 ...) diğer seçeneklerinizin önüne doğru ve aralıksız koyun, yanivers=2.0,guest,uid=1000,iocharset…
Frank Nocke

5

nodfsSeçeneği kullanabilir misin ? yani -oseçenek girişi için girişi aşağıdaki gibi geçirin .

-o credentials=/etc/user,rw,iocharset=utf8,file_mode=0777,dir_mode=0777,nodfs

yani eklenmiş ,nodfs

Benim için çalıştı.


teşekkür ederim! Önce diğer tüm önerileri denedim, ancak daha önce ihtiyacım olmayan fedora30'da buna ihtiyacım vardı
Jens Timmerman

2

secParametreyi değiştirmeniz gerekebilir : bu ayar, kurulumumda çalışmasını sağladı:

mount.cifs ... -o sec=ntlm

İlgili özü man mount.cifs:

sec=Güvenlik Modu. İzin verilen değerler:

  • none - boş kullanıcı olarak bağlantı kurmaya çalışın (isim yok)
  • krb5 - Kerberos sürüm 5 kimlik doğrulamasını kullanma
  • krb5i - Kerberos kimlik doğrulamasını kullanın ve paket imzalamayı zorla etkinleştirin
  • ntlm - NTLM şifre karmasını kullan
  • ntlmi - NTLM şifre karmasını kullanın ve paket imzalamayı zorlayın
  • ntlmv2 - NTLMv2 şifre karmasını kullan
  • ntlmv2i - NTLMv2 şifre karmasını kullanın ve paket imzalamayı zorlayın
  • ntlmssp - Ham NTLMSSP iletisinde kapsüllenmiş NTLMv2 parola karmasını kullanın
  • ntlmsspi - Ham NTLMSSP iletisinde kapsüllenmiş NTLMv2 parola karmasını kullanın ve paket imzalamayı zorlayın

    V3.8'den önceki ana hat çekirdek sürümlerinde varsayılan değer şuydu sec=ntlm. V3.8'de varsayılan olarak değiştirildi sec=ntlmssp.

    Sunucunun protokol anlaşması sırasında imzalanması gerekiyorsa, otomatik olarak etkinleştirilebilir. Paket imzalama özelliği etkinse otomatik olarak etkinleştirilebilir /proc/fs/cifs/SecurityFlags.


1

Ben Ubuntu 18.04 ile karşılaştım. Sorun sec=krb5cifs-utils (mount.cifs sağlanan) ile birlikte yüklenmemiş Kerberos kimlik doğrulaması ( mount seçeneği) yapmak için keyutils paketi gerekli oldu. Paket adının Gentoo'da aynı olup olmadığından emin değilim. ( Çözüm için https://forum.zentyal.org/index.php?topic=18601.0 teşekkürler .)


1

Keyutils paketini kurmaya çalışın:

sudo apt-get install keyutils

Bunun tam olarak neden işe yaradığından emin değilim, belki başka birinin cevabı var. Ama en azından benim için hile yaptı: keyutils ile cifs montaj gayet iyi çalıştı.


Lütfen bunun soruda belirtilen sorunu nasıl çözeceği hakkında bilgi ekleyin. Bu paket ne işe yarıyor ve OP'nin ortaya koyduğu soruna nasıl bakıyor?
Haxiel

İyi soru. Keyutils paketinin nasıl yardımcı olduğundan emin değilim. Benim durumumda en azından bu hile yaptı. Keyutils yüklendikten sonra, cifs mount'um gayet iyi çalıştı, oysa OP'de olduğu gibi "mount error (2): Böyle bir dosya veya dizin yok" hata mesajını almadan önce.
Klaus


1

Bugün karşılaştığım bu sorunun başka bir kaynağını eklemek istedim. Bir unix kullanıcısının kullanıcı kimliğini değiştirdikten sonra, smbpasswd aracılığıyla oluşturulan smb kullanıcısı artık aynı hatayla sonuçlanan samba paylaşımı için kimlik doğrulaması yapamayabilir.

Bu nedenle, unix kullanıcı kimliğinizi üzerinden değiştirdiyseniz usermod -u 1000 my_usersorun yaşayabilirsiniz. Benim için düzeltme, daha sonra smb kullanıcısını silmek ve yeniden eklemekti:

smbpasswd -x my_user
smbpasswd -a my_user

Doğru olsa da, bu orijinal soru ile nasıl ilişkilidir?
RalfFriedl

Dediğim gibi, bir kullanıcının kullanıcı kimliğini değiştirirseniz, orijinal sorunun aynı hatası görünür. Herkes aynı şeyi yaptı ve bu konu bulursa, o benim ipucu yararlı bulabilir.
Ryad

1

$Sonuna bir ekle , bunun gibi//winserver/sharename$

mount.cifs -v -o username=myusername,domain=MYCODOMAIN //winserver/sharename$ /mnt/mymountpoint

Vaov! '$' Ne işe yarar mı? Benim için düzeltti ama neden olduğuna dair hiçbir ipucu yok
Gabriel Fair

$ İşareti, Windows paylaşım bağlamında bir yönetimsel paylaşımdır; sistem tarafından etkinleştirilirse, yönetici haklarına sahip bir kullanıcı tüm yollara erişebilir. Örnek \\ MY-SERVER \ c $
Phil795

0

CentOS 7 VM üzerinde mount.cifs kullanarak aynı "bağlama hatası (2): Böyle bir dosya veya dizin yok" hatasıyla çalışıyordum. Tam olarak ntlm güvenliği (ve varyantları) kullanırken hatanın neden oluştuğunu tam olarak belirleyemedim , ancak Kerberos kimlik doğrulamasını kullanmanın sorunun etrafında çalıştığını keşfettim. Son çalışma komut satırım şöyle görünüyordu:

mount.cifs -v -o domain=MYCODOMAIN,sec=krb5 //winserver/sharename /mnt/mymountpoint

"böyle bir dosya veya dizin yok" hatası veren bu komut şuydu:

mount.cifs -v -o username=myusername,domain=MYCODOMAIN //winserver/sharename /mnt/mymountpoint

Kerberos'u kullanmak için "krb5-workstation" paketini kurdum ve yapılandırdım.



0

Benimle daha önce olduğu gibi "vers = 1.0" koyarak işe yaradı -> kimlik bilgileri = / root / .dbx.credentials, vers = 1.0 , uid = 1001, gid = 100, rw

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.