For the complete documentation index, see llms.txt. This page is also available as Markdown.

23.3 文件系统自动挂载

FreeBSD 提供多种自动挂载方式。

automount 自动挂载

注意

automount 对普通用户的权限控制能力有限,主要以 root 身份执行挂载操作;如果需要更精细的权限控制机制,建议使用 DSBMD。

automount 已内置于 FreeBSD 基本系统,配合 devd(8) 监控设备插入事件并自动执行挂载操作,默认挂载点位于 /media 目录。

automount 自动挂载工作流程:

automount 自动挂载工作流程:

  插入 USB 设备
     
     
  devd(8) 设备状态监测
     监测设备事件(GEOM::DEV)
     
       触发
     
  automount -c
     
     
  autofs(4) 自动挂载文件系统
     读取 /etc/auto_master 配置
     
     
  挂载至 /media/
     按标签或设备节点命名

/etc/auto_master 文件控制着 automount 的行为,查看该文件:

文件说明:

选项
说明

-hosts

查询远程 NFS 服务器并映射其导出的共享

-media

查询还未挂载但包含有效文件系统的设备。通常用于访问可移动媒体上的文件

-noauto

按照在 fstab(5) 中配置为 noauto 的文件系统进行挂载

-null

禁止 automountd(8) 挂载任何内容

要自动挂载可移动媒体,需将文件 /etc/auto_master/media 行首的注释符号移除,如下:

此后,将以下内容添加到设备状态监测进程文件 /etc/devd.conf 中:

注意

不应添加到现有注释之间。

通过将以下行添加到 /etc/rc.conf 文件中,可使 autofs(4) 在系统启动时自动运行:

每个可自动挂载的文件系统都会在 /media/ 下对应一个目录。该目录以文件系统标签命名。如果标签缺失,目录名称将以设备节点命名。查看挂载文件:

文件系统会在首次访问时自动挂载,并在闲置一段时间后自动卸载。也可以手动卸载自动挂载的设备:

未竟事项

中文乱码

/etc/auto_master/media 行末尾追加 -L=zh_CN.UTF-8。需注意 -L=zh_CN.UTF-8 是 mount_msdosfs(8) 的专有参数,而其他文件系统的挂载程序无法识别该参数,将导致其他设备无法挂载。

参考文献:

DSBMD 自动挂载

DSBMD(Desktop Scriptable Block Device Manager Daemon)是 FreeBSD 的介质和文件系统类型检测守护进程,采用客户端 - 服务器架构,允许客户端以受控方式挂载存储设备。默认配置即可自动检测并挂载可移动介质。

安装 DSBMD

DSBMD 系统包含守护进程和客户端两部分,可通过以下方式安装:

  • 使用 pkg 包管理器安装:

  • 或者使用 Ports 系统编译安装:

客户端可根据实际需求选择安装其中之一。桌面环境下推荐使用 dsbmc 图形界面客户端,便于操作。

配置 DSBMD

技术要点

DSBMD 系统分为守护进程和客户端两个组成部分。客户端向 DSBMD 发起挂载、卸载或弹出介质的请求,也可设置 CD/DVD 的读取速率;守护进程负责接收并执行这些请求。守护进程是系统特权进程,拥有执行所有操作的权限,而客户端作为普通用户进程受限于系统权限设置。权限不足的用户发出的挂载请求,由守护进程依据配置文件中的用户和组设定验证后决定是否允许。

DSBMD 客户端 - 服务器架构:

守护进程配置文件路径为 /usr/local/etc/dsbmd.conf

默认情况下,属于 wheeloperator 用户组的成员可以挂载设备。如果需要授予其他用户挂载权限,可修改配置文件中的相关配置项。

启用守护进程需执行以下命令:

Qt 客户端

dsbmc 客户端仅在运行时才会向守护进程发送请求,因此需在桌面环境中启动该客户端程序。

启动 dsbmc 后,可在系统托盘区域观察到其图标。

系统托盘

打开主窗口,依次点击 preferencesgeneral settings,勾选 automatically mount devices 以启用自动挂载功能。

图形界面
设置自动挂载

插入 U 盘等可移动介质后,系统桌面将显示挂载提示信息:

插入挂载提示

挂载点默认位于 /media 目录,且挂载点的属主为发起挂载请求的客户端用户。

mount 信息

Xfce 自动启动配置

在 Xfce 桌面环境,可以配置 dsbmc 自动启动。点击 设置会话和启动,按如下方式配置:

开机自启

命令行客户端

启动 dsbmc-cli 命令行客户端:

常用参数包括:

参数
说明

-e

弹出设备

-m

挂载设备

-u

卸载设备

可在 shell 启动配置文件或桌面启动文件(例如 ~/.xinitrc 文件、~/.xprofile 文件)中添加以下命令:

该配置以后台方式启动 dsbmc-cli 并启用自动挂载。-a 参数用于启用自动挂载模式,客户端持续监控设备事件并自动执行相应操作,此方式不提供图形界面提示。

守护进程配置详解

默认配置通常满足基本使用需求;如需更细致地控制挂载,则需修改守护进程的配置文件,其路径为 /usr/local/etc/dsbmd.conf

usermount 配置项说明

usermount 配置项控制是否允许以普通用户身份挂载设备:

配置文件默认启用了 usermount 选项,但要生效,还需在系统内核参数中启用 vfs.usermount,可在 /etc/sysctl.conf 文件中添加以下内容:

  • 启用 usermount 时,挂载程序将以普通用户身份执行;未启用 usermount 时,挂载程序以 root 特权用户身份执行。

  • 无论是否启用 usermount,挂载点的属主均为发起请求的客户端用户。

允许自动挂载的用户授权

默认情况下,允许 operator 和 wheel 用户组的成员连接:

通过修改 allow_usersallow_groups 配置项,可以管理自动挂载功能的授权用户。

修改挂载点及其下文件目录访问权限(以 NTFS 为例)

以挂载 NTFS 文件系统为例,可以修改文件访问权限为 640(rw-r-----),目录访问权限为 750(rwxr-x---)。

NTFS 的挂载配置包含两种命令形式:启用 usermount 时使用 ntfs_mount_cmd_usr,否则使用 ntfs_mount_cmd。示例如下:

此处为 ntfs-3g 指定了挂载选项中的文件权限掩码 fmask=137 和目录权限掩码 dmask=027,用于控制挂载后文件和目录的权限设置。

改变挂载权限

文件结构

参考文献

最后更新于