На что указывает ошибка cifs_mount с кодом возврата = -22

я стараюсь

sudo mount -t cifs //<server>/<share> -o username=user@domain,password=**** /mnt/<mountpoint>

сообщение об ошибке:

mount: wrong fs type, bad option, bad superblock on //server/share,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

В системном журнале есть

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

Я могу установить тот же ресурс в другой системе Centos. Я могу пропинговать сервер, каталог точки монтирования создан.


person Adi Pandit    schedule 18.07.2011    source источник


Ответы (14)


Я столкнулся с этой проблемой при использовании имени хоста и решил ее с помощью IP-адреса. Например.:

использовать

mount -t cifs //192.168.1.15/share

скорее, чем

mount -t cifs //servername/share

Другим возможным решением является установка

cifs-утилиты

.

person akame    schedule 09.11.2012
comment
В некоторых системах вам нужно установить samba3-cifsmount вместо cifs-utils. - person Mircea Vutcovici; 02.04.2014
comment
cifs-utils также исправили это в Ubuntu 16.04. Разве это не здорово, что в отсутствие осмысленных сообщений об ошибках, которые могли бы помочь на самом деле предложить решение, а не просто сказать «да, что-то не сработало», нам приходится искать подсказку в Интернете. Может ли mount действительно не идти ах, да, я не могу этого сделать, потому что упускаю что-то важное? В моем случае это было обновление с Ubuntu 14.04 до 16.04, что сломало его. - person ; 15.07.2016

Ах, эти страшные -22. В основном это, кажется, используется как уловка для «что-то не сработало», хотя технически это называется недопустимым аргументом.

Клиент, ИМХО, очень плохо рассказывает вам о реальной проблеме. (Возможно, это не его вина - он не всегда имеет доступ к этой информации).

Однако -- проверяли ли вы журналы на сервере/машине, к которой вы подключаетесь?

Я подключался к серверу Samba OS X и из того, что я нашел в журналах, узнал, что необходимо указать дополнительные параметры в -o следующим образом:

nounix,sec=ntlmssp

Среди вещей, которые включают эти настройки, есть «разрешить длинные имена» и «игнорировать окончания имен файлов UNIX»… sec — указать флаги безопасности.

Другая возможность заключается в том, что вы пытаетесь получить доступ к файловой системе типа, который mount.cifs фактически не может обработать.

person jsh    schedule 08.10.2012
comment
bugzilla.redhat.com/show_bug.cgi?id=832741 и bbs.archlinux.org/viewtopic.php?id=160047 оба описывают sec=ntlm по мере необходимости во многих случаях. - person rektide; 21.07.2013
comment
Бит OS X здесь очень важен ... это решило и для меня. Действительно, эти сообщения об ошибках, будучи настолько неясными и бесполезными, действительно загрязняют и скрывают отчеты о проблемах и решения для связанных проблем. - person Marius; 23.10.2013
comment
Это действительно очень неспецифический код ошибки. В моем случае это всплывало при попытке монтирования через интерфейс с IP-адресом, который сервер не прослушивал (что всегда проблематично с smb/cifs). Как только у клиента был только один интерфейс (с IP-адресом в той же сети, которую прослушивал сервер), проблема исчезла. - person h7r; 19.04.2014
comment
Позвольте мне повторить комментарий @Marius: бит OS X здесь действительно важен, если вы пытаетесь подключить, скажем, Pi к OS X. - person Joe; 24.07.2014

Для пакета установки RHEL/Centos — «cifs-utils»

person prabhat kumar    schedule 08.08.2012

Может быть, сдвинуть цель?

sudo mount -t cifs -o username=user@domain,password=**** //<server>/<share> /mnt/<mountpoint>

Или, может быть, это решение ? (методы Ubuntu, Debian)

sudo apt-get install smbfs

Или для CentOS, RedHat, Fedora попробуйте:

sudo yum install samba-client
person Robert de W    schedule 18.07.2011

У меня была аналогичная проблема в Ubuntu 12.04 с пакетом «mount» (версия 2.20.1-1ubuntu3). Это произошло, когда я пытался смонтировать общий ресурс сервера, используя его имя хоста, а не его IP.

Другой способ решить проблему в Ubuntu — установить пакет cifs-utils. Таким образом, я также мог смонтировать общий ресурс samba, используя ту же самую командную строку (или fstab), но с именем хоста.

sudo mount -t cifs //hostname/share -o username=user,password=pwd /mnt/share
person Andre Miras    schedule 23.10.2012
comment
Установка cifs-utils решила проблему. Вы знаете первопричину? - person demonkoryu; 05.12.2012
comment
На всякий случай я установил cifs-utils и предложенные пакеты. Это сделало это для меня. Ubuntu 12.10 sudo apt-get --install-предлагает установить cifs-utils - person orkoden; 06.03.2013

Только что сделал чистую установку Ubuntu 12.04 LTS и получил это, пытаясь подключить мой Linux HTPC.

Решил это, запустив: sudo apt-get install cifs-utils затем перемонтировав его.

person robbie613    schedule 05.03.2013

CIFS во многих случаях возвращает код "-22" (не только недопустимые аргументы).

Для меня установка keyutils помогла:

apt-get install keyutils

Мой дистрибутив "Ubuntu 14.04.2 LTS".

Я понял это, увеличив детализацию журнала CIFS:

echo 7 > /proc/fs/cifs/cifsFYI
# disable again via:
#echo 0 > /proc/fs/cifs/cifsFYI

Документацию по битовой маске ("7") для cifsFYI можно найти здесь: https://www.kernel.org/doc/readme/Documentation-filesystems-cifs-README

После очередной попытки монтирования dmesg включил дополнительную полезную информацию:

Dec 7 12:34:20 pc1471 kernel: [ 5442.667417] CIFS VFS: dns_resolve_server_name_to_ip: unable to resolve:

Еще одна может быть полезная ссылка:

http://vlkan.com/blog/post/2015/01/08/smb-mount-troubleshoot/

person Robert Fey    schedule 09.06.2015
comment
Спасибо за совет по отладке! Я использовал значение 9, найденное где-то, и оно не было подробным. 7 сделал свое дело на Ubuntu 14.04! - person Apteryx; 25.11.2015
comment
apt-get install keyutils помог мне с Ubuntu 18. Спасибо - person Moisei; 06.05.2020

У меня установлен Ubuntu Server 12.10 x64 как виртуальная машина VMware, работающая на OS X 10.8 (Mountain Lion).

На Mac в СИСТЕМНЫЕ НАСТРОЙКИ > ОБЩИЙ ДОСТУП > ОБЩИЙ ДОСТУП К ФАЙЛАМ (включено) я добавил папку для общего доступа. Для своих тестов я создал новую папку в своей общей папке под названием «ubuntu».

В Ubuntu я выполнил следующие команды:

sudo mkdir /media/target
sudo mount.cifs //10.0.20.3/ubuntu /media/target -o username=davidallie,nounix,sec=ntlmssp,rw

Ubuntu запросила у меня пароль и после ввода смонтировала папку. Затем я побежал:

df -H

что позволило мне проверить монтирование и точки монтирования.

person David Allie    schedule 26.04.2013

Просто испытайте проблему на RHEL 5. Вам не нужно устанавливать пакет samba, только клиент samba и любые зависимости.

person dbying    schedule 06.09.2011

Может быть, уже слишком поздно, но самое простое решение описано в ошибке ядра 50631: в последнем code, необязательный параметр монтирования unc. У меня работает модифицированная команда:

sudo mount -t cifs //<server>/<share> -o username=user@domain,password=****,unc=\\\\<server>\\<share> /mnt/<mountpoint>
person user302783    schedule 12.11.2013

Попробуйте запустить команду:

$modinfo cifs


filename:       /lib/modules/3.2.0-60-virtual/kernel/fs/cifs/cifs.ko
version:        1.76
description:    VFS to access servers complying with the SNIA CIFS Specification e.g. Samba and Windows
license:        GPL
author:         Steve French <[email protected]>
srcversion:     9435BBC2F61D29F06643803
depends:        
intree:         Y
vermagic:       3.2.0-60-virtual SMP mod_unload modversions 686 
parm:           CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (int)
parm:           cifs_min_rcv:Network buffers in pool. Default: 4 Range: 1 to 64 (int)
parm:           cifs_min_small:Small network buffers in pool. Default: 30 Range: 2 to 256 (int)
parm:           cifs_max_pending:Simultaneous requests to server. Default: 32767 Range: 2 to 32767. (int)
parm:           echo_retries:Number of echo attempts before giving up and reconnecting server. Default: 5. 0 means never reconnect. (ushort)
parm:           enable_oplocks:Enable or disable oplocks (bool). Default:y/Y/1 (bool)

Если вы получаете какую-либо ошибку, значит cifs не установлен. Просто уточните у своего администратора. Я думал, что это помогает.

person user4311766    schedule 01.12.2014

Сначала вам нужно установить cifs-utils следующим образом: sudo yum install cifs-utils

person haha    schedule 04.11.2015

Я знаю, что это устарело, но в более старых версиях cifs-utils вам, возможно, придется добавить следующие две строки в /etc/request-key.conf.

create cifs.spnego * * /usr/sbin/cifs.upcall -c %k
create dns_resolver * * /usr/sbin/cifs.upcall %k
person namezero    schedule 12.05.2018

Обходной путь без установки дополнительных пакетов (cifs-utils добавляет еще 81 МБ в Debian Stretch):

$ FILESERVER_IP=$(getent hosts myfileserver.com | awk '{ print $1 ; exit }')

$ sudo mount -t cifs //${FILESERVER_IP}/<share> -o username=user@domain,password=**** /mnt/<mountpoint>
person Günther Eberl    schedule 27.08.2018