ไม่สามารถใช้ mount.cifs: ข้อผิดพลาดของการเมานต์ (2): ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว


17

พบคำสั่งmount.cifsไม่สามารถรันในระบบ gentoo ที่มีsystemd

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)

มันได้รับการยืนยันว่าการดำรงอยู่และการเข้าถึงจุดเมานท์ / home / ไดเรกทอรี / เส้นทางและไฟล์ข้อมูลประจำตัว/ etc / ผู้ใช้ นอกจากนี้ยังเปิดใช้งานโมดูลและบริการที่เกี่ยวข้องเช่น

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

และ

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

ปัญหานี้ได้รับการยืนยันจากผู้ใช้จำนวนมากเช่นตัวอย่างหนึ่ง นอกจากนี้โปรดทราบว่าคำสั่งเดียวกันที่ดำเนินการในระบบ Ubuntu / debian ของฉันสามารถติดตั้งได้สำเร็จ

ข้อมูลอื่น ๆ ในเครื่องที่มีปัญหา:

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

เวอร์ชันของ mount.cifs ที่ติดตั้งใน debian / ubuntu คือ 6.0


/home/directory/pathเป็นสิ่งที่แน่นอนที่มีอยู่ในสภาพแวดล้อม Gentoo? แปลกที่คุณไม่ได้พูดถึงว่านี่เป็นคำถามแรกที่ชัดเจนซึ่งเกิดขึ้น
Hauke ​​Laging

ใช่ฉันได้รับการยืนยันการดำรงอยู่และการเข้าถึงของภูเขาจุด/ home / ไดเรกทอรี / เส้นทาง
Chenming Zhang

คุณควรเพิ่มข้อมูลนี้ในคำถามเพื่อให้ผู้อ่านรายอื่นไม่จำเป็นต้องอ่านความคิดเห็นเพื่อรับมัน
Hauke ​​Laging

คำตอบ:


8

คุณอาจต้องระบุตัวเลือก vers = ให้กับคำสั่ง mount เพื่อบังคับให้เวอร์ชัน 3.0 หากคุณพยายามเมาท์การแชร์จาก Windows เวอร์ชั่นที่ใหม่กว่า หนึ่งใน fileservers ของเราเพิ่งอัพเกรดเป็น 2012R2 และนั่นคือตอนที่การเมานต์ของฉันหยุดทำงาน การตั้งค่าเป็น vers = 3.0 แก้ไขปัญหา เช่นข้อผิดพลาด Samba / CIFS ส่วนใหญ่ข้อความ "ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" ไม่ได้ช่วยอะไรมาก

ตัวอย่างเช่น:

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

.. ทุกที่ฉันมีโดเมนชื่อผู้ใช้และรหัสผ่านของฉันอยู่ในไฟล์. cifs_user

เห็นได้ชัดว่า smbmount ใช้โปรโตคอล SMB รุ่นใหม่กว่าโดยค่าเริ่มต้นเนื่องจากทำงานได้โดยไม่มีปัญหาหรือตัวเลือกพิเศษใด ๆ

โปรดสังเกตด้านล่างว่ารุ่นโปรโตคอลเริ่มต้นคือ 1.0

จากหน้าคน mount.cifs:

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.

ฉันมีปัญหาคล้ายกันกับการตั้งค่าสถานะ "คำนาม" ซึ่งต้องไม่รองรับใน v1.0 การเปลี่ยนเป็น v2.0 (เวอร์ชั่นล่าสุดที่มีให้ฉัน) แก้ไขปัญหาได้ นอกจากนี้การอนุญาตของไฟล์มีความสมเหตุสมผลมากขึ้นด้วย vers = 2.0 (755 แทน 777)
cxrodgers

2
ขอบคุณมากสำหรับคำตอบที่เกี่ยวข้องกับตัวเลือก vers =! ทำงานได้สำหรับฉันย้อนหลังเท่านั้น ... หลังจากอัปเกรด opensuse leap จาก 42.3 เป็น 15.1 รายการ fstab สำหรับติดตั้งไดรฟ์เครือข่ายซึ่งใช้งานได้หยุดทำงานใน 15.1 ฉันใช้ตัวเลือก vers = 1.0 และคาดเดาว่า ... อาจเผ่น 15.1 ใช้โปรโตคอล SMB รุ่นใหม่ที่ไม่สามารถค้นหาไดเรกทอรีระยะไกลได้
John

การเชื่อมต่อกับการแชร์ที่โฮสต์บน Windows Server 2003 จาก Ubuntu 19.04 ล้มเหลวอย่างต่อเนื่องจนกระทั่งฉันเพิ่ม vers = 1.0 ในรายการตัวเลือกของฉัน ขอบคุณ!
user8675309

มันทำงานได้ดีสำหรับฉันยกเว้น: ฉันต้องระบุเวอร์ชัน TWO vers=2.0เพื่อติดตั้ง samba ที่ใช้ร่วมกันในระบบ NAS ของฉันอายุ 5 ปี ... ด้วย 3.0 ฉันได้รับข้อผิดพลาดด้านบน
Frank Nocke

etc/fstabผู้ใช้: เพียงแค่ใส่vers=3.0(หรือ 2.0 ... ) ที่ถูกต้องและไม่มีที่ติก่อนตัวเลือกอื่น ๆ ของคุณเช่นvers=2.0,guest,uid=1000,iocharset…
Frank Nocke

5

คุณสามารถใช้nodfsตัวเลือกได้ไหม เช่นสำหรับ-oตัวเลือกของคุณอินพุตผ่านอินพุตดังต่อไปนี้

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

เช่นต่อท้าย ,nodfs

มันใช้งานได้สำหรับฉัน


ขอบคุณ! ฉันลองคำแนะนำอื่น ๆ ทั้งหมดก่อน แต่ฉันต้องการสิ่งนี้ใน fedora30 ซึ่งฉันไม่ต้องการมันมาก่อน
Jens Timmerman

2

คุณอาจต้องเปลี่ยนsecพารามิเตอร์: การตั้งค่านี้ทำให้การตั้งค่าของฉัน:

mount.cifs ... -o sec=ntlm

สารสกัดที่เกี่ยวข้องของman mount.cifs:

sec=โหมดความปลอดภัย ค่าที่อนุญาตคือ:

  • none - พยายามเชื่อมต่อในฐานะผู้ใช้ว่าง (ไม่มีชื่อ)
  • krb5 - ใช้การพิสูจน์ตัวตน Kerberos เวอร์ชัน 5
  • krb5i - ใช้การรับรองความถูกต้องของ Kerberos และบังคับให้เปิดใช้งานการเซ็นชื่อแพ็กเก็ต
  • ntlm - ใช้การแฮชรหัสผ่าน NTLM
  • ntlmi - ใช้การแฮชรหัสผ่าน NTLM และบังคับให้เซ็นชื่อแพ็กเก็ต
  • ntlmv2 - ใช้การแฮชรหัสผ่าน NTLMv2
  • ntlmv2i - ใช้การแฮชรหัสผ่าน NTLMv2 และบังคับให้ลงชื่อแพ็กเก็ต
  • ntlmssp - ใช้การแฮชรหัสผ่าน NTLMv2 ในแค็ปซูลในข้อความ Raw NTLMSSP
  • ntlmsspi - ใช้การแฮ็นรหัสผ่าน NTLMv2 ห่อหุ้มในข้อความ Raw NTLMSSP และบังคับให้เซ็นชื่อแพ็กเก็ต

    sec=ntlmเริ่มต้นในรุ่นเคอร์เนลพ้นก่อนที่จะเป็น v3.8 ใน v3.8 sec=ntlmsspเริ่มต้นก็เปลี่ยนไป

    หากเซิร์ฟเวอร์ต้องมีการเซ็นชื่อในระหว่างการเจรจาโปรโตคอลก็อาจเปิดใช้งานโดยอัตโนมัติ /proc/fs/cifs/SecurityFlagsการลงนามในแพ็คเก็ตนอกจากนี้ยังอาจถูกเปิดใช้งานโดยอัตโนมัติถ้ามันเปิดใช้งานใน


1

ฉันพบสิ่งนี้บน Ubuntu 18.04 ปัญหาคือฉันต้องการแพ็คเกจ keyutils เพื่อทำการพิสูจน์ตัวตน Kerberos ( sec=krb5ตัวเลือกการเมานท์) ซึ่งไม่ได้ติดตั้งพร้อมกับ cifs-utils (ซึ่งให้ mount.cifs) ฉันไม่แน่ใจว่าชื่อแพคเกจนั้นเหมือนกันใน Gentoo หรือไม่ (ขอบคุณhttps://forum.zentyal.org/index.php?topic=18601.0สำหรับการแก้ปัญหา)


1

ลองติดตั้งแพ็คเกจ keyutils:

sudo apt-get install keyutils

ไม่แน่ใจว่าทำไมสิ่งนี้ถึงช่วยได้บางทีคนอื่นอาจมีคำตอบอยู่ที่นี่ แต่อย่างน้อยมันก็ใช้กลอุบายสำหรับฉัน: ด้วย keyutils cifs mount ก็ใช้งานได้ดี


โปรดเพิ่มข้อมูลเกี่ยวกับวิธีที่จะแก้ไขปัญหาที่ระบุในคำถาม แพ็คเกจนี้ทำอะไรได้บ้างและปัญหานี้ทำให้เกิดปัญหากับ OP ได้อย่างไร
Haxiel

คำถามที่ดี. ฉันไม่แน่ใจว่า keyutils ของแพ็คเกจช่วยอย่างไร ในกรณีของฉันอย่างน้อยนี่คือสิ่งที่หลอกลวง หลังจากติดตั้ง keyutils แล้ว cifs mount ของฉันก็ใช้งานได้ดีในขณะที่ก่อนที่ฉันจะได้รับข้อความแสดงข้อผิดพลาด "ข้อผิดพลาด mount (2): ไม่มีไฟล์หรือไดเรกทอรี" เช่นเดียวกับใน OP
Klaus


1

ฉันต้องการเพิ่มแหล่งอื่นของปัญหานี้ที่ฉันพบในวันนี้ เมื่อคุณเปลี่ยนรหัสผู้ใช้ของผู้ใช้ unix ผู้ใช้ smb ที่สร้างผ่าน smbpasswd อาจไม่สามารถตรวจสอบสิทธิ์สำหรับการแบ่งปัน samba ได้อีกต่อไปทำให้เกิดข้อผิดพลาดเดียวกัน

ดังนั้นหากคุณเปลี่ยนรหัสผู้ใช้ยูนิกซ์ผ่านทางusermod -u 1000 my_userคุณอาจพบปัญหา การแก้ไขสำหรับฉันคือการลบและเพิ่มผู้ใช้ smb อีกครั้งในภายหลัง:

smbpasswd -x my_user
smbpasswd -a my_user

ในขณะที่เป็นจริงสิ่งนี้เกี่ยวข้องกับคำถามต้นฉบับอย่างไร
RalfFriedl

อย่างที่ฉันบอกถ้าคุณเปลี่ยนรหัสผู้ใช้ของผู้ใช้ข้อผิดพลาดเดียวกันของคำถามเดิมจะปรากฏขึ้น ดังนั้นหากใครทำเช่นเดียวกันและพบกระทู้นี้เขาหรือเธออาจพบว่าคำใบ้ของฉันมีประโยชน์
Ryad

1

เพิ่ม a $ถึงท้ายเช่นนี้//winserver/sharename$

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

ว้าว! ความคิดใด ๆ ที่ '$' ทำอะไร มันซ่อมให้ฉัน แต่ไม่มีเงื่อนงำว่าทำไม
Gabriel Fair

เครื่องหมาย $ เป็นส่วนแบ่งการดูแลระบบในบริบทการแชร์ Windows หากเปิดใช้งานโดยระบบผู้ใช้ที่มีสิทธิ์ระดับผู้ดูแลระบบสามารถเข้าถึงทุกเส้นทางได้ ตัวอย่าง \\ MY-SERVER \ c $
Phil795

0

ฉันพบข้อผิดพลาด "mount error (2): ไม่มีข้อผิดพลาดในไฟล์หรือไดเรกทอรี" โดยใช้ mount.cifs บน CentOS 7 VM ฉันไม่เคยทราบแน่ชัดว่าเหตุใดจึงเกิดข้อผิดพลาดขึ้นเมื่อใช้ความปลอดภัยntlmเริ่มต้น(และตัวแปร) แต่ฉันค้นพบว่าการใช้การพิสูจน์ตัวตน Kerberos แก้ปัญหาได้ ดังนั้นบรรทัดคำสั่งการทำงานสุดท้ายของฉันมีลักษณะเช่นนี้:

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

ในขณะที่คำสั่งนี้ที่ให้ข้อผิดพลาด "ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" คือ:

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

ในการใช้ Kerberos ฉันติดตั้งแพ็คเกจ "krb5-workstation" และกำหนดค่า


0

วิธีแก้ปัญหาหนึ่งอาจจะติดตั้งด้วยตนเองkeyutilsเนื่องจากไม่ใช่การพึ่งพา (ยาก) cifs-utilsอีกต่อไป

ข้อมูลว่าทำไมไม่สามารถติดตั้ง Keyutils ได้อีกต่อไปที่นี่: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=822841

และรายงานข้อผิดพลาดของ launchpad สามารถพบได้ที่นี่: https://bugs.launchpad.net/ubuntu/+source/cifs-utils/+bug/1772148


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