一些例子:
- 如果我插入外部 USB 驱动器,它将被安装在下面
/media/$USER/<device-id>
,并且我的文件浏览器将自动在设备下列出安装点。 - 如果我手动将某些内容安装到我的主目录中的常规文件夹中,也会发生同样的情况。但是,如果该文件夹被隐藏,我的文件浏览器将不会列出安装点。
/tmp
例如,文件浏览器也不会列出 中的安装点。
那么挂载点需要什么条件才能自动显示在设备下的文件浏览器中呢?由于 PCManFM 和 Nautilus 的行为看起来完全相同,我相信这可能有一般规则?我可以“强制”安装点(例如,隐藏文件夹或在 中/tmp
)显示在设备下吗?
答案1
块设备有一个标志来指示它们是否可移动。这可以在 的输出中看到lsblk --help
。虽然我没有检查内核源代码,但设备模块是设置此标志的最佳位置。
排除安装在其下的文件系统/tmp
可能是您尝试的文件管理器或其使用的库的单独检查。例如,Dolphin 继续将此类安装展示为可移动驱动器。
Usage:
lsblk [options] [<device> ...]
List information about block devices.
Options:
...
-o, --output <list> output columns
...
Available output columns:
...
RM removable device
...
PCManFM用途GLib 和 Gio图书馆。 鹦鹉螺可能也是如此。 海豚才不是。我不知道他们遵循的确切规则,但你可以检查他们的来源。
更多内容请参见如何判断 SCSI 设备是否可移动?
答案2
PCManFM用途GNOME 语言库其中有一个功能g_unix_mount_guess_should_display
于gio/gunixmounts.c
它定义了挂载点显示的条件:
/* Never display internal mountpoints */
(...)
/* Only display things in /media (which are generally user mountable)
and home dir (fuse stuff) and /run/media/$USER */
(...)
/* Hide mounts within a dot path, suppose it was a purpose to hide this mount */
(...)
/* Check /run/media/$USER/. If running as root, display any mounts below
* /run/media/. */
(...)
/* Avoid displaying mounts that are not accessible to the user.
还有一个问题线程讨论在更多位置搜索挂载点的更改:https://gitlab.gnome.org/GNOME/glib/-/issues/1043