Монтаж приводу 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сторінку?
douggro

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

1
Маунт дає загальну помилку, оскільки деталі знаходяться в журналі. Як сказано нижче, використовуйте хвіст -f /var/log/kern.log, щоб зрозуміти, що відбувається.
Сем

1
dmesg | tailрозповідає трохи більше про те, який варіант доставляє вам проблеми.
HongboZhu

Відповіді:


63

можливо, це допомагає в цьому, mount error(22): Invalid argument... можлива помилка - це аргумент / s (режим) команди mount.

  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. Та ж проблема в ubuntu. Я додав vers = 2.0, і це працює. Поточний mount.cifs знаходиться на рівні 6,4. Можливо, деякі вдосконалення облікових даних, але зараз не
вникати

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=ntlmв /etc/fstabі його несумісність з більш новими протоколами SMB, як SMB3.

Хоча це не справа ОП, це також може спричинити 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

Після оновлення до Джессі Дебіан пакет, мабуть, змінився. Я видалив 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.