Jak mogę zamontować udział SMB z wiersza poleceń?


78

Chciałbym zamontować udział sieciowy SMB z linii poleceń (terminal); jak miałbym to zrobić?

Używam Mac OS X 10.6.4.

Odpowiedzi:


71

Możesz to łatwo osiągnąć za pomocą mount_smbfs(który jest tak naprawdę opakowaniem mount -t smbfs):

mount_smbfs //user@SERVER/folder ./mntpoint

Opcjonalnie dodaj grupę roboczą:

mount_smbfs -W workgroup //user@SERVER/folder ./mntpoint

Możesz oczywiście zmienić ./mntpoint(na coś takiego /Volumes/smb).

Po wykonaniu tej czynności wystarczy przejść ./mntpointdo przeglądania danych.

Aby odmontować, użyj następującego polecenia:

umount ./mntpoint

2
Dostaję: `mount_smbfs: mount error: path: Input / output error ', podczas gdy montuje się przez Finder-> Connect to Server?
— Ian Vaughan

Jak to zrobić, jeśli moja nazwa użytkownika zawiera znak @? Na przykład, gdy korzystam z konta Microsoft, takiego jak xyz@microsoft.com? Próbowałem podać nazwę użytkownika w pojedynczym i podwójnym cudzysłowie, ale nie działa.
— Yashvit,

2
Pojawia się ten błąd:mount_smbfs: could not find mount point /Volumes/Share: No such file or directory
— Iulian Onofrei

11
Cytat z man mountsystemu OS X Yosemite:Note: You should always use the system mount command and never call mount_smbfs directly.
— ssc

3
@Yashvit: Zmień „@” na „% 40”
— WGroleau

69

Użyj open(1)polecenia i adresu URL:

open 'smb://username:password@server/share'

Plusy: Tworzy /Volumesdla ciebie punkt montowania .

Minusy: Wymaga działania Findera.


4
wolę tę wersję do szybkich połączeń w mojej sieci lokalnej, tam wszyscy użytkownicy są znani, więc jest to prostsze polecenie niż użycie mount_smbfs - gdzie faktycznie miałem problemy z nieistniejącymi ścieżkami - podczas gdy gdybym musiał połączyć się z jakimś nowym serwerem za pomocą specjalny system plików, albo musiałbym wypróbować innego użytkownika lub chcieć innego punktu montowania - ok - ale jak często to się zdarza ... więc kciuk idzie w górę dla tego prostszego rozwiązania! Dobra robota! Ok, jestem maniakiem terminali, który wciąż ma Findera, ale to około 90% nas, prawda?
— oprogramowanie hexerei

Nie Finderzawsze jest otwarty, przynajmniej jako proces?
— Iulian Onofrei

1
@Iulian Onofrei: Nie, chyba że użytkownik jest zalogowany interaktywnie. Musiałem użyć mountpolecenia bezpośredniego w cronzadaniach. Użycie openpolecenia zakończy się niepowodzeniem, jeśli sesja interaktywna zniknie, np. Po awarii zasilania.
— George,

Pamiętaj również, że openzawsze kończy działanie tak, jakby zakończyło się powodzeniem, jeśli przekazało polecenie do Findera, nawet jeśli polecenie później nie udało się połączyć z dyskiem sieciowym.
— Jonathan Wren

23

Powinieneś rzucić okiem na pomoc wierzchowca:

man mount

Po bliższym przyjrzeniu się zobaczysz, że typ systemu plików to:

mount -t smbfs //username:password@MACHINENAME/SHARENAME /SomeLocalFolderOfChoice

Hasło (i teoretycznie nazwa użytkownika) są opcjonalne.

Wynikiem powyższego polecenia nie będzie danych wyjściowych (jeśli wszystko poszło dobrze), ale a cd /SomeLocalFolderOfChoicepowinno dać wyniki zdalne. Należy pamiętać, że SomeLocalFolderofChoice musi istnieć.

Możesz także użyć mount_smbfs, aby zastąpić mount -t smbfs.


5

Co sprawiło, że zamontowałem je podczas rozruchu:

==> /etc/auto_master <==
#
# Automounter master map
#
+auto_master        # Use directory service
/net            -hosts      -nobrowse,hidefromfinder,nosuid
/home           auto_home   -nobrowse,hidefromfinder
/Network/Servers    -fstab
/-          -static
/-          auto_smb          # add this line <**********

==> /etc/auto_smb <==         # Create this if it doesn't exist <****
/(not Volumes)/Public   -fstype=smbfs,soft smb://(user):(password)@192.168.140.5/data/Public
/(not Volumes)/ WGroleau -fstype=smbfs,soft smb://(user):(password)@192.168.140.5/data/Students/wes_groleau

Z jakiegoś powodu ani krótka nazwa, ani nazwa FQDN serwera nie działały, więc użyłem polecenia ping (nazwa), aby uzyskać adres IP. Innymi słowy, DNS rozwiązałby nazwę, ale mount_smbfs nie mógł.

I nie mogłem umieścić punktu montowania w / Volumes, ponieważ bootowanie go usunęło.

Jedno dziwactwo: po tym, jak działało to dobrze przez kilka dni, przez dwa lub trzy dni, LibreOffice, Adobe Reader i Finder nie mogły znaleźć JEDNEJ z dwóch udziałów, ale powłoka i TextEdit nie miały problemu. Po dwóch lub trzech dniach w tajemniczy sposób znów zaczął działać.

Jeśli wykonasz te zmiany i nie chcesz ponownie uruchamiać komputera, możesz zamontować je za pomocą opcji „auto mount -vc”

Aktualizacja: Więcej dziwactw. (1) Istnieją tutaj dwa systemy WiFi, a jeden z nich nie ma dostępu do serwerów Windows. Kilka razy w tygodniu jeden lub oba routery ulegają awarii. Jeśli „dobry” zejdzie, a MacBook automatycznie połączy się z drugim, zamiast powiedzieć mi, że dysk jest w trybie offline, sterowniki SMB mówią „Zbyt wielu użytkowników”. (2) Kilka razy w tygodniu dostaję „odmowę dostępu” podczas próby dostępu do moich plików Windows. Zwykle trwa to około pół godziny, podczas której mogę przejść do paska systemu Windows i zalogować się i zobaczyć pliki o tym samym identyfikatorze i haśle.


Ponieważ w tym tygodniu została dwukrotnie oceniona, powinienem zaznaczyć, że napisano kilka wersji systemu MacOS temu.
— WGroleau

4

Korzystanie z AppleScript jest wygodne, ponieważ przechowuje hasła w pęku kluczy. Funkcja Bash:

function mymount
{
    osascript <<EOF
mount volume "smb://user@fqdn1/volume1"
mount volume "smb://user@fqdn2/volume2"
EOF
}

Wywołaj „mymount” z bash, wprowadź hasła za pomocą standardowego okna podręcznego pęku kluczy, a jeśli wszystko pójdzie dobrze, żądane woluminy zostaną zamontowane w / Volumes.


To również doskonałe podejście. Nie podoba mi się zatwierdzona odpowiedź, ponieważ montuje się jako użytkownik root. Moim zdaniem te /usr/bin/osascript -e 'mount volume "smb://username:password@server/share"'open /Volumes; open 'smb://username:password@server/share'
— jednowarstwowe

3

Dodałbym, że jeśli masz nazwę użytkownika w formie „grupa robocza \ nazwa użytkownika”, powinieneś ją zamontować w następujący sposób:

mount -t smbfs "//WORKGROUP;username:password@MACHINENAME/SHARENAME" /SomeLocalFolderOfChoice

Źródło: adaptując przykład stąd


-1

stary post, ale co z takim montażem:

smb://no_username:password@MACHINENAME 

jak dyski wehikułu czasu?


1
„z wiersza poleceń (terminal)” ... to nie jest poprawne polecenie bash. Zakładam, że masz na myśli Finder + ⌘K, aby połączyć się z serwerem, co nie jest tym, o co poprosił OP.
— mattmc3
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.