Mengapa mount gvfs saya tidak muncul di bawah ~ / .gvfs atau / run / user / <login> / gvfs?


35

Dari apa yang saya baca, ketika memasang berbagi jaringan melalui nautilus atau gvfs-mounttitik mount harus di ~/.gvfs. Ini tampaknya tidak menjadi masalah bagi saya: Saya mencoba memasang FTP dan SMB berbagi baik melalui nautilus dan di gvfs-mountbawah Ubuntu Maverick dan Natty dan tidak ada kasus saya melihat titik mount di bawah ~/.gvfs. Saya dapat mengakses bagian yang ditemukan di nautilus, tetapi saya ingin memiliki akses melalui baris perintah, itulah sebabnya saya memerlukan titik mount di sistem file.

Sunting: Debugging setelah jawaban James Henstridge dan komentar enzotib mengungkapkan bahwa di laptop saya gvfs-fuse-daemonberjalan dan akibatnya gvfs mounts muncul ~/.gvfs, sedangkan pada 2 workstation di mana ~/.gvfstetap kosong gvfs-fuse-daemontidak berjalan. Pada semua 3 mesin ada proses gvfs lain yang berjalan: gvfsd, gvfs-afc-volume-monitor, ...

Di laptop, mount | fgrep gvfshasil

gvfs-fuse-daemon on /home/xxx/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=xxx)

Itu menimbulkan pertanyaan:

  • Bagaimana cara saham dipasang tanpa gvfs-fuse-daemonberjalan? Apakah tidak ada titik mount yang dibuat dalam kasus itu dan apakah setiap akses ke share merupakan panggilan perpustakaan gvfs? Daemon mana yang bertanggung jawab? gvfsd?
  • Apa perannya gvfs-fuse-daemon? Apakah itu hanya membuat titik pemasangan sekering ~/.gvfs?

Pembaruan: Pada jam 12.10 dan kemudian, tunggangan berada di bawah /run/user/<login>/gvfs.


2
Bisakah Anda menunjukkan output dari mount | grep gvfs?
enzotib

Jawaban:


12

The ~/.gvfsdirektori harus FUSE sebuah gunung ditangani oleh gvfs-fuse-daemonproses. Jika direktori tampaknya kosong, ini akan menunjukkan bahwa gvfs-fuse-daemontidak memulai dengan benar.

Anda dapat mencoba memulainya secara manual dengan perintah berikut:

/usr/lib/gvfs/gvfs-fuse-daemon ~/.gvfs

Jika gagal, Anda dapat mencoba memeriksa apakah ada hal lain yang dipasang di sana, atau bahkan menghapus dan menciptakan kembali direktori ~ / .gvfs terlebih dahulu. Jika masih gagal, dapatkah Anda memperbarui pertanyaan dan memberikan pesan kesalahan yang dicetak oleh gvfs-fuse-daemon?

** Pada 14,04 daemon dipanggil gvfsd-fusedan dapat ditemukan di /usr/lib/gvfs/gvfsd-fuse.


1
Beberapa penelitian lebih lanjut mengungkapkan bahwa gvfsdseharusnya mulai gvfs-fuse-daemonsecara otomatis ketika gvfsdmendapat permintaan pertama untuk mengakses sistem file jarak jauh. Ada juga bug di ubuntu / debian yang membuat ~/.gvfsdirektori tidak dapat dibaca ketikagvfs-fuse-daemon crash dan menghasilkan pesan kesalahan Transport endpoint tidak terhubung .
kynan

Apakah itu pernah diselesaikan mengapa gvfsd tidak memulai gvfs-fuse-daemonsecara otomatis? Di bawah RHEL tampaknya berfungsi seperti yang diharapkan untuk root tetapi tidak untuk pengguna yang tidak memiliki hak.
Aaron Copley

Tidak benar-benar menjawab pertanyaan "Apa peran gvfs-fuse-daemon", dan "Bagaimana share dipasang tanpa gvfs-fuse-daemon berjalan?". gvfs-fuse-daemon memungkinkan opsi seperti allow_root yang diabaikan secara default saat menggunakan gvfs-mount. Jadi menjawab pertanyaan-pertanyaan itu akan membantu memecahkan misteri abadi ini di sini.
Nuzzolilo

Ada peringatan lain! gvfs-mountmembutuhkan DBUS dan Anda hanya akan mendapatkan mountpoint ketika gvfs-mountmenggunakan SESI DBUS YANG SAMA sebagai gvfs-fuse-daemon. Karena itu, jika Anda menggunakan mesin SSH dan menyalakan a dbus-daemonuntuk sesi Anda, Anda juga harus menelurkan individu gvfs-fuse-daemonuntuk sesi Anda.
user1129682

Ya, 5 tahun kemudian dan ini sepertinya masih menjadi masalah
Stuart Axon

20

Memecahkan masalah (semacam).

Di Ubuntu 12.10 mountpoint muncul di /run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxx.

Semoga itu bisa membantu


4

Di Ubuntu 12.10 jalur diubah:

$ mount |grep gvfs
gvfsd-fuse on /run/user/pcm/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=pcm)

3

Pada Debian 6.0 wheezy, dengan lxde dan nautilus. Saya menemukan direktori ~ / .gvfs kosong juga. Saya mencoba lari

/usr/lib/gvfs/gvfs-fuse-daemon ~/.gvfs

Tapi itu memberitahuku: / dev / fuse: Izin Ditolak.

$ ll /dev/fuse
crw-rw---T 1 root fuse 10, 229 Dec 21 11:59 /dev/fuse

Saya pikir mungkin itu karena saya tidak ada dalam grup fuse, lalu saya menambahkan akun pengguna saya ke grup itu. Setelah reboot, mount gvfs ditampilkan di ~ / .gvfs dengan benar.


3

Saya memiliki masalah yang sama dengan sistem Precise 12,04 saya.

Drive yang muncul terpasang di Nautilus tidak muncul ~/.gvfs, terutama setelah siklus penangguhan / melanjutkan. gvfs-fuse-daemonsedang berjalan, tetapi membunuhnya dan memulai kembali tidak memperbaiki masalah.

Saya menemukan bahwa memulai kembali Nautilus setelah nautilus -qsebab gvfs-fuse-daemondan Nautilus untuk bekerja sama lagi - poin mount muncul kembali.


3

Di versi Ubuntu yang lebih baru, gvfs default untuk pemasangan /run/user/$USER/gvfs/.

Anda dapat memeriksa sendiri di mana titik mount defaultnya adalah dengan mencari garis gvfsd-fuse pengguna Anda /etc/mtab.


2

Saya mengajukan pertanyaan terkait untuk sistem Debian saya, dan jawabannya adalah:

apt-get install gvfs-fuse
adduser <username> fuse

Kemudian reboot. Setelah mount GVFS (via Nautilus), direktori share akan berada di salah satu dari dua tempat, tergantung pada versi Debian atau Ubuntu yang Anda miliki:

/run/user/<username>/gvfs
~/.gvfs

Saya cukup yakin Anda tidak perlu reboot. A systemctl --user restart gvfs-daemonmelakukan trik untukku.
Torkel Bjørnson-Langen

0

Ketika saya ingin mengakses file yang dibagikan dari mesin Windows secara langsung (tidak menjelajahi Nautilus) saya memasang share pada folder di direktori home saya.

Sebagai contoh. Di sana jika ada mesin Windows dengan alamat IP 192.168.16.2pada domain mydomainyang memiliki folder yang dibagi sebagai shareddan saya memiliki direktori di direktori home saya mnt, saya dapat me-mount share mntdan mengaksesnya seolah-olah berada di dalam direktori home saya dengan:

sudo mount -t cifs "//192.168.16.2/shared" /home/stacey/mnt -o credentials=credentials,uid=stacey,gid=stacey

tempat kredensial berisi:

username=stacey
password=mypassword
domain=mydomain

Sekarang saya dapat menggunakan ls /home/stacey/mntuntuk membuat daftar file dan direktori di direktori bersama sharedpada 192.168.16.2dan akses file dalam ini mount point karena saya akan sebuah file pada hard drive lokal saya.

Anda dapat memperoleh informasi lebih lanjut tentang pemasangan saham SMB dengan:

man mount.cifs

Bukan seperti yang diminta OP.
enzotib

2
Tidak, tetapi kynan berkata "tetapi saya ingin memiliki akses melalui baris perintah, itulah sebabnya saya memerlukan titik mount di sistem file", jadi saya hanya mencoba untuk membantu.
Stacey Richards

Terima kasih. Saya seharusnya menyebutkan bahwa saya telah mempertimbangkan solusi ini, tetapi ia juga memiliki 2 kelemahan utama yang membuatnya tidak layak: 1) file kredensial harus berisi kata sandi dalam teks biasa, yang tidak dapat diterima pada mesin bersama, 2) membutuhkan hak root. dan saya butuh solusi yang juga berfungsi pada mesin yang saya tidak punya sudo
kynan

0

Untuk sekarang...

#!/bin/bash
# Add to Cron
# */1 * * * * /root/fixGvfs
w | grep -v root | tail -n +3 | awk '{print $1}' > /tmp/fixGvfsUsers
while read usuario
do
  id=$(id -u $usuario)
  if [ ! -f "/tmp/fixGvfs${id}" ]; then
    umount /run/user/${id}/gvfs
    if [ $? -eq 0 ]; then
      su - $usuario -c "/usr/bin/pkill gvfs*"
      touch "/tmp/fixGvfs${id}"
    fi
  fi
done < /tmp/fixGvfsUsers

3
Penjelasan singkat apa yang akan dilakukan skrip ini akan menyenangkan. Kapan cron-job harus dijalankan?
mook765
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.