Montowanie dysku cifs daje: błąd montowania (22): niepoprawny argument

44

Próbuję uruchomić:

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

Nadal jednak pojawia się następujący błąd:

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

Co ja robię źle?

Niels Kristian
źródło
1
Dwa możliwe problemy: źródłem jest adres URL, który może nie rozwiązać problemu lub nie reklamuje Samby; i identyfikator UID / gid należy wyrazić liczbowo. Czy przeczytałeś poleconą manstronę?
douggro
3
Mount powinien naprawdę zwrócić lepszy komunikat o błędzie. Wiedząc, który argument jest nieprawidłowy, ten komunikat o błędzie byłby o wiele bardziej pomocny.
Gregory Arenius
1
Instalowanie powoduje ogólny błąd, ponieważ szczegóły znajdują się w dzienniku. Jak powiedziano poniżej, użyj tail -f /var/log/kern.log, aby zrozumieć, co się dzieje.
Sam
1
dmesg | tailmówi ci nieco więcej o tym, która opcja sprawia ci problemy.
HongboZhu

Odpowiedzi:

63

może to pomaga w tym mount error(22): Invalid argument... możliwym błędem jest argument / s (tryb) w poleceniu mount.

  1. sprawdź dzienniki napotkanych błędów.

    tail -f  /var/log/kern.log 
    
  2. usuń niepoprawny argument

użytkownik278458
źródło
9
To zadziałało dla mnie. Znalazłem błąd CIFS not working, kernel upgrade:No dialect specified on mounti rozwiązałem go [dodając] vers=1.0do mojego / etc / fstab ( bbs.archlinux.org/viewtopic.php?id=230952 ). Podejrzewam, że jest to spowodowane użyciem jądra 4.13.
blaha,
Jezu, dzięki Bogu za przepełnienie stosu. Ten sam problem na Ubuntu. Dodałem vers = 2.0 i działa. Obecny mount.cifs wynosi 6.4. Prawdopodobnie niektóre ulepszenia poświadczeń, ale nie kopanie teraz w CIFS ...
dturvene
6

Miałem ten sam problem w Arch Linux, z tym komunikatem w logu:

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

Dla mnie rozwiązaniem było określenie starszej wersji cifs (domyślnie była to 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
źródło
3

Inną możliwą przyczyną jest obecność sec=ntlmw /etc/fstabi jego niekompatybilność z nowych protokołów SMB jak SMB3.

Chociaż nie jest to przypadek OP, może to również powodować mount error(22): Invalid argumentbłędy, tak jak zrobiłem to po uaktualnieniu starego serwera.

Mimo że kern.logzawiera sugestię specify vers=1.0 on mount, usunięcie lub zmiana może być bezpieczniejsza sec=ntlm. Być może użyj wartości domyślnych, aby umożliwić automatyczną negocjację wersji SMB i bezpieczeństwa, lub określ kompatybilne opcje, takie jak vers=3.0,sec=ntlmssp.

Oczywiście zależy to od funkcji twojego serwera SMB, ale starałbym się tego unikać, vers=1.0chyba że to konieczne.

drgrog
źródło
2

Użyłem niewłaściwego adresu URL. To powinno być://user.my-backup.com/backup

Niels Kristian
źródło
2

W moim przypadku ten problem został spowodowany, ponieważ podłączyłem katalog pełen dowiązań symbolicznych. Po zbadaniu dowiązań symbolicznych w systemie Windows dostałem ich „prawdziwe” ścieżki i zamiast tego je zamontowałem.

pzkpfw
źródło
2

Możesz dodać informacje o wersji dla SMB, aby rozwiązać problem. Dodałem vers = 1.0. To jest SMB wersja 1, która działa ze wszystkimi sterownikami smb. W twoim przypadku będzie to wyglądać mniej więcej tak

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
źródło
1

Po aktualizacji do Jessie Debian pakiet musiał się zmienić. Usunąłem guid=0z poniższego fstabzestawu i wszystko znowu działało poprawnie.

//x.x.x.x/General/  /usr/local/share/general cifs uid=0,guid=0,rw,credentials=/etc/gen-cifspasswd 0 0
Benjamin Stewart
źródło