如何在不使用 Unity 或 Gnome Shell 时让 gvfs 自动挂载可移动设备

如何在不使用 Unity 或 Gnome Shell 时让 gvfs 自动挂载可移动设备

早在 13.04 版中,我就从使用 Unity 切换到使用 i3 的 Gnome 会话。我的设置基于这个

$ cat /usr/share/xsessions/gnome-i3.desktop
[Desktop Entry]
Name=GNOME with i3
Comment=A GNOME fallback mode session using i3 as the window manager.
Exec=gnome-session --session=i3
TryExec=gnome-session
Icon=
Type=Application

$ cat /usr/share/gnome-session/sessions/i3.session
[GNOME Session]
Name=gnome-i3
RequiredComponents=gnome-settings-daemon;i3;

在 13.04 和 13.10 中,自动挂载的工作方式与 Unity 中一样。如果我插入可移动驱动器(例如:USB 拇指驱动器),它会挂载在/media/$USER/$VOLUME_LABEL

在 14.04 下,如果我使用 Unity,它仍然有效,但在我首选的 Gnome+i3 会话中它不再有效。

如果我启动 nautilus(在 Gnome+i3 会话中)并插入驱动器,我可以在左窗格中看到未安装的驱动器,但它没有弹出按钮。它也不会显示在 的输出中df。如果我随后单击该驱动器,则会出现一个弹出按钮,它也会显示在 的输出中df。因此,看来 nautilus 是“按需”安装卷的。

我还发现我可以运行gvfs-mount -oi来查看 gvfs 事件的发生,并且当驱动器连接时它会生成一对如下事件:

Drive connected:    'Lexar USB Flash Drive'
  Drive(0): Lexar USB Flash Drive
    Type: GProxyDrive (GProxyVolumeMonitorUDisks2)
    ids:
     unix-device: '/dev/sdg'
...

Volume added:       'ALLMYDATAZ'
  Volume(0): ALLMYDATAZ
    Type: GProxyVolume (GProxyVolumeMonitorUDisks2)
    ids:
     class: 'device'
     unix-device: '/dev/sdg1'
     uuid: 'BE64-1766'
     label: 'ALLMYDATAZ'
    themed icons:  ...
    symbolic themed icons:  ...
    can_mount=1
    can_eject=1
    should_automount=1
    sort_key=gvfs.time_detected_usec.1404417627659873

(请注意should_automount=1,它仍然不会自动挂载。)

然后我可以使用 手动安装驱动器gvfs-mount -d /dev/sdg1

那么... 是否有一些预先存在的工具将它们联系在一起,安装unix-device所有具有的“卷添加”事件should_automount=1?也就是说,在将可移动卷添加到系统时安装它们?

请注意我不是正在寻找一种在登录或系统启动时挂载东西的方法。我希望它们在插入时挂载。

答案1

由于这个问题没有得到任何答案,我继续写道gvfs 自动挂载

运行时,它将监听“volume-added”事件,如果添加的卷已设置“should_automount”,则将其挂载。当卷挂载时,它还会生成桌面通知。

相关内容