1. 在 Arch 上折腾 OneDrive 的第一个岔路口:为什么我最后选了 abraunegg
说实话,Arch Linux 生态里的同步备份工具从来不缺,但“想和 OneDrive 保持双向实时同步”这件事,长期以来都处在一种没人真正替你兜底的状态。微软官方 Linux 客户端难产,Rclone 虽然强大却更多是做网盘挂载和单向备份,真要拿它维护一个本地工作目录和高频编辑文件,冲突处理和实时性都不够顺手。我在换了三次方案之后,最终把主力固定在了 abraunegg/onedrive 这个开源客户端上。
这个客户端本质上是一个独立的命令行程序,用 Go 编写,直接对接微软 OneDrive API。它处理的不是“把网盘挂载成磁盘”这种逻辑,而是真正维护一个本地目录和云端之间的双向数据同步。Arch 用户对它应该不陌生,AUR 里的包名是 onedrive-abraunegg。它支持 OneDrive 个人版、OneDrive for Business,也能处理 SharePoint 文档库,但让我下决心长期用的原因其实很简单:监控模式足够稳,sync_list 白名单足够灵活,而且 systemd 集成很干净。
如果你是以下几种情况,这篇文章大概率对你有用:一直在 Arch 上找不到合适的 OneDrive 客户端,或者试过 Rclone 定时任务但处理不了文件冲突;换了新电脑需要把 OneDrive 目录完整落本地;以及手里是工作账号、需要处理 SharePoint 站点同步但不知道该从哪里下手。下面所有内容都基于我在 Arch 环境里的真实部署经验,包括那几次让我差点想放弃的授权报错和同步挂起,都会如实写出来。
先说一个很反直觉的结论:安装这个客户端并不是最麻烦的部分,真正的门槛在你第一次运行它之前的账号判断和目录规划上。 很多人懒得看这一步,直接一把梭开始同步,结果面对几百个文件夹根本不知道哪里出了问题,最后只能骂一句工具不好用。实际上只要你把前置决策想清楚,后面的部署误差会小一大半。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 装之前必须先想清楚的两件事:账号类型和同步目录
2.1 账号类型直接决定参数形态
很多人以为 OneDrive 客户端只要登录就能同步,忽略了 OneDrive 账号本身存在多种形态。客户端的默认流程会去连接 Microsoft 全球版端点,但如果你使用的是由组织分配的 Business 账号,或者挂在 SharePoint 站点下,初始化后可能看不到任何数据,大概率就是账号类型判断错了。
在开始配置之前,先确认你的账号属于哪种:
| 账号类型 | 常见特征 | 需要注意的点 |
|---|---|---|
| OneDrive 个人版 | 以个人微软账号登录 | 基本无需额外参数,同步根目录就是网盘根 |
| OneDrive for Business | 组织分配的 O365 账号 | 可能需要确认 API 端点类型,部分旧租户有差异 |
| SharePoint 文档库 | 从组织站点进入 | 需要先把目标站点路径加到同步配置里,否则扫描不到 |
这个区分不是玄学,而是客户端在启动时会对账号类型做探测,然后决定它默认访问哪个数据源。个人版通常就是一帆风顺,但 Business 账号在首次运行后会打印出一长串调试信息,里面会出现站点、Drive ID 之类字样。当时我一度以为客户端坏了,后来用 onedrive --display-running-config 看输出,才发现它根本没找到预期的同步内容。
提示:如果你运行后输出的配置里
account_type不是你预期的类型,别急着开--resync。先在终端用onedrive --verbose --dry-run跑一次,看日志里探测到的数据源信息,再决定后面怎么配置。
2.2 目录布局:别把同步目录塞在系统盘根路径
客户端默认会创建 ~/OneDrive 作为本地同步目录。听起来没什么问题,但 Arch 用户通常有自己的目录洁癖——有人希望把同步内容放在独立的数据盘或独立分区上,有人则希望把不同类型的文件拆成多个同步目录。
有一个很关键的配置项是 sync_dir,它控制本地同步根目录。这个路径千万别随手写成 /home/user/OneDrive 然后不管了,因为后续你会涉及 sync_list 白名单、skip_file 排除规则,这
