如何在 MacOS 下让 OneDrive 同步到外部硬盘?

如何在 MacOS 下让 OneDrive 同步到外部硬盘?

问题就在标题里。微软给出了这些说明,但是 Mac 的部分要么过时了,要么根本就没用过(而且说实话看起来还没完成)。无论我将驱动器格式化为哪种文件系统(尝试过 exFAT / APFS / APFS(区分大小写)),OneDrive 都会抱怨目标需要不可移动且不区分大小写: 在此处输入图片描述

其实微软已经预料到可能会出现这样的错误,并在页面最底部给出了几个额外的步骤来确保兼容性:

  1. 在 Mac 上打开 Finder 窗口,然后选择应用

  2. 确保外部驱动器是不可弹出类型并且格式化为 APFS。学习如何

说实话,第一步毫无意义,第二步参考了 Apple 文档,其中介绍了如何使用磁盘工具。不幸的是,此工具无法改变设备的 RMB 位或 MacOS 对外部驱动器的感知(使其成为内部驱动器),因此它并没有真正的帮助。

看起来唯一可行的选择就是将 RMB 位直接翻转到可移动硬盘驱动器中,但我想确保在实施如此剧烈的改变之前没有遗漏任何东西。

PS 我的 Mac 有macOS Monterey(12.4)跑步。

答案1

我找到了一种将可移动硬盘上的文件备份到 OneDrive 云的解决方法。

  1. OneDrive文件夹位于系统磁盘上的默认位置。
  2. 我在 OneDrive 文件夹中创建了一个文件夹“CloudBackup”
  3. 使用 rsync 将外部磁盘“HD_Data”上的文件夹“THISFOLDER”备份到 OneDrive 文件夹。
  4. 使用 Applescript 运行 shell 脚本:

属性 tUSERNAME :(系统信息)的短用户名

属性 tSOURCEFOLDER:“/Volumes/HD_Data/THISFOLDER/”

属性 tDESTFOLDER:“/Users/”&tUSERNAME&“/Library/CloudStorage/OneDrive-Personal/CloudBackup”

将 tSCRIPT 设置为“rsync -a --delete-after ”&(tSOURCEFOLDER 的引用形式)&“ ”&(tDESTFOLDER 的引用形式)

执行 shell 脚本 tSCRIPT

  1. 将文件夹“CloudBackup”设置为“释放空间”。这会告诉 OneDrive,上传到云后,文件夹中的所有文件都不应占用系统磁盘上的空间。这可以在 Finder 中手动完成,方法是右键单击文件夹并选择“释放空间”,或者使用脚本:

将 tSCRIPT 设置为“/Applications/OneDrive.App/Contents/MacOS/OneDrive /unpin /r ~/Library/CloudStorage/OneDrive-Personal/CloudBackup”

执行 shell 脚本 tSCRIPT

备份外部磁盘上的文件和文件夹的另一种方法是使用 rclone。在 Linux 或 Macos 上安装 rclone:

sudo -v ; 卷曲https://rclone.org/install.sh| sudo bash

运行 rclone config 从 Microsoft 获取凭据。

备份示例:

/usr/local/bin/rclone sync'/Volumes//''myremote:

相关内容