20.4.USB 存储设备
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
许多外部存储解决方案,如硬盘、USB 闪存驱动器、光盘和 DVD 刻录机,都使用通用串行总线(USB)。FreeBSD 支持 USB 1.x、2.0 和 3.0 设备。
注意
USB 3.0 支持与某些硬件不兼容,包括 Haswell(Lynx point)芯片组。如果 FreeBSD 启动时出现
failed with error 19
消息,请在系统 BIOS 中禁用 xHCI/USB3。
USB 存储设备的支持已经内建在 GENERIC 内核中。对于自定义内核,请确保在内核配置文件中包含以下行:
FreeBSD 使用 驱动程序,通过 SCSI 子系统访问 USB 存储设备。由于任何 USB 设备都会被系统视为 SCSI 设备,因此如果 USB 设备是 CD 或 DVD 刻录机,不要 在自定义内核配置文件中包含 device atapicam
。
本节的其余部分演示了如何验证 USB 存储设备是否被 FreeBSD 识别,并如何配置该设备以便使用。
要测试 USB 配置,插入 USB 设备。使用 dmesg
确认驱动器是否出现在系统消息缓冲区中。它应类似如下所示:
品牌、设备节点(da0)、速度和大小会根据设备不同而有所不同。
由于 USB 设备被视为 SCSI 设备,因此可以使用 camcontrol
列出连接到系统的 USB 存储设备:
警告
让不可信的用户挂载任意媒体(如下面所述启用
vfs.usermount
)从安全角度来看是不安全的。大多数文件系统并未为防范恶意设备而构建。
注意
如果系统中还安装了内置 SCSI 磁盘,请将第二行修改如下:
接下来,在 /etc/rc.conf 中启用规则集:
然后,通过在 /etc/sysctl.conf 中添加以下行,指示系统允许普通用户挂载文件系统:
由于此设置只在下次重启后生效,可以立即使用 sysctl
设置此变量:
最后一步是创建一个目录,在该目录下挂载文件系统。此目录需要由将要挂载文件系统的用户拥有。可以通过 root
创建一个由该用户拥有的子目录,如 /mnt/username。在以下示例中,将 username 替换为用户的登录名,将 usergroup 替换为用户的主组:
假设插入了一根 USB 闪存驱动器,出现了设备 /dev/da0s1。如果该设备格式化为 FAT 文件系统,用户可以使用以下命令进行挂载:
在设备被拔出之前,必须首先卸载它:
拔出设备后,系统消息缓冲区将显示类似以下内容的消息:
USB 设备可以通过取消注释 /etc/auto_master 中的这一行来自动挂载:
然后,将以下内容添加到 /etc/devd.conf 文件中:
立即启动服务:
每个可以自动挂载的文件系统都会作为 /media/ 下的一个目录出现。该目录的名称是文件系统标签。如果标签缺失,目录名称将以设备节点命名。
文件系统会在首次访问时自动挂载,并在一段时间的非活动后自动卸载。自动挂载的驱动器也可以手动卸载:
该机制通常用于内存卡和 USB 闪存驱动器。它也可以用于任何块设备,包括光驱或 iSCSILUN。
或者,可以使用 usbconfig
列出设备。有关此命令的更多信息,请参考 。
如果设备尚未格式化,请参考 了解如何格式化并创建 USB 驱动器上的分区。如果驱动器已包含文件系统,可以按照 中的说明进行挂载。
为了使设备能够作为普通用户挂载,一种解决方案是将所有使用该设备的用户添加到 operator
组中,使用 。接下来,确保 operator
组能够读写设备,可以在 /etc/devfs.rules 中添加以下行:
这将把前三个 SCSI 磁盘(da0 到 da2)排除出 operator
组。请将 3 替换为内置 SCSI 磁盘的数量。有关此文件的更多信息,请参考 。
如果 和 已经在运行,则重新加载配置:
通过将以下行添加到 /etc/rc.conf 文件中,可以设置 在启动时启动:
需要启用 ,默认情况下已启用。