USB 存储设备
本文档描述了如何在 Linux 中使用流行的 USB 存储棒。然而,它也适用于其他设备,例如充当 USB 存储设备的数码相机。
如果您拥有使用标准 Arch 内核和现代桌面环境的最新系统,您的设备应该会直接在桌面上显示,而无需打开控制台。
使用 udisks 自动挂载
这是最简单且最常用的方法。许多桌面环境都在使用它,但也可以单独使用。
有关详细信息,包括挂载助手列表,请参阅Udisks。
手动挂载
获取支持 usb_storage 的内核
如果您不使用自定义内核,那么您已准备就绪,因为所有 Arch Linux 官方内核都已正确配置。如果您确实使用自定义内核,请确保它已编译了 SCSI 支持、SCSI 磁盘支持和 usb_storage。如果您使用最新的udev,您只需插入设备,系统就会自动加载所有必要的内核模块。
识别设备
访问存储设备需要做的第一件事是获取内核分配的标识符。有关详细信息,请参阅文件系统#识别现有文件系统。
新插入的设备通常显示在日志中。
挂载 USB 存储器
请参阅文件系统#挂载文件系统。
如果 mount
无法识别设备的文件系统,您可以尝试使用 -t
参数,有关详细信息,请参阅 mount(8)。如果挂载不起作用,您可以尝试重新创建文件系统,甚至重新分区磁盘。
允许普通用户写入
如果您希望非 root 用户能够写入 USB 存储棒,您可以发出以下命令
# mount -o gid=users,fmask=113,dmask=002 /dev/sda1 /mnt/usbstick
如果它不起作用,请确保文件系统是可挂载的,并且可以 root 用户身份写入,有关详细信息,请参阅上一节。
以普通用户通过 fstab
如果您希望普通用户执行挂载/卸载操作,请参阅FAT#以普通用户身份写入 FAT32。
挂载工具
多种挂载工具方便普通用户进行挂载。
故障排除
未检测到 USB 存储设备
如果您已连接 USB 存储设备,但 lsblk 未列出它,但在日志中出现,但未分配块设备,请参阅通用故障排除#内核升级后无法使用某些外围设备。
另请确保您的 BIOS 启用了 XHCI Handoff 和 EHCI Handoff,但这通常对于大多数现代设备来说不是问题。
卸载所有分区后设备未关闭
未能关闭设备电源可能会导致
当您卸载分区时,设备仍然通电。您应该先请求系统关闭它,以便安全地移除它:[4]
# echo 1 > /sys/block/disk_name/device/delete
$ udisksctl unmount -b /dev/sdXY $ udisksctl power-off -b /dev/sdX
设备已检测到但未注册为可挂载
udev 附带一个默认的规则集,位于 /usr/lib/udev/rules.d/
中,其中包括一个用于忽略某些特定设备的原因。某些硬件设备(例如数码相机、便携式录音机等)可能会以导致触发忽略规则的方式格式化 USB 存储。您可以使用以下命令检查是否应用了其中一项规则,然后在默认值中查找相应的条件
$ udevadm info --attribute-walk --name=device_name | grep UDISKS_IGNORE
如果是这种情况并且您的设备将此属性设置为“1”,您可以按照 udev 页面使用自定义规则覆盖它。