Drive cifs pemasangan memberikan: kesalahan pemasangan (22): Argumen tidak valid


44

Saya mencoba menjalankan:

sudo mount -t cifs //user.my-backup.com /mnt/wal_drive -o iocharset=utf8,rw,credentials=/etc/backupcredentials.txt,uid=postgres,gid=postgres,file_mode=0660,dir_mode=0770

Namun saya terus mendapatkan kesalahan berikut:

mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Apa yang saya lakukan salah?


1
Dua kemungkinan masalah: sumber Anda adalah URL yang mungkin tidak dapat diselesaikan atau tidak mengiklankan Samba; dan, uid / gid perlu diekspresikan secara numerik. Sudahkah Anda membaca manhalaman yang dimaksud ?
douggro

3
Mount harus benar-benar mengembalikan pesan kesalahan yang lebih baik. Mengetahui argumen mana yang tidak valid akan membuat pesan kesalahan ini jauh lebih bermanfaat.
Gregory Arenius

1
Mount memberikan kesalahan umum karena detailnya ada di log. Seperti yang dikatakan di bawah ini, gunakan tail -f /var/log/kern.log untuk memahami apa yang terjadi.
Sam

1
dmesg | tailmemberi tahu Anda sedikit lebih banyak tentang opsi mana yang memberi Anda masalah.
HongboZhu

Jawaban:


63

mungkin ini membantu dengan ini, mount error(22): Invalid argument... kemungkinan kesalahan adalah argumen / s (mode) pada perintah mount.

  1. periksa log Anda pada kesalahan yang ditemukan.

    tail -f  /var/log/kern.log 
    
  2. hapus argumen yang tidak valid


9
Ini berhasil untuk saya. Saya menemukan kesalahan CIFS not working, kernel upgrade:No dialect specified on mountdan menyelesaikannya dengan [menambahkan] vers=1.0ke / etc / fstab ( bbs.archlinux.org/viewtopic.php?id=230952 ) saya. Saya menduga itu disebabkan oleh penggunaan kernel 4.13.
blaha

Astaga, syukurlah untuk stackoverflow. Masalah yang sama di ubuntu. Saya menambahkan vers = 2.0 dan berfungsi. Mount.cifs saat ini ada di 6.4. Mungkin beberapa peningkatan kredensial tetapi tidak menggali
CIF

6

Saya memiliki masalah yang sama di Arch Linux, dengan pesan ini di log:

kernel: CIFS VFS: cifs_mount failed w/return code = -22

Bagi saya solusinya adalah menentukan versi cif yang lebih lama (secara default itu adalah 3.0):

/etc/fstab:

//my-router/share /media/share cifs ver="2.1",rw,soft,uid=ele,gid=ele,file_mode=0770,dir_mode=0770,credentials=/etc/router-credentials.conf 0 0

3

Penyebab lain yang mungkin adalah adanya sec=ntlmdi /etc/fstabdan itu ketidakcocokan dengan protokol SMB yang lebih baru seperti SMB3.

Meskipun bukan kasus OP, ini juga dapat menyebabkan mount error(22): Invalid argumentkesalahan, seperti yang terjadi pada saya setelah memutakhirkan server lama.

Meskipun kern.logtermasuk saran untuk specify vers=1.0 on mount, mungkin lebih aman untuk menghapus atau mengubah sec=ntlmsaja. Mungkin menggunakan standar untuk memungkinkan negosiasi otomatis versi SMB dan keamanan, atau tentukan opsi yang kompatibel seperti vers=3.0,sec=ntlmssp.

Jelas ini tergantung pada fitur server SMB Anda, tetapi saya akan mencoba dan menghindarinya vers=1.0kecuali jika diperlukan.



2

Dalam kasus saya, masalah ini disebabkan karena saya telah memasang direktori yang penuh dengan tautan simbolik. Setelah menyelidiki tautan simbolis di Windows, saya mendapatkan jalur "asli" mereka dan memasangnya sebagai gantinya.


2

Anda dapat menambahkan informasi versi untuk SMB untuk menyelesaikan masalah. Apa yang saya lakukan adalah saya menambahkan vers = 1.0. Ini adalah SMB versi 1 yang berfungsi dengan semua driver seseorang. Untuk kasus Anda akan terlihat seperti ini

sudo mount -t cifs //user.my-backup.com /mnt/wal_drive -o iocharset=utf8,rw,vers=1.0,credentials=/etc/backupcredentials.txt,uid=postgres,gid=postgre ,file_mode=0660,dir_mode=0770

1

Setelah meningkatkan ke Jessie Debian paket harus berubah. Saya dihapus guid=0dari fstabmount berikut dan semuanya bekerja dengan benar lagi.

//x.x.x.x/General/  /usr/local/share/general cifs uid=0,guid=0,rw,credentials=/etc/gen-cifspasswd 0 0
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.