答案1
据我所知(我没有直接查看 Nemo 的代码,但我见过很多其他文件管理器),它使用对 UDisks DBus API 的调用。您(可能)可以使用以下命令复制 Nemo 手动执行的调用:
udisksctl mount --block-device=/dev/whatever
它应该显示设备安装的路径(在大多数系统上,它将位于 下/run/media/$USER
,名称与卷标签匹配(如果缺少标签,则为卷 UUID)。
您还可以向此命令传递参数--options=
以为其提供自定义安装选项。
与卸载等效的是:
udisksctl unmount --block-device=/dev/whatever
该方法的缺点是它只能在工作的 DBus 会话内工作,这意味着它在系统启动期间不起作用。
如果“启动时”指的是“登录时”,那么您可以使用pam_mount
PAM 模块,它允许您在登录控制台时挂载文件系统,并在您注销时正确卸载它。可以找到相关文档这里。这实际上是大多数发行版用来处理加密主目录的方法(至少,传统上,它们中的大多数正在慢慢迁移到 VFS Crypto API,但这相当偏离主题)。
如果您用“启动时”来表示“系统启动时”,那么您的情况实际上会更好不是尝试复制 Nemo 用于挂载文件系统的确切方法。更好的方法是自己管理挂载选项,使其完全按照您想要的方式运行。
您在评论中提到您尝试安装的是 NTFS 卷。您的基本/etc/fstab
路线应该如下所示(基于评论中的信息):
/dev/sda3 /mnt/user/Storage ntfs-3g rw,nosuid,nodev,allow_other 0 0
除此之外,您还可以添加其他选项。大多数自动安装工具默认不使用的建议包括:
windows_names
:这将阻止您创建由于命名限制而无法从 WIndows 访问的文件。通常,您不太可能意外创建此类文件(大多数人不使用受限字符,并且大多数地方也不使用保留名称),但它提供了一个很好的安全网,以防万一。hide_dot_files
:这会自动将文件名以 a 开头的文件标记为.
隐藏,从而提高 Windows 和 Linux 之间的一致性。hide_hidden_files
:这将从目录列表中列出具有隐藏属性的文件中排除(即使使用ls -a
)。与上述选项类似的论点,尽管我自己不太喜欢它。streams_interface=xattr
:这将 NTFS 备用数据流公开为扩展属性,允许大多数备份工具正确保存和恢复它们。big_writes
:这显着提高了大型写入的写入性能,但对数据在分区上的外观没有影响。
此外,如果您经常在 WIndows 和 Linux 上使用此卷,您可能需要考虑设置用户映射文件。这将允许一个操作系统中设置的权限在另一个操作系统中正常运行。 NTFS-3G 手册页(检查这里)在“用户映射”部分中有关于如何执行此操作的相当好的文档。
答案2
尼莫使用gio
.
例如,如果您在 Nemo 的“设备”下有一个未安装的 LUKS 设备,并且密钥环之前已记住密码,则您可以从终端安装它,而无需再次输入密码。
首先,您需要知道您尝试安装的卷的直接设备名称。您可以通过输入找到它gio mount -li
。
例如,如果您正在寻找 50GB LUKS 加密设备,您会看到如下内容:
Volume(3): 50 GB Encrypted
Type: GProxyVolume (GProxyVolumeMonitorUDisks2)
ids:
class: 'device'
unix-device: '/dev/dm-3'
现在你可以unix-device
像这样安装:
gio mount -d /dev/dm-3
一切以用户身份。不sudo
。