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?


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


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

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.


2

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


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.


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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.