Olares One 通过 USB 设备扩展存储:自动挂载、访问与安全卸载实战指南
云原生后端运维【免费下载链接】TerminusOpen-Source Personal Cloud OS for Always-On Agents项目地址https://gitcode.com/gh_mirrors/terminus2/Terminus点击查看免费下载Olares One 在检测到插入的 USB 存储设备时会自动完成检测与挂载用户无需任何手动配置即可在 Files 应用中即时获得额外的存储空间用于存放媒体文件、创建备份或进行文件传输。本文基于 Terminus 开源仓库的 daemon 与前端实现完整讲解 USB 设备的自动挂载机制、Files 应用中的访问入口以及安全卸载的推荐流程帮助你正确使用这一“即插即用”的存储扩展能力。适用场景与前提条件USB 存储扩展适合以下典型用途媒体存放将影片、音乐、照片等大体积媒体文件保存在 U 盘上释放 Olares One 内置存储。备份把重要数据复制到 U 盘形成可移动的离线副本。文件传输通过 U 盘在 Olares One 与其他设备之间快速搬运文件。开始之前请确认硬件满足要求项目要求设备一块兼容的 U 盘兼容性说明Olares One 已实测兼容 Samsung 与 SanDisk 品牌的 U 盘其他品牌可能无法被系统识别:::warning 兼容性限制 如果 U 盘无法被识别请优先尝试 Samsung 或 SanDisk 等经过验证的品牌并确认 U 盘工作在标准的 USB Mass Storage 模式。 :::连接并访问存储自动挂载链路将 U 盘插入 Olares One 上任意可用的 USB 端口系统会自动完成挂载无需任何手动操作。这一能力的核心由 daemon 进程中的 USB 监听器实现。从源码看NewUsbMonitor基于usbmon实时监听 USB 总线的add/remove事件见 daemon/internel/watcher/usb/watchers.go收到add事件时延迟约 2 秒后触发NewUsbWatcher执行挂载并携带设备的序列号serial用于精确匹配目标设备收到remove事件时触发NewUmountWatcher清理可能残留的挂载点。挂载逻辑MountUsbDevice见 daemon/pkg/utils/drivers_linux.go会依次完成以下工作通过udev枚举scsi子系统下的scsi_device并根据ID_BUS属性筛选出 USB 总线设备即DetectdUsbDevices见 drivers_linux.go同时读取设备的 Vendor、Serial、PartitionUUID 等信息在挂载基目录/olares/share常量MOUNT_BASE_DIR见 daemon/pkg/commands/constants.go下按“厂商名-序号”的规则创建挂载点目录如SanDisk-0若目录冲突则自动递增序号重试最多 100 次通过lsblk探测设备文件系统类型getFsTypeOfDevice若为 FAT 或 NTFS则自动追加uid1000,gid1000挂载选项确保普通用户UID 1000具备读写权限执行挂载若失败则清理掉刚创建的空挂载目录避免残留。因此插入 U 盘后存储空间会立即出现在系统路径/olares/share之下并在 Files 应用中同步可见。在 Files 应用中访问 USB 存储U 盘挂载完成后按以下步骤访问打开Files应用。在侧边栏中选择External。此时即可浏览、读写 U 盘上的文件。侧边栏的External入口在前端代码中由DriveType.External驱动见 apps/packages/app/src/stores/files.ts其数据访问层为ExternalDataAPI见 apps/packages/app/src/api/files/v2/external/data.ts负责列出挂载节点并请求对应资源最终把 USB 设备呈现为一个普通文件目录与内置存储的使用方式完全一致。安全移除设备虽然系统在物理拔出 U 盘时会自动卸载remove事件触发UmountOrRecordBrokenMounts清理失效挂载点见 daemon/internel/watcher/usb/watchers.go但在数据写入过程中直接拔出仍然可能导致文件损坏。因此官方推荐先手动弹出设备打开Files应用。在侧边栏中右键点击 U 盘选择Unmount。待 U 盘从列表中消失后即可安全拔出。这一“手动卸载”操作实际上走的是完整的 API 调用链前端右键菜单中的Unmount项仅在“选中外部存储且数量为 1”时出现见 apps/packages/app/src/stores/operation.ts触发后调用unmount()方法向/api/unmount/fileType/fileExtend/name?external_type...发起 POST 请求见 operation.ts成功后提示“已卸载”并刷新目录列表daemon 侧提供POST /umount-usb单节点与POST /umount-usb-incluster集群两个接口见 daemon/internel/apiserver/handlers/command_group.go处理器解析请求体中的挂载路径后调用umountUsb命令见 daemon/pkg/commands/umount_usb/cmd.go底层UmountUsbDevice会先校验目标路径确实是当前已挂载的 USB 路径然后执行卸载并移除空挂载目录见 drivers_linux.go。常见问题与注意事项U 盘插上后没有出现在 Files 中确认使用的是兼容品牌如 Samsung、SanDisk确认 U 盘文件系统为常见的 FAT/NTFS/ext4 等格式——FAT/NTFS 会被自动加上用户读写选项可在终端通过lsblk -f查看设备是否已被内核识别若设备识别但未挂载说明 daemon 挂载环节存在问题可检查 daemon 日志中的mount usb device相关输出。为什么建议先手动 Unmount 再拔出物理拔出触发的自动卸载主要用于清理失效挂载点属于“事后恢复”机制而在写入过程中断电或拔出底层文件系统状态可能不一致导致数据损坏。先手动卸载可以确保缓存与写入操作落盘完毕。U 盘被挂载到哪个系统路径挂载基目录固定为/olares/share定义于 daemon/pkg/commands/constants.go每个设备对应一个以厂商名命名的子目录。相关资源在 Olares 中管理文件使用外接 SSD 扩展存储使用内置 SSD 扩展存储USB 自动挂载与卸载的守护进程实现daemon/internel/watcher/usb/watchers.go、daemon/pkg/utils/drivers_linux.goFiles 应用侧边栏 External 入口与卸载操作的前端实现apps/packages/app/src/stores/files.ts、apps/packages/app/src/stores/operation.ts赞分享云原生后端运维【免费下载链接】TerminusOpen-Source Personal Cloud OS for Always-On Agents项目地址https://gitcode.com/gh_mirrors/terminus2/Terminus点击查看免费下载相关推荐Terminus / Olares One USB 存储扩展完全指南自动挂载、Files 访问与安全卸载Terminus / Olares One USB 存储扩展完全指南自动挂载、Files 访问与安全卸载 Olares One 作为面向常驻 AI Agent云原生后端运维Olares One 外接 SSD 存储扩展指南临时挂载、永久挂载与安全卸载Olares One 外接 SSD 存储扩展指南临时挂载、永久挂载与安全卸载 通过外接大容量 SSD 手动挂载到指定系统路径是为 Olares One 扩展云原生后端运维Olares USB 移动硬盘接入指南自动挂载、Files 访问与手动卸载Olares USB 移动硬盘接入指南自动挂载、Files 访问与手动卸载 Olares 作为面向常驻 Agent 的个人云操作系统内置了 USB 存储设备云原生后端运维上一篇TinyTuya Cloud API详解远程管理Tuya设备的终极指南下一篇微服务架构下的国际化终极解决方案i18next分布式实践指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考