20.4.USB 存储设备
许多外部存储解决方案,如硬盘、U 盘、CD 和 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 使用驱动程序 umass(4),它使用 SCSI 子系统来访问 USB 存储设备。由于任何 USB 设备都会被系统视为 SCSI 设备,如果 USB 设备是 CD 或 DVD 刻录机,请不要在定制内核配置文件中包含 device atapicam
。
本节的其余部分演示了如何验证 USB 存储设备是否被 FreeBSD 识别,以及如何配置使用该设备。
20.4.1.设备配置
要测试 USB 的配置,请插上 USB 设备。使用 dmesg
确认该驱动器出现在系统信息缓冲区中。它应该看起来像这样:
品牌、设备节点(da0)、速率和大小将因设备而异。
由于 USB 设备被看作是 SCSI 设备,可以用 camcontrol
列出连接到系统的 USB 存储设备:
另外,可以用 usbconfig
列出设备。请参考 usbconfig(8) 以了解关于这个命令的更多信息。
如果设备还没有被格式化,请参阅“添加磁盘”,了解如何在 U 盘上格式化和创建分区。如果设备带有文件系统,可以使用“挂载和卸载文件系统”中的说明在 root
用户下挂载。
警告
通过启用下面介绍的
vfs.usermount
,以允许不受信的用户挂载任意的设备是不安全的。大多数文件系统都不是为了防范恶意设备而建立的。
为了使普通用户可以挂载设备,可以使用 pw(8) 使设备的所有用户成为 operator
组的成员。接下来,通过在 /etc/devfs.rules 中添加这几行,确保 operator
能够读写设备:
注意
如果系统中也内置安装了 SCSI 磁盘,请将第二行修改如下:
这将使前三个 SCSI 磁盘(从 da0 到 da2)脱离
operator
组。用内置 SCSI 磁盘的数量来替换数字 3。参考 devfs.rules(5) 以了解更多关于这个文件的信息。
接下来,在 /etc/rc.conf 中启用该规则集:
然后,在 /etc/sysctl.conf 中添加以下一行,让系统允许普通用户挂载文件系统:
因为这只在下次重启后生效,可以使用 sysctl
来立即设置这个变量:
最后一步是创建一个挂载文件系统的目录。这个目录需要由要挂载文件系统的用户拥有。一种方法是让 root
创建一个由该用户拥有的 /mnt/username 子目录。在下面的例子中,用用户的登录名代替 username
,用用户的主组代替 usergroup
:
假设一个 U 盘被插入,并且出现了一个设备 /dev/da0s1。如果该设备是用 FAT 文件系统格式化的,用户可以用以下方法挂载它:
在拔出设备之前,必须 先将其卸载:
移除设备后,系统信息缓冲区将显示类似以下的信息:
20.4.2.自动挂载可移动媒体
通过取消对 /etc/auto_master 中这一行的注释,可以自动挂载 USB 设备:
然后在 /etc/devd.conf 中添加这几行:
如果 autofs(5) 和 devd(8) 已经在运行,可以重新加载配置:
可以通过在 /etc/rc.conf 中添加这行来设置为在启动时启动 autofs(5):
autofs(5) 需要启用 devd(8),它在默认情况下是启用的。
使用如下命令立即启动服务:
每个可以自动挂载的文件系统在 /media/ 中都显示为一个目录。该目录是以文件系统的标签命名的。如果标签缺失,该目录就以设备节点命名。
文件系统在第一次访问时被自动挂载,并在一段时间未使用后被取消挂载。也可以手动卸载自动挂载的设备:
这种机制通常用于存储卡和 U 盘。它可以用于任何块设备,包括光驱或 iSCSILUN。
最后更新于