设置 SMB 服务

首先在 Ubuntu 中配置 SMB 服务。可以参考 Ubuntu 设置 SMB 服务

创建 APFS 磁盘映像

我们在 Ubuntu 上创建出的 SMB 共享文件夹可以用来存放文件,但是不能直接用来存放时间机器备份。因为时间机器是基于 APFS 文件系统的,而我们的 Linux 使用的是 Ext4 文件系统。

解决方法是我们可以在 SMB 共享文件夹里放一个 APFS 磁盘映像,然后挂载这个磁盘映像,再将这个磁盘映像作为我们的时间机器备份盘。

打开“磁盘工具”, N 创建新的空白磁盘映像。磁盘映像的存储位置我们可以直接选择刚刚创建的 SMB 共享文件夹。映像格式选择稀疏捆绑磁盘映像。

稀疏磁盘映像的特点是其实际大小是随着你的使用逐渐扩大的,不像“读/写磁盘映像”一开始设置了大小是多少就是多大。稀疏捆绑磁盘映像的大小一开始很小,只有在需要更多空间时才进行扩展。其设置的大小只是对最大大小的一个限制。关于稀疏映像的介绍可以看维基百科:Sparse Image | Wikipedia

而稀疏捆绑磁盘映像则是把原先的一整个磁盘映像文件分为多个小文件,可以查看 Disk images: Sparse vs. Sparse bundle? | Apple Community

对于SSD(固态硬盘)来说,稀疏捆绑磁盘映像通常是更好的选择,原因包括:

  • 写放大(Write Amplification)的减少:由于SSD的写操作相对有限,稀疏捆绑磁盘映像可以通过只修改变动的部分,而不是修改整个文件,来减少对SSD的写操作。

  • 效率和性能:稀疏捆绑格式允许单独对文件包中的部分文件进行操作和同步,这在频繁变更数据的情况下(如使用 Time Machine 备份)可以提高效率和性能。

创建磁盘映像时会要求填写两个名字,一个是“存储为”,另一个是“名称”。这里的“存储为”填写的名字是之后创建的映像文件的名字,比如 TimeMachine.sparsebundle。

“名称”填写的名字是挂载映像文件后磁盘映像的名字,比如双击 TimeMachine.sparsebundle 文件挂载映像后就会看到桌面出现了一个名为 Time Machine 的磁盘。

创建磁盘映像文件后会自动挂载磁盘映像,我们先推出磁盘映像,然后将磁盘映像文件 TimeMachine.sparsebundle 移动到 SMB 共享文件夹,然后再双击 TimeMachine.sparsebundle 挂载映像。

设置时间机器备份盘

然后我们使用命令设置时间机器备份盘为我们挂载的磁盘映像:

sudo tmutil setdestination "/Volumes/Time Machine"

如果你的磁盘映像的名字不是 Time Machine,则需要将其改为你磁盘映像的名字。

移除时间机器备份地址

如果你需要移除时间机器备份盘,需要首先查看当前时间机器备份盘的 ID:

$ tmutil destinationinfo
====================================================
Name : Time Machine
Kind : Local
Mount Point : /Volumes/Time Machine
ID : CD188373-789A-4AD5-B410-4A47A3B53FE8

可以看到名为“Time Machine”的备份盘的 ID 是 CD188373-789A-4AD5-B410-4A47A3B53FE8。拷贝这个 ID,然后运行:

sudo tmutil removedestination CD188373-789A-4AD5-B410-4A47A3B53FE8

使用体验

实际体验下来,发现基于 SMB 的时间机器备份很慢。我使用本地连接的 Samsung T7 SSD 进行备份时需要的时间大概为 2 个小时。而使用 SMB 文件共享在远程机器的西数蓝盘 SSD 上备份则需要 10 个小时左右。

参考:

  1. 苹果 macOS 时间机器备份至 windows linux 等 SMB 服务器
  2. 树莓派、Windows 设备都可以做你 Mac 的「时间机器」——利用 SMB 协议进行 Time Machine 备份 | 少数派

Mac 使用远程 Ubuntu 机器进行时间备份的更多相关文章

  1. Coding theano under remote ubuntu server from local Mac (在本地mac机器上,写、跑、调试、看-远程ubuntu上的theano代码)

    本人是奇葩,最近鼓捣了一套在mac上coding远程ubuntu上的theano代码的东东,记之以期造福后人. Overview: 下图是我的编程环境和网络环境 我期望能在本地mac机器上对远程的ub ...

  2. 设置Ubuntu为本地时间

    大家在切换操作系统的时候会发现一个问题, Windows 和 Ubuntu 的时间会出现不一致的情况.在 Windows 中把时间设置正确了过后,回到在 Ubuntu 后系统的时间又不一样了,在 Ub ...

  3. [eShopOnContainers 学习系列] - 03 - 在远程 Ubuntu 16.04 上配置开发环境

    直接把 md 粘出来了,博客园的富文本编辑器换成 markdown,没啥效果呀 ,先凑合吧.实在不行换地方   # 在远程 Ubuntu 16.04 上配置开发环境 ## 零.因 为什么要用这么麻烦的 ...

  4. mac上远程连接windows

    Microsoft 适用于 Mac 的远程桌面连接客户端 2.1.1 http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=1814 ...

  5. ubuntu 远程 ubuntu

    一:被远程端ubuntu配置 參考windows远程ubuntu这篇文章里面的ubuntu配置 二:远程端ubuntu配置 1:打开Remmina Remote Desktop Client软件,例如 ...

  6. ubuntu设置系统时间与网络时间同步

    ubuntu设置系统时间与网络时间同步   Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RTC).   系统时间:指当前Linux Ker ...

  7. centos 7.2 同步北京时间 ,多台机器同步时间

    linux 系统没有北京时间,同步的是上海时间 linux 系统有两个时钟:一个是硬件时钟,即BIOS时间:另一个是系统时钟,是linux系统Kernel(内核)时间. 系统开启时,系统会读取硬件时间 ...

  8. 如何同步两台Linux机器的时间?

    除了用NTP服务器之外,下面的命令可以做到让几台机器的时间都跟一台机器同步. date --set="$(ssh root@10.245.110.101 date)" 参考资料 = ...

  9. Windows + Ubuntu双系统时间不一致

    在安装Ubuntu和Windows双系统的情况下,Ubuntu的时间总会和Windows的时间相差8小时,原因在于widows认为BIOS时间是本地时间,Ubuntu认为BIOS时间是UTC时间 su ...

  10. MAC安装远程工具Securecrt的破解方式(详细有图)

    想要实现mac的远程连接功能,本来想使用终端的,但是终端的很多功能是欠佳的,所以决定安装一款,像windows的xshell一样好的软件,所以选择了这款Securecrt. 首先准备两个东西,一个是S ...

随机推荐

  1. InvocationTargetException和UndeclaredThrowableException异常介绍

    今天来介绍了两个陌生又熟悉的异常类,熟悉是因为我们经常会遇到它们,陌生是好像又从来不知道它们是做什么的 假定读者已经清楚了Java的异常分类: 一是程序不能处理的错误(Error), 二是程序应该避免 ...

  2. 在linux系统中,对标准输出(stdout,文件描述符为 1)和标准错误(stderr,文件描述符为 2)重定向到文件

    请参考:2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的区别 下面的是本人浅尝辄止了,并非全貌,还是上面的文章说的比 ...

  3. 一个简单的html时间显示页面-可做小工具

    代码由 chatgpt3.5 生成,已验证 index.html <!DOCTYPE html> <html> <head> <meta charset=&q ...

  4. Nunjucks

    Nunjucks是什么东东?其实它是一个模板引擎. 那什么是模板引擎? 模板引擎就是基于模板配合数据构造出字符串输出的一个组件.比如下面的函数就是一个模板引擎: function examResult ...

  5. css 手稿

    CSS 网页的布局和外观的显示样式 没有一张图解决不了的事:https://www.processon.com/mindmap/5e368a8be4b0d27af184e118 选择器 * 通配符选择 ...

  6. 基于表单登录的cookies登录

    1.基于表单登录的cookies登录 In [ ]: import requests import matplotlib.pyplot as plt from http.cookiejar impor ...

  7. xampp+vscode 安装PHP断点调试xdebug

    官网下载地址:https://xdebug.org/download.php 这里需要特别注意,有TS(thread safe)和NTS 区别,我建议不要下载最新的,我一开始使用最新的发现插件没有匹配 ...

  8. CGI,FastCGI和PHP-FPM之间的关系和区别

    什么是CGI?早期的web server只可以处理简单的静态web文件,但是随着技术的发展出现动态语言如PHP,Python.PHP语言交给PHP解析器进行处理,但是处理之后如何和web server ...

  9. GitHub Star 数量前 12 的开源无代码工具

    相关文章:GitHub Star 数量前 15 的开源低代码项目 在本篇文章中,我们将探索 12 款在 GitHub 上星级排名前列的开源无代码工具. 每款工具都旨在简化和加速开发过程,但各自侧重于不 ...

  10. 记hashmap

    hashmap是map接口的一个实现类,在同步的情况下hashmap的性能是比较好的 hashmap就是一个kv键值对的集合,将数值散列均匀的存储在哈希表中.插入方法为map.put(k,v),读取方 ...