Tại sao các gvfs mount của tôi không hiển thị dưới ~ / .gvfs hoặc / run / user / <login> / gvfs?


35

Từ những gì tôi đọc được, khi gắn kết chia sẻ mạng qua nautilus hoặc gvfs-mountđiểm gắn kết phải ở trong ~/.gvfs. Đây dường như không phải là trường hợp của tôi: Tôi đã thử gắn cả chia sẻ FTP và SMB thông qua cả nautilus và gvfs-mountdưới cả Ubuntu Maverick và Natty và trong mọi trường hợp tôi không thấy bất kỳ điểm gắn kết nào ~/.gvfs. Tôi có thể truy cập vào các chia sẻ chỉ cần tìm trong nautilus, nhưng tôi muốn có quyền truy cập thông qua dòng lệnh, đó là lý do tại sao tôi cần một điểm gắn kết trong hệ thống tệp.

Chỉnh sửa: Gỡ lỗi theo câu trả lời của James Henstridge và bình luận của enzotib tiết lộ rằng trên máy tính xách tay của tôi gvfs-fuse-daemonđang chạy và do đó, gvfs mount xuất hiện ~/.gvfs, trong khi trên 2 máy trạm ~/.gvfsvẫn trống gvfs-fuse-daemonkhông chạy. Trên tất cả 3 máy có gvfs quá trình khác chạy: gvfsd, gvfs-afc-volume-monitor, ...

Trên máy tính xách tay, mount | fgrep gvfssản lượng

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

Điều đó đặt ra câu hỏi:

  • Làm thế nào được chia sẻ mà không gvfs-fuse-daemonchạy? Không có điểm gắn kết được tạo trong trường hợp đó và có phải mọi quyền truy cập vào chia sẻ cuộc gọi thư viện gvfs không? Daemon nào chịu trách nhiệm? gvfsd?
  • Vai trò của là gvfs-fuse-daemongì? Có phải nó chỉ tạo ra một điểm gắn cầu chì trong ~/.gvfs?

Cập nhật: Vào ngày 12.10 trở đi, các giá treo được đặt dưới /run/user/<login>/gvfs.


2
Bạn có thể hiển thị đầu ra của mount | grep gvfs?
enzotib

Câu trả lời:


12

Thư mục ~/.gvfsphải là một mount FUSE được xử lý bởi gvfs-fuse-daemonquá trình. Nếu thư mục có vẻ trống, nó sẽ chỉ ra rằng gvfs-fuse-daemonkhông bắt đầu chính xác.

Bạn có thể thử bắt đầu bằng tay với lệnh sau:

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

Nếu thất bại, bạn có thể thử kiểm tra xem có thứ gì khác được gắn ở đó không, hoặc thậm chí xóa và tạo lại thư mục ~ / .gvfs trước. Nếu mọi thứ vẫn không thành công, bạn có thể cập nhật câu hỏi của mình và cung cấp bất kỳ thông báo lỗi nào được in gvfs-fuse-daemonkhông?

** Vào ngày 14.04, daemon được gọi gvfsd-fusevà có thể được tìm thấy trong /usr/lib/gvfs/gvfsd-fuse.


1
Một số nghiên cứu khác tiết lộ rằng gvfsdđược cho là bắt đầu gvfs-fuse-daemontự động khi gvfsdnhận được yêu cầu đầu tiên truy cập hệ thống tệp từ xa. Ngoài ra còn có một lỗi trong ubfox / debian khiến ~/.gvfsthư mục không thể đọc được khi gvfs-fuse-daemongặp sự cố và tạo thông báo lỗi Điểm cuối vận chuyển không được kết nối .
kynan

Đã bao giờ giải quyết tại sao gvfsdkhông bắt đầu gvfs-fuse-daemontự động? Theo RHEL, nó dường như hoạt động như mong đợi đối với người dùng root nhưng không được ưu tiên.
Aaron Copley

Không thực sự trả lời câu hỏi "Vai trò của gvfs-fuse-daemon" là gì và "Làm thế nào các cổ phần được gắn mà không có gvfs-fuse-daemon chạy?". gvfs-fuse-daemon cho phép các tùy chọn như allow_root được bỏ qua theo mặc định khi sử dụng gvfs-mount. Vì vậy, trả lời những câu hỏi đó sẽ giúp giải quyết bí ẩn vĩnh cửu này ở đây.
Nuzzolilo

Có một cảnh báo khác! gvfs-mountyêu cầu DBUS và bạn sẽ chỉ nhận được một điểm gắn kết khi gvfs-mountsử dụng CÙNG DBUS SESSION như gvfs-fuse-daemon. Do đó, nếu bạn đang SSH vào máy và kích hoạt dbus-daemonphiên cho phiên của mình, bạn cũng phải sinh ra một cá nhân gvfs-fuse-daemoncho phiên của mình.
dùng1129682

Chà, 5 năm sau, nó dường như vẫn còn là một nhiên liệu
Stuart Axon

20

Giải quyết vấn đề (loại).

Trên Ubuntu 12.10, điểm gắn kết xuất hiện trong /run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxx.

Mong rằng sẽ giúp


4

Trong Ubuntu 12.10, các đường dẫn đã được thay đổi:

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

3

Trên Debian 6.0 khò khè, với lxde và nautilus. Tôi thấy thư mục ~ / .gvfs trống quá. Tôi đã cố chạy

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

Nhưng nó nói với tôi: / dev / fuse: Quyền bị từ chối.

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

Tôi nghĩ rằng có lẽ vì tôi không thuộc nhóm cầu chì nên tôi đã thêm tài khoản người dùng của mình vào nhóm đó. Sau khi khởi động lại, gvfs mount hiển thị chính xác trong ~ / .gvfs.


3

Tôi có một vấn đề tương tự với hệ thống Chính xác 12.04 của tôi.

Các ổ đĩa xuất hiện gắn trong Nautilus không xuất hiện ~/.gvfs, đặc biệt sau một chu kỳ đình chỉ / tiếp tục. gvfs-fuse-daemonđang chạy, nhưng giết nó và khởi động lại không khắc phục được vấn đề.

Tôi thấy rằng khởi động lại Nautilus sau khi nautilus -qnguyên nhân gvfs-fuse-daemonvà Nautilus hợp tác trở lại - các điểm gắn kết lại xuất hiện.


3

Trong các phiên bản mới hơn của Ubuntu, gvfs mặc định để cài đặt /run/user/$USER/gvfs/.

Bạn có thể tự kiểm tra xem điểm gắn kết mặc định của nó ở đâu bằng cách tìm dòng gvfsd-fuse của người dùng của bạn /etc/mtab.


2

Tôi đã hỏi một câu hỏi liên quan cho hệ thống Debian của tôi và câu trả lời là:

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

Sau đó khởi động lại. Sau khi gắn kết GVFS (thông qua Nautilus), thư mục chia sẻ sẽ ở một trong hai nơi, tùy thuộc vào phiên bản Debian hoặc Ubuntu mà bạn có:

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

Tôi khá chắc chắn rằng bạn không phải khởi động lại. A systemctl --user restart gvfs-daemonđã lừa tôi.
Torkel Bjørnson-Langen

0

Khi tôi muốn truy cập trực tiếp các tệp được chia sẻ từ máy Windows (không duyệt qua Nautilus), tôi sẽ chia sẻ chia sẻ trên một thư mục trong thư mục chính của mình.

Ví dụ. Ở đó, nếu có một máy Windows có địa chỉ IP 192.168.16.2trên tên miền mydomaincó thư mục được chia sẻ sharedvà tôi có một thư mục trong thư mục chính của mình được gọi mnt, tôi có thể gắn chia sẻ mntvà truy cập nó như trong thư mục chính của tôi với:

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

nơi thông tin chứa:

username=stacey
password=mypassword
domain=mydomain

Bây giờ tôi có thể sử dụng ls /home/stacey/mntđể liệt kê các tập tin và thư mục trong thư mục chia sẻ sharedtrên 192.168.16.2và truy cập bất kỳ tập tin trong này điểm lắp như tôi sẽ là một tập tin trên ổ cứng của tôi địa phương.

Bạn có thể nhận thêm thông tin về việc gắn cổ phiếu SMB với:

man mount.cifs

Không phải những gì OP yêu cầu.
enzotib

2
Không, nhưng kynan nói "nhưng tôi muốn có quyền truy cập thông qua dòng lệnh, đó là lý do tại sao tôi cần một điểm gắn kết trong hệ thống tệp", vì vậy tôi chỉ đang cố gắng giúp đỡ.
Stacey Richards

Cảm ơn. Tôi nên đề cập rằng tôi đã xem xét giải pháp này, nhưng nó có 2 nhược điểm lớn khiến nó không khả thi: 1) tệp thông tin đăng nhập phải chứa mật khẩu trong văn bản thuần, không thể chấp nhận được trên máy dùng chung, 2) nó yêu cầu quyền root và tôi cần một giải pháp cũng hoạt động trên các máy mà tôi không có sudo
kynan

0

Bây giờ ...

#!/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
Một lời giải thích ngắn gọn những gì kịch bản này sẽ làm sẽ tốt đẹp. Khi cron-job nên chạy?
mook765
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.