Bagaimana cara me-mount share SMB dari baris perintah?

78

Saya ingin memasang berbagi jaringan SMB dari baris perintah (terminal); bagaimana saya melakukannya?

Saya menggunakan Mac OS X 10.6.4.

Eyvind
sumber

Jawaban:

71

Anda dapat dengan mudah mencapai ini menggunakan mount_smbfs(yang, sebenarnya, pembungkus untuk mount -t smbfs):

mount_smbfs //user@SERVER/folder ./mntpoint

Secara opsional, tambahkan workgroup:

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

Anda bisa, tentu saja, mengubah ./mntpoint(untuk sesuatu seperti /Volumes/smb).

Setelah melakukan ini, cukup buka ./mntpointuntuk menelusuri data Anda.

Untuk melepas, gunakan perintah berikut:

umount ./mntpoint
Studer
sumber
2
Saya mendapatkan: `mount_smbfs: mount error: path: Input / output error ', sementara mount menemukan melalui Finder-> Connect to Server?
Ian Vaughan
Bagaimana cara saya melakukannya jika nama pengguna saya memiliki @ char di dalamnya? Misalnya ketika saya menggunakan akun microsoft seperti [email protected]? Saya mencoba memberikan nama pengguna dalam tanda kutip tunggal dan ganda tetapi tidak berhasil ..
Yashvit
2
Saya mendapatkan kesalahan ini:mount_smbfs: could not find mount point /Volumes/Share: No such file or directory
Iulian Onofrei
11
Kutipan dari man mountpada OS X Yosemite:Note: You should always use the system mount command and never call mount_smbfs directly.
ssc
3
@Yashvit: Ubah '@' menjadi '% 40'
WGroleau
70

Gunakan open(1)perintah dan URL:

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

Pro: Membuat titik mount /Volumesuntuk Anda.

Cons: Memerlukan Finder untuk berjalan.

tlindner
sumber
4
saya lebih suka versi ini untuk koneksi cepat di jaringan lokal saya, di sana semua pengguna diketahui, jadi ini adalah perintah yang lebih sederhana kemudian menggunakan mount_smbfs - di mana saya benar-benar memiliki masalah mengenai jalur yang tidak ada - sedangkan jika saya perlu terhubung ke beberapa server baru dengan sistem file khusus, atau saya perlu mencoba pengguna lain atau menginginkan titik mount berbeda - ok - tetapi seberapa sering hal ini terjadi ... jadi ibu jari saya naik untuk solusi yang lebih sederhana ini! Sudah selesai dilakukan dengan baik! Ok saya seorang Terminal freak yang masih menjalankan Finder, tapi itu seperti 90% dari kita, kan?
perangkat lunak hexerei
Tidak Finderselalu dibuka, setidaknya sebagai suatu proses?
Iulian Onofrei
1
@Iulian Onofrei: Tidak, kecuali jika pengguna login secara interaktif. Saya perlu menggunakan mountperintah langsung dalam cronpekerjaan. Menggunakan openperintah, ini akan gagal jika sesi interaktif hilang, misalnya, setelah listrik mati.
George
Juga, perhatikan bahwa openselalu keluar seolah-olah itu berhasil jika melewati perintah bersama ke Finder, bahkan jika perintah kemudian gagal terhubung ke drive jaringan.
Jonathan Wren
24

Anda harus melihat bantuan mount:

man mount

Setelah diperiksa lebih dekat, Anda akan melihat bahwa tipe sistem file adalah:

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

Kata sandi (dan secara teoritis nama pengguna) adalah opsional.

Hasil dari perintah di atas tidak akan menghasilkan (jika semua berjalan ok), tetapi a cd /SomeLocalFolderOfChoice, akan menghasilkan hasil yang jauh. Harap dicatat bahwa SomeLocalFolderofChoice harus ada.

Anda juga dapat menggunakan mount_smbfs untuk mengganti mount -t smbfs.

Martin Marconcini
sumber
5

Apa yang berhasil bagi saya untuk membuatnya me-mount saat boot:

==> /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

Untuk beberapa alasan, baik nama pendek maupun FQDN server tidak berfungsi, jadi saya menggunakan 'ping (nama) untuk mendapatkan IP. Dengan kata lain, DNS akan menyelesaikan nama, tetapi mount_smbfs tidak bisa.

Dan saya tidak bisa meletakkan mount point di / Volume, karena boot up akan menghapusnya.

Satu kekhasan: Setelah ini berfungsi dengan baik selama beberapa hari, selama dua atau tiga hari, LibreOffice, Adobe Reader, dan Finder tidak dapat menemukan SATU dari dua bagian, tetapi shell dan TextEdit tidak memiliki masalah. Setelah dua atau tiga hari, itu secara misterius mulai bekerja lagi.

Jika Anda melakukan pengeditan ini dan tidak ingin mem-boot ulang, Anda dapat memasangnya dengan 'auto mount -vc'

Perbarui: Lebih banyak keanehan. (1) Ada dua sistem WiFi di sini, dan salah satunya tidak memiliki akses ke server Windows. Beberapa kali seminggu, satu atau kedua router turun. Jika "yang bagus" turun dan MacBook secara otomatis terhubung ke yang lain, alih-alih memberi tahu saya bahwa drive itu offline, driver SMB mengatakan "Terlalu banyak pengguna." (2) Beberapa kali seminggu, saya mendapat "izin ditolak" ketika saya mencoba mengakses file Windows saya. Ini biasanya berlangsung sekitar setengah jam, di mana saya bisa pergi ke bar windows dan masuk dan melihat file dengan ID dan kata sandi yang sama.

WGroleau
sumber
Karena ini telah dua kali diputuskan minggu ini, saya harus menunjukkan bahwa itu ditulis beberapa versi MacOS yang lalu.
WGroleau
4

Menggunakan AppleScript nyaman karena menyimpan kata sandi Anda di Keychain. Fungsi bash:

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

Aktifkan 'mymount' dari bash, masukkan kata sandi melalui popup Keychain standar, dan jika semuanya berjalan dengan baik, volume yang diminta akan dipasang di / Volume.

wytten
sumber
Itu pendekatan yang sempurna juga. Saya tidak suka jawaban yang disetujui karena mount sebagai pengguna root. Menurut pendapat saya, one-liners ini harus menjadi pilihan terbaik: /usr/bin/osascript -e 'mount volume "smb://username:password@server/share"'atauopen /Volumes; open 'smb://username:password@server/share'
laimison
3

Saya akan menambahkan bahwa jika Anda memiliki nama pengguna dari bentuk "workgroup \ nama pengguna", Anda harus memasangnya seperti ini:

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

Sumber: mengadaptasi contoh dari sini

matthieu
sumber
-1

pos lama tetapi bagaimana dengan pemasangan seperti ini:

smb://no_username:password@MACHINENAME 

seperti drive mesin waktu?

BarclayVision
sumber
1
"dari baris perintah (terminal)" ... ini bukan perintah bash yang valid. Saya berasumsi maksud Anda dengan Finder + ⌘K untuk terhubung ke server yang bukan apa yang diminta OP.
mattmc3