Das Mounten des cifs-Laufwerks führt zu folgendem Ergebnis: mount error (22): Ungültiges Argument

44

Ich versuche zu rennen:

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

Ich erhalte jedoch weiterhin den folgenden Fehler:

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

Was mache ich falsch?

Niels Kristian
quelle
1
Zwei mögliche Probleme: Ihre Quelle ist eine URL, die Samba entweder nicht löst oder nicht bewirbt; und die UID / GID muss numerisch ausgedrückt werden. Haben Sie die betreffende manSeite gelesen ?
Douggro
3
Mount sollte wirklich eine bessere Fehlermeldung zurückgeben. Zu wissen, welches Argument ungültig ist, würde diese Fehlermeldung sehr viel hilfreicher machen.
Gregory Arenius
1
Beim Einhängen wird ein allgemeiner Fehler ausgegeben, da die Details im Protokoll enthalten sind. Wie weiter unten gesagt, verwenden Sie tail -f /var/log/kern.log, um zu verstehen, was los ist.
Sam,
1
dmesg | tailHier erfahren Sie etwas mehr darüber, welche Option Ihnen Probleme bereitet.
HongboZhu

Antworten:

63

Vielleicht hilft das mount error(22): Invalid argument... Möglicher Fehler ist das Argument / s (Modus) im Befehl mount.

  1. Überprüfen Sie Ihre Protokolle auf die aufgetretenen Fehler.

    tail -f  /var/log/kern.log 
    
  2. Entfernen Sie das ungültige Argument

user278458
quelle
9
Das hat bei mir funktioniert. Ich habe den Fehler gefunden CIFS not working, kernel upgrade:No dialect specified on mountund ihn durch [Hinzufügen] vers=1.0zu meiner / etc / fstab ( bbs.archlinux.org/viewtopic.php?id=230952 ) behoben . Ich vermute, dass es durch die Verwendung von Kernel 4.13 verursacht wird.
Blaha
Meine Güte, Gott sei Dank für Stackoverflow. Gleiches Problem auf Ubuntu. Ich habe vers = 2.0 hinzugefügt und es funktioniert. Aktuelle mount.cifs ist um 6.4. Wahrscheinlich einige Verbesserungen an Anmeldeinformationen, aber jetzt nicht in CIFS
eingraben
6

Ich hatte das gleiche Problem unter Arch Linux mit der folgenden Meldung im Protokoll:

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

Für mich bestand die Lösung darin, eine ältere Version von cifs anzugeben (standardmäßig war es 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
Igor Avdeev
quelle
3

Eine weitere mögliche Ursache ist das Vorhandensein von sec=ntlmin /etc/fstabund dessen Inkompatibilität mit neueren SMB-Protokollen wie SMB3.

Obwohl dies nicht der Fall ist, kann dies auch zu mount error(22): Invalid argumentFehlern führen, wie dies bei mir nach dem Upgrade eines alten Servers der Fall war .

Auch wenn kern.logein Vorschlag dazu enthalten ist specify vers=1.0 on mount, kann es sicherer sein, ihn zu entfernen oder sec=ntlmstattdessen zu ändern . Verwenden Sie die Standardeinstellungen möglicherweise, um die automatische Aushandlung der SMB-Version und -Sicherheit zu ermöglichen, oder geben Sie kompatible Optionen an, z vers=3.0,sec=ntlmssp.

Dies hängt natürlich von den Funktionen Ihres SMB-Servers ab, aber ich würde versuchen, dies zu vermeiden, vers=1.0sofern dies nicht erforderlich ist.

Drgrog
quelle
2

Ich habe eine falsche URL verwendet. Es hätte sein sollen://user.my-backup.com/backup

Niels Kristian
quelle
2

In meinem Fall wurde dieses Problem verursacht, weil ich ein Verzeichnis voller symbolischer Links bereitgestellt hatte. Nachdem ich die symbolischen Links in Windows untersucht hatte, habe ich ihre "echten" Pfade abgerufen und diese stattdessen gemountet.

pzkpfw
quelle
2

Sie können die Versionsinformationen für SMB hinzufügen, um das Problem zu beheben. Was ich getan habe, ist, dass ich vers = 1.0 hinzugefügt habe. Dies ist SMB-Version 1, die mit allen SMB-Treibern funktioniert. Für Ihren Fall sieht es ungefähr so ​​aus

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
Siddharth Kaul
quelle
1

Nach dem Upgrade auf Jessie Debian muss sich das Paket geändert haben. Ich habe guid=0den folgenden fstabMount entfernt und alles hat wieder korrekt funktioniert.

//x.x.x.x/General/  /usr/local/share/general cifs uid=0,guid=0,rw,credentials=/etc/gen-cifspasswd 0 0
Benjamin Stewart
quelle