Монтирование диска cifs дает: ошибка монтирования (22): неверный аргумент


44

Я пытаюсь бежать:

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

Однако я продолжаю получать следующую ошибку:

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

Что я делаю не так?


1
Две возможные проблемы: ваш источник - это URL, который может не разрешаться или не рекламирует Samba; и uid / gid должны быть выражены численно. Вы прочитали указанную manстраницу?
Дуггро

3
Mount должен действительно вернуть лучшее сообщение об ошибке. Знание того, какой аргумент недействителен, сделало бы это сообщение об ошибке намного более полезным.
Григорий Арениус

1
Mount дает общую ошибку, потому что детали находятся в журнале. Как сказано ниже, используйте tail -f /var/log/kern.log, чтобы понять, что происходит.
Сэм

1
dmesg | tailрасскажет вам немного больше о том, какой вариант доставляет вам неприятности.
ХунбоЖу

Ответы:


63

может быть, это помогает в этом, mount error(22): Invalid argument... возможная ошибка - аргумент / s (режим) в команде монтирования.

  1. проверьте ваши журналы на наличие ошибок.

    tail -f  /var/log/kern.log 
    
  2. удалить неверный аргумент


9
Это сработало для меня. Я нашел ошибку CIFS not working, kernel upgrade:No dialect specified on mountи исправил ее, [добавив] vers=1.0в свой / etc / fstab ( bbs.archlinux.org/viewtopic.php?id=230952 ). Я подозреваю, что это вызвано использованием ядра 4.13.
блаха

Боже, слава богу, для stackoverflow. Та же проблема на убунту. Я добавил vers = 2.0, и это работает. Текущий mount.cifs находится на 6.4. Вероятно, некоторые улучшения в учетных данных, но не копаться в CIFS сейчас ...
dturvene

6

У меня была такая же проблема в Arch Linux, с этим сообщением в журнале:

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

Для меня решением было указать более старую версию cifs (по умолчанию она была 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

Другой возможной причиной является наличие sec=ntlmin /etc/fstabи его несовместимость с новыми протоколами SMB, такими как SMB3.

Хотя это и не случай с OP, это также может привести к mount error(22): Invalid argumentошибкам, как это было для меня после обновления старого сервера.

Несмотря на то, что kern.logсодержит предложение specify vers=1.0 on mount, может быть безопаснее удалить или изменить sec=ntlmвместо этого. Возможно, используйте значения по умолчанию, чтобы разрешить автоматическое согласование версии и безопасности SMB, или укажите совместимые параметры, такие как vers=3.0,sec=ntlmssp.

Очевидно, это зависит от возможностей вашего SMB-сервера, но я бы постарался избежать этого, vers=1.0если это необходимо.



2

В моем случае эта проблема была вызвана тем, что я смонтировал каталог, полный символических ссылок. Изучив символические ссылки в Windows, я получил их «настоящие» пути и смонтировал их.


2

Вы можете добавить информацию о версии для SMB, чтобы решить эту проблему. Что я сделал, я добавил версии = 1,0. Это SMB версия 1, которая работает со всеми драйверами smb. Для вашего случая это будет выглядеть примерно так

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

После обновления до Jessie Debian пакет должен был измениться. Я удалил guid=0из следующего fstabмонтирования, и все снова заработало правильно.

//x.x.x.x/General/  /usr/local/share/general cifs uid=0,guid=0,rw,credentials=/etc/gen-cifspasswd 0 0
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.