我有两台运行 OS X 10.10.3 的 Mac。其中一台安装了 Server.app,通过以太网连接到互联网,还通过 USB 连接了一个 2 TB 的磁盘,有两个分区 - “备份”和“存储”。我的另一台 Mac 是用于学习的笔记本电脑。
使用 Server.app 的 Time Machine 功能,我能够使用标准 Time Machine 界面开始通过网络将我的本地 Mac 备份到服务器 Mac 上的“备份”卷上。
但是,我发现通过 AFP 复制 1 GB 的文件需要 7 分钟,因此在我的本地 Mac 上备份 300 GB 的文件至少需要 35 个小时。
因此,我正在尝试找出一种方法,通过 USB 将初始 300GB 备份到“备份”中,然后将该外部硬盘驱动器连接到服务器 mac 并继续通过网络进行备份。这样,增量网络备份将比 300GB 小得多,并且可以在合理的时间内完成,例如一夜之间。
有什么建议吗?我读过 tmutil 的手册页,但目前还不太熟悉。
答案1
迟做总比不做好,这里有一个方法可以实现这一点:
sudo ifconfig lo0 alias 127.0.0.2/32
插入您的 USB 驱动器,然后通过System Preferences
/Sharing
将 smb 共享添加到time-machine-macbook
驱动器中的文件夹time-machine-usb
然后添加目标备份(Time Machine 会将其视为网络共享)
sudo tmutil setdestination -a "smb://user:[email protected]/time-machine-macbook"
你可以通过以下方式查看是否可以:
tmutil destinationinfo
> ==================================================
Name : time-machine4
Kind : Network
URL : smb://kenji@realserver._smb._tcp.local./time-machine
ID : D820D053-C74A-4A06-A7E1-E60C8EA7934F
====================================================
Name : time-machine-macbook
Kind : Network
URL : smb://[email protected]/time-machine-macbook
Mount Point : /Volumes/time-machine-macbook
ID : F707BD0B-64DF-4DB6-A3B7-824470FB5EB2
tmutil startbackup
然后使用并开始备份mount
将显示:
/dev/disk3s1 on /Volumes/time-machine-usb (apfs, local, nodev, nosuid, journaled, noowners)
//[email protected]/time-machine-macbook on /Volumes/time-machine-macbook (smbfs, nobrowse)
您可以通过以下方式查看详细进度tmutil status
:
Backup session status:
{
BackupPhase = Copying;
ClientID = "com.apple.backupd";
DateOfStateChange = "2018-06-28 17:38:21 +0000";
DestinationID = "F707BD0B-57DC-4DB6-A3B7-824470FB5EB2";
DestinationMountPoint = "/Volumes/Time Machine Backups";
FirstBackup = 1;
Percent = "0.08711567546702646";
Progress = {
TimeRemaining = 32679;
"_raw_totalBytes" = 355694600192;
bytes = 34429528173;
files = 887351;
totalBytes = 391264060211;
totalFiles = 2922384;
};
Running = 1;
Stopping = 0;
"_raw_Percent" = "0.09679519496336274";
}
就我的情况而言,大约两个小时内完成了近 1000000 个文件(USB2 磁盘惩罚,而通过 Wi-Fi 则需要 8 个多小时),我使用一个小脚本计算百分比:
tm-progress.sh
Files : 918702 / 2922384 (31.43%) - Bytes : 32.21 GiB / 364.39 GiB (8.84%)
我们可以在这里看到很多文件可以让Time Machine以字节为单位“缓慢”地前进,但接近1/3的文件已经被复制了。
下一步,备份完成后,将 USB 驱动器插入您的 realserver,并将稀疏包复制到“未完成的”上(或共享文件夹中)。当然,Time Machine 应该是已禁用在此步骤中,以防止安装部分复制的稀疏束(并可能损坏它)
我曾使用过 apfs 驱动器来利用快照(以便在 sparsebundle 损坏的情况下能够恢复到以前的“backupdb”,尚未测试)
编辑:更快的模式:
一旦备份达到BackupPhase = Copying
使其更快,您可以通过取消备份、重命名My-Computer.backupbundle
为类似的东西1My-Computer.backupbundle
并创建符号链接来直接挂载备份包(而不通过 smb 发送每个操作):
ln -s /Volumes/time-machine-usb/1My-Computer.backupbundle /Volumes/time-machine-macbook/My-Computer.backupbundle
这会让 timemachine 跟踪本地备份包的链接,而不是通过 smb 挂载它,从而加快备份速度。完成本地备份后,请确保将备份包移回。
答案2
请先查看我的其他答案,它简单得多!!
这是 Kenji 的答案(上面的“ıɾuǝʞ”),经过痛苦的修改,并由一个完全的菜鸟(我自己)向其他完全的菜鸟进行了解释。我还在最后一步添加了一个重要的解决方法:
迟做总比不做好,这里有一个方法可以实现这一点:
打开 Terminal.app 并输入以下命令:
sudo ifconfig lo0 alias 127.0.0.2/32
插入你的 USB 驱动器
- 去
System Preferences
/Sharing
打开左下角的锁
(当系统要求输入密码时,请输入)
在左侧窗格中勾选“文件共享”。
- 勾选
Options
按钮并激活 SMB 和 AFP - 单击
+
中间窗格中的标志(标题为“共享文件夹”)并找到您的 USB 驱动器。创建一个文件夹(例如“time-machine-macbook”)并选择它以创建共享文件夹。 然后,在 Terminal.app 中使用以下命令添加目标备份(Time Machine 会将其视为网络共享):
sudo tmutil setdestination -a "smb://user:[email protected]/time-machine-macbook"
(如果您收到错误,提示终端需要更多磁盘访问权限,请继续按照错误消息的说明授予此类权限并重复此步骤。)
您可以使用以下终端命令检查是否正常:
tmutil destinationinfo
您将在终端窗口收到以下回复:
================================================== Name : time-machine4 Kind : Network URL : smb://kenji@realserver._smb._tcp.local./time-machine ID : D820D053-C74A-4A06-A7E1-E60C8EA7934F ==================================================== Name : time-machine-macbook Kind : Network URL : smb://[email protected]/time-machine-macbook Mount Point : /Volumes/time-machine-macbook ID : F707BD0B-64DF-4DB6-A3B7-824470FB5EB2
然后使用终端命令开始备份:
tmutil startbackup
终端命令
mount
将显示(除其他外)类似以下内容:/dev/disk3s1 on /Volumes/time-machine-usb (apfs, local, nodev, nosuid, journaled, noowners) //[email protected]/time-machine-macbook on /Volumes/time-machine-macbook (smbfs, nobrowse)`
您可以使用终端命令查看详细进度:
tmutil status
你会得到类似这样的信息:
Backup session status: { BackupPhase = Copying; ClientID = "com.apple.backupd"; DateOfStateChange = "2018-06-28 17:38:21 +0000"; DestinationID = "F707BD0B-57DC-4DB6-A3B7-824470FB5EB2"; DestinationMountPoint = "/Volumes/Time Machine Backups"; FirstBackup = 1; Percent = "0.08711567546702646"; Progress = { TimeRemaining = 32679; "_raw_totalBytes" = 355694600192; bytes = 34429528173; files = 887351; totalBytes = 391264060211; totalFiles = 2922384; }; Running = 1; Stopping = 0; "_raw_Percent" = "0.09679519496336274"; }
当然,您也可以通过打开 Time Machine 来大致了解进度,您将获得复制的总 MB 数以及剩余时间的计算。
Kenji 的案例中,大约两小时备份了近 1000000 个文件(USB2 磁盘),而使用 Wi-Fi 则需要 8 个多小时。使用 USB3 磁盘时,备份速度更快。2 小时内,我备份了超过 500MB 的文件。
下一步,备份完成后,将 USB 驱动器插入您的 realserver,并将稀疏包复制到“未完成的”上(或共享文件夹中)。当然,Time Machine 应该是已禁用在此步骤中,以防止安装部分复制的稀疏包(并可能损坏它)。我使用了 apfs 驱动器来利用快照(以便在稀疏包损坏的情况下能够恢复到以前的“backupdb”,尚未测试)
如果上面的 #12 不起作用,并且 Time Machine 无法备份到真正联网的驱动器(但可能能够读取它),那么解决方法是将备份包复制到新的稀疏包中!尴尬的是,Time Machine 可以使用联网的稀疏包作为备份目标(但不能使用它自己的备份包!)。
通过 USB 连接您的驱动器(以提高速度),并使用磁盘实用程序在其中创建一个稀疏包,其大小足以容纳您的所有备份。这可能需要几个小时,具体取决于大小和速度,因此请选择在晚上完成。如果您没有足够的驱动器空间,那么很遗憾,您应该删除之前创建的备份,然后从头开始在新的稀疏包中重新创建它。
要创建新的 spasebundle,请打开磁盘实用程序,单击文件/新映像/空白映像,然后在弹出窗口中添加文件名(例如 BackupBundle.dmg),不添加标签,选择位于 USB 驱动器根目录内,选择卷名(例如 BackupBundle),大小大于您的 HD 大小,格式肯定为 Mac OS Extended(日志式),不加密,单分区 - Apple 分区图,最后是稀疏捆绑磁盘映像。再次检查您选择的大小(有时会恢复为默认值)并点击保存。
几个小时后,当一切结束后,您可以通过网络测试新的 sparsebundle。将您的驱动器连接到路由器,打开 Finder,然后双击您的 BackupBundle.sparsebundle。您应该在侧边栏和桌面上看到一个名为 BackupBundle 的新磁盘。然后打开 Terminal,看看是否可以将 sparsebundle 添加为备份目标。如果不能,那么您可以通过 Terminal.app 手动设置它:
sudo tmutil setdestination -a "/Volumes/BackupBundle"
完成所有这些后,您可以将 Time Machine 的备份包复制到 BackupBundle.sparsebundle 中。这也需要几个小时,所以您可能希望在第二天晚上完成。或者,如果您在步骤 14-15 中没有空间并且必须删除它,您可以将 Time Machine 设置为在通过 USB 连接时将其用作备份目标,然后在第一次完整备份完成后再次通过网络选择相同的目标。
祝你好运!
答案3
将 Time Machine 备份从本地硬盘移动到远程服务器(或反之亦然)的棘手之处在于,Time Machine 直接使用原生 HFS+ 分区进行本地备份,但通过 AFP 备份到服务器时,它会创建“稀疏束”磁盘映像。
您可以使用磁盘实用程序制作 HFS+ 分区的稀疏包映像,然后将该映像放入服务器的共享卷之一,但我不确定是否需要对稀疏包进行其他操作才能使 Time Machine 识别并自动使用它。例如,您可能必须将其命名为完全正确,并且它可能会在稀疏包中寻找某种隐藏文件或类似的东西。
答案4
在做任何事情之前,请确保您的 USB 磁盘卷可以被 Time Machine 用作备份目标,同时该磁盘可以被路由器读取和共享!大多数路由器仅支持 FAT32(卷太小)和 NTFS 格式的大卷,而 Time Machine 不支持这种格式!
您的磁盘可能完全可以通过网络读取和写入,但 Time Machine 不会备份到该磁盘,除非您在 USB 磁盘上创建一个稀疏束(= 类似于虚拟磁盘的东西)并将其用作备份目标!!尴尬的是,Time Machine 可以使用网络稀疏束作为备份目标,但不能使用它自己的备份束,而它实际上也是一个稀疏束!!
但问题是,如果您通过 USB 将 NTFS 磁盘连接到 Mac,它将无法写入(Mac 不完全支持 NTFS),如果您通过网络连接,第一次备份会太慢!我采取的解决方案是使用 Paragon 的 NTFS for Mac。这使得 NTFS 磁盘即使通过 USB 也可以写入。第一周试用免费,如果您需要保留更长时间,则需要花费 19.95 欧元。虽然不多,但我们只需要使用一天左右的时间,所以如果您愿意,可以选择稍后购买。
- 从以下链接下载 NTFS for Mac 并安装:
https://www.paragon-software.com/home/ntfs-mac/
如果您的路由器支持 Apple 格式(这种情况很少见),则无需执行下面的步骤 2,而是直接跳至步骤 3。要检查路由器支持的磁盘格式,请参阅其文档(或谷歌搜索)。
如果您的 USB 驱动器尚未格式化为 NTFS,请继续创建一个足够大的 NTFS 分区以容纳您的备份。磁盘将丢失所有数据,因此如果需要,请小心将其备份到其他地方!我选择将整个磁盘格式化为 NTFS。为此,请打开 Disk Utility.app,从左侧选择整个 USB 磁盘,然后单击顶部的“擦除”按钮。然后选择:
- 磁盘名称
- Microsoft NTFS 格式(仅当您正确安装了 Mac 的 NTFS 时才会出现)和
- GUID 分区图,以便路由器可读取
点击“擦除”按钮,只需几秒钟即可完成。
关闭“磁盘工具”并重新打开以进行后续步骤。
当您的驱动器仍通过 USB 连接到 Mac(为了提高速度)时,打开“磁盘工具”并使用它来创建一个稀疏包(同样具有适合整个备份所需的大小)。这可能需要几个小时,具体取决于大小和速度,因此请选择在晚上完成。为此,请在“磁盘工具”中单击“文件/新映像/空白映像”,然后在弹出窗口中填写以下内容:
- 文件名(例如 BackupBundle.dmg),
- 无需标签
- 在“位置”中选择您的 USB 驱动器根目录
- 选择卷名(例如,与 dmg 相同,即“BackupBundle”)
- 大小:大于您的硬盘大小 - 或者如果您的 USB 磁盘仅用于备份,则使用完整磁盘容量(您可以像人类一样写出大小,例如“2TB”)
- 格式:Mac OS 扩展(日志式)
- 没有加密(除非你知道如何加密)
- 单个分区 - Apple 分区图
- 最后是“稀疏束磁盘映像”。
再次检查您选择的尺寸(有时会恢复为默认值),然后点击保存。
几个小时后,当一切结束后,当驱动器仍通过 USB 连接时,打开 Finder,双击您新创建的“BackupBundle.sparsebundle”。侧边栏和桌面上应出现一个名为“BackupBundle”的新磁盘!
现在打开 Terminal.app 并输入以下命令:
sudo tmutil setdestination -a "/Volumes/BackupBundle"
这会将我们的新 sparsebundle 添加(“-a”)为 Time Machine 的备份目标。因此,请打开 Time Machine 偏好设置以检查它是否存在!
现在,当磁盘仍通过 USB 连接时(为了提高速度),您可以通过单击屏幕顶部的 Time Machine 小图标来选择“立即备份”。或者,您可以在 Time Machine 偏好设置左侧勾选“自动备份”,您的备份将在两分钟内开始。通常需要几个小时才能完成(但不会像通过网络那样需要几天时间!),因此您也可以选择在一夜之间完成。
现在,Time Machine 的第一个备份包就嵌套在 USB 磁盘上的 BackupBundle.sparsebundle 中了!右键单击这两个磁盘并选择“弹出”,然后从 Mac 上拔下它们,确保正常“弹出”这两个磁盘。然后将磁盘连接到路由器,通过 Finder 打开它,双击“BackupBundle.sparsebundle”。同样,侧边栏和桌面上应该会出现一个名为“BackupBundle”的新磁盘,Time Machine 完全可以将其用作备份目标!选择立即备份以确保它可用!如果没有,请再次运行步骤 5 的终端命令。
现在,您的增量备份比第一次备份小很多,并且可以通过网络在几分钟内自动完成!