Gắn ổ đĩa cifs đưa ra: lỗi mount (22): Đối số không hợp lệ


44

Tôi đang cố chạy:

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

Tuy nhiên tôi tiếp tục nhận được lỗi sau:

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

Tôi đang làm gì sai?


1
Hai vấn đề có thể xảy ra: nguồn của bạn là một URL có thể không giải quyết được hoặc không quảng cáo Samba; và, uid / gid cần được thể hiện bằng số. Bạn đã đọc mantrang giới thiệu ?
douggro

3
Mount nên thực sự trả lại một thông báo lỗi tốt hơn. Biết đối số nào không hợp lệ sẽ giúp thông báo lỗi này hữu ích hơn rất nhiều.
Gregory Arenius

1
Mount đưa ra một lỗi chung vì các chi tiết có trong nhật ký. Như đã nói bên dưới, hãy sử dụng đuôi -f /var/log/kern.log để hiểu điều gì đang xảy ra.
Sam

1
dmesg | tailcho bạn biết thêm một chút về tùy chọn nào đang gây rắc rối cho bạn.
HongboZhu

Câu trả lời:


63

có lẽ điều này giúp với điều này, mount error(22): Invalid argument... lỗi có thể là đối số / s (chế độ) trên lệnh mount.

  1. kiểm tra nhật ký của bạn về các lỗi gặp phải.

    tail -f  /var/log/kern.log 
    
  2. xóa đối số không hợp lệ


9
Điều này làm việc cho tôi. Tôi đã tìm thấy lỗi CIFS not working, kernel upgrade:No dialect specified on mountvà khắc phục bằng cách [thêm] vers=1.0vào / etc / fstab của tôi ( bbs.archlinux.org/viewtopic.php?id=230952 ). Tôi nghi ngờ đó là do sử dụng kernel 4.13.
blaha

Jeez, cảm ơn lòng tốt cho stackoverflow. Vấn đề tương tự trên Ubuntu. Tôi đã thêm Vers = 2.0 và nó hoạt động. Mount.cifs hiện tại là 6.4. Có lẽ một số cải tiến cho thông tin đăng nhập nhưng không đào sâu vào CIFS ngay bây giờ ...
dturvene

6

Tôi gặp vấn đề tương tự trên Arch Linux, với thông báo này trong nhật ký:

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

Đối với tôi, giải pháp là chỉ định phiên bản cũ hơn của cifs (theo mặc định là 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

Một nguyên nhân khác có thể là sự hiện diện của sec=ntlmtrong /etc/fstabvà nó không tương thích với các giao thức SMB mới hơn như SMB3.

Mặc dù không phải là trường hợp của OP, nhưng điều này cũng có thể gây ra mount error(22): Invalid argumentlỗi, như đã xảy ra với tôi sau khi nâng cấp máy chủ cũ.

Mặc dù kern.logbao gồm một đề xuất specify vers=1.0 on mount, thay vào đó có thể an toàn hơn để xóa hoặc thay đổi sec=ntlm. Có lẽ sử dụng mặc định để cho phép tự động đàm phán phiên bản SMB và bảo mật hoặc chỉ định các tùy chọn tương thích như vers=3.0,sec=ntlmssp.

Rõ ràng điều này phụ thuộc vào các tính năng của máy chủ SMB của bạn, nhưng tôi sẽ thử và tránh vers=1.0trừ khi cần thiết.


2

Tôi đã sử dụng một URL sai. Đáng lẽ ra phải là://user.my-backup.com/backup


2

Trong trường hợp của tôi, vấn đề này là do tôi đã gắn một thư mục chứa đầy các liên kết tượng trưng. Sau khi điều tra các liên kết tượng trưng trong Windows, tôi đã nhận được các đường dẫn "thực" của chúng và thay vào đó là các đường dẫn.


2

Bạn có thể thêm thông tin phiên bản cho SMB để giải quyết vấn đề. Những gì tôi đã làm là tôi đã thêm Vers = 1.0. Đây là SMB phiên bản 1 hoạt động với tất cả các trình điều khiển smb. Đối với trường hợp của bạn, nó sẽ trông giống như thế này

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

Sau khi nâng cấp lên Debianie, gói phải thay đổi. Tôi đã gỡ bỏ guid=0khỏi fstabmount sau đây và tất cả hoạt động trở lại chính xác.

//x.x.x.x/General/  /usr/local/share/general cifs uid=0,guid=0,rw,credentials=/etc/gen-cifspasswd 0 0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.