〜/ .gvfsまたは/ run / user / <login> / gvfsの下にgvfsマウントが表示されないのはなぜですか?


35

私が読んだことから、nautilus経由でネットワーク共有をマウントするとき、またはgvfs-mountマウントポイントはにあるはず~/.gvfsです。これは私には当てはまらないようです:nautilusとgvfs-mountUbuntu MaverickとNattyの両方でFTPとSMBの両方の共有をマウントしようとしましたが、いずれの場合にもマウントポイントが表示されませんでした~/.gvfs。nautilusで見つけた共有にアクセスできますが、コマンドラインからアクセスしたいので、ファイルシステムにマウントポイントが必要です。

編集: James Henstridgeの答えとenzotibのコメントに従ってデバッグすると、私のラップトップでgvfs-fuse-daemonはgvfsマウントが表示され~/.gvfs~/.gvfs空のままの2つのワークステーションではgvfs-fuse-daemon実行されないことが明らかになりました。3つのマシンすべてで、他のgvfsプロセスが実行されています:gvfsdgvfs-afc-volume-monitor ...

ラップトップでmount | fgrep gvfsは、

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

それは質問を提起します:

  • gvfs-fuse-daemon実行せずに共有はどのようにマウントされますか?その場合、マウントポイントは作成されず、共有へのすべてのアクセスはgvfsライブラリの呼び出しですか?どのデーモンが原因ですか?gvfsd
  • の役割はgvfs-fuse-daemon何ですか?ヒューズマウントポイントのみを作成し~/.gvfsますか?

更新: 12.10以降では、マウントはの下にあり/run/user/<login>/gvfsます。


2
の出力を表示できますmount | grep gvfsか?
エンゾチブ

回答:


12

~/.gvfsディレクトリには、FUSEがで扱うマウントする必要がありますgvfs-fuse-daemonプロセス。ディレクトリが空のように見える場合、それはgvfs-fuse-daemon正しく起動しなかったことを示します。

次のコマンドを使用して、手動で起動してみてください。

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

それが失敗した場合は、他に何かがマウントされているかどうかを確認するか、最初に〜/ .gvfsディレクトリを削除して再作成することもできます。それでも問題が解決しない場合は、質問を更新して、エラーメッセージを提供してくださいgvfs-fuse-daemon

** 14.04では、デーモンが呼び出されgvfsd-fuse、で見つけることができます/usr/lib/gvfs/gvfsd-fuse


1
さらにいくつかの調査により、リモートファイルシステムにアクセスするための最初の要求を取得すると自動的にgvfsd開始することになっていることが明らかgvfs-fuse-daemongvfsdなりました。また、ubuntu / debianにはバグがあり~/.gvfsgvfs-fuse-daemonクラッシュするとディレクトリが読めなくなり、トランスポートエンドポイントが接続されていませんというエラーメッセージが表示されます。
キナン

なぜ自動的にgvfsd開始しないのか、これまでに解決されましたかgvfs-fuse-daemon?RHELでは、rootで期待どおりに動作するようですが、非特権ユーザーでは動作しません。
アーロンコプリー

「gvfs-fuse-daemonの役割は何ですか」、および「gvfs-fuse-daemonを実行せずに共有をマウントする方法」の質問には本当に答えません。gvfs-fuse-daemonは、gvfs-mountの使用時にデフォルトで無視されるallow_rootなどのオプションを許可します。したがって、これらの質問に答えることは、この永遠の謎をここで解決するのに役立つでしょう。
-Nuzzolilo

別の警告があります!gvfs-mountはDBUSを必要とし、として同じDBUSセッションgvfs-mount使用する場合にのみマウントポイントを取得します。したがって、マシンにSSHで接続し、セッション用に起動する場合は、セッション用に個人を作成する必要もあります。gvfs-fuse-daemondbus-daemongvfs-fuse-daemon
user1129682

まあ、それは5年後です、そして、これはまだ問題であるようです
スチュアート・

20

問題を解決しました(種類)。

Ubuntu 12.10では、マウントポイントが表示されます /run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxxます。

役立つことを願っています


4

Ubuntu 12.10では、パスが変更されました。

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

3

Debian 6.0 wheezyで、lxdeおよびnautilusを使用。〜/ .gvfsディレクトリも空であることがわかりました。走ってみた

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

しかし、それは私に言った:/ dev / fuse:許可が拒否されました。

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

多分それは私がヒューズグループにいないからだと思ったので、そのグループにユーザーアカウントを追加しました。再起動後、gvfsマウントは〜/ .gvfsに正しく表示されます。


3

12.04 Preciseシステムにも同様の問題があります。

Nautilusにマウントされているように見えるドライブは~/.gvfs、特にサスペンド/レジュームサイクルの後、に表示されません。gvfs-fuse-daemon実行中ですが、それを強制終了して再起動しても問題は解決しません。

nautilus -q原因の後にNautilusを再起動しgvfs-fuse-daemon、Nautilusが再び協力することに気付きました。マウントポイントが再び表示されます。


3

Ubuntuの新しいバージョンでは、gvfsはデフォルトでマウントされ/run/user/$USER/gvfs/ます。

でユーザーのgvfsd-fuse行を探して、デフォルトのマウントポイントがどこにあるかを確認できます/etc/mtab


2

私は、関連する質問をし、私のDebianシステムのために、と答えはしました:

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

次に再起動します。GVFSマウント(Nautilus経由)の後、共有ディレクトリは、使用しているDebianまたはUbuntuのバージョンに応じて、次の2つの場所のいずれかになります。

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

再起動する必要はないと確信しています。A systemctl --user restart gvfs-daemonは私のためにトリックをしました。
トーケルビョルソンランゲン

0

Windowsマシンから共有されたファイルに直接アクセスしたい場合(Nautilusを使用せずに)、ホームディレクトリ内のフォルダーに共有をマウントします。

例えば。Windowsマシンは、IPアドレスで存在する場合があり192.168.16.2、ドメイン上のmydomainように共有フォルダを持っているsharedと私はと呼ばれる自分のホームディレクトリ内のディレクトリを持ってmnt、私は上の共有をマウントすることができmnt、それはと私のホームディレクトリ内であったかのように、アクセス:

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

資格情報には次が含まれます。

username=stacey
password=mypassword
domain=mydomain

今、私が使用することができls /home/stacey/mnt、共有ディレクトリ内のファイルやディレクトリの一覧を表示するsharedには192.168.16.2、私は私のローカルハードドライブ上のファイルと同じようにマウントポイントを、この内の任意のファイルやアクセス。

SMB共有のマウントの詳細については、次を参照してください。

man mount.cifs

OPが求めたものではありません。
エンゾチブ

2
いいえ、しかしkynanは「しかし、コマンドライン経由でアクセスしたいので、ファイルシステムにマウントポイントが必要です」と言ったので、私はただ助けようとしています。
ステイシーリチャーズ

ありがとう。私はこの解決策を検討したことを言及すべきでしたが、それは実行不可能にする2つの大きな欠点があります:1)資格情報ファイルにはプレーンテキストのパスワードが含まれている必要があり、共有マシンでは受け入れられません、2)root権限が必要ですsudoがないマシンでも動作するソリューションが必要です
kynan

0

今のところ...

#!/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
このスクリプトが何をするかについての簡単な説明がいいでしょう。cronジョブを実行するタイミング
mook765
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.