有没有更快的方法将时间机器文件从一个磁盘复制到另一个磁盘?


15

我试图将所有Backups.backupdb下的时间机器备份文件移至另一个驱动器。我一夜之间开始了文件复制(B / c我发现OSX花费了很多时间来准备复制...它基本上是在数小时内计算文件)。早上,我看到只有某些备份(带有日期的文件夹)被复制了。然后,我尝试复制那些没有被复制的文件...但是操作系统不允许我这样做。我收到一个错误消息:“操作无法完成,因为备份项目无法修改。” 因此,我的计划是删除新驱动器上的不完整副本,然后尝试再次复制Backups.backupdb文件夹。

相当令人沮丧。有没有一种更快的方法可以通过终端命令复制这些文件,从而使其不执行所有的文件计数准备工作?

我可能可以压缩整个文件夹,然后进行复制,但是这会干扰任何文件权限等吗?这种方法的一件事是,我的源卷中没有用于tar的更多空间。

更新

我已经尝试了人们在下面建议的一些方法,特别是使用“磁盘工具”的还原功能,它给了我一些错误消息和意外结果(至少对我来说)。我尝试过两种还原方式:

  • 选中“擦除目标”:每次(我已经尝试了两次),还原完成后,我会看到一条消息“无法还原-无效操作”和“无法还原-无效参数”。但是,我的目标磁盘确实获得了我的TM文件的副本。奇怪的是,我的目标磁盘与源磁盘完全一样...甚至大小也是如此。我的目标磁盘实际上是1 TB,但在还原后,当我从finder中获取信息时,它显示为200 GB。但是在“磁盘工具”中,它显示了一个1 TB的分区!

然后,我尝试验证/修复磁盘并得到:

    无效的B树节点大小
    检查日记HFS Plus量。
    无效的B树节点大小
    卷修复完成。
    根据需要更新该卷的启动支持分区。
    错误:磁盘工具无法修复该磁盘。备份尽可能多的文件,重新格式化磁盘,然后还原备份的文件。

不知道我是否甚至想验证/修复TM磁盘...

  • 选中“擦除目标”后,恢复将永远不会开始,并且我得到:
    无法还原-不允许操作


2
我认为这很好-另一个问题解决了复制硬链接的IO负载,但被封装在时间囊的网络和机箱中,因此这是这里所问的一般问题的特例。
bmike

如果可以升级到MacOS 10.13.4+,则已修复了阻止别名/硬链接在Finder中复制的错误。我自己尝试将备份的Time Machine磁盘复制到另一个磁盘,它工作得很好(而且速度也很快)。此处提供更多信息:apple.stackexchange.com/a/323691/261070
youngrrrr '18

Answers:


13

普通副本(或通过rsync或ditto进行的副本)不会完全复制Time Machine,因为它将将链接在一起的两个目录(如在连续的TM备份中发生的,但没有变化)转换为两个单独的目录。

最好的方法是使用Disk Utility或Carbon Copy Cloner的块复制部分复制整个磁盘,并且在SuperDuper上可能类似。


1
从ditto手册页中:“ ditto保留源目录中存在的文件硬链接(但不保留目录硬链接)”,因此在这里没有帮助。它既可以是磁盘工具,也可以是SuperDuper或CCC之类的工具。
nohillside

@patrix谢谢-网页手册上什么也没说-CCC使用ditto或rsync进行复制,因此仅在进行
user151019 2012年

我的源磁盘仅包含Time Machine备份。我的目标磁盘包含其他文件。我不想复制我的源磁盘。我只想将Time Machine文件复制到目标磁盘。
milesmeow 2012年

3
在多次尝试将我的TM文件复制到新磁盘后,“磁盘工具”和“ Carbon Copy Cloner”都无法解决问题。SuperDuper在第一次运行时就完美地完成了操作,并且没有减小目标分区的大小!
milesmeow,2012年

2
SuperDuper的另一票!这里。v3.2.4成功地将大型Time Machine备份文件夹复制到了macOS 10.14.2 Mojave下的新磁盘上,而没有占用更多空间。(这是Finder 不能做到的……)Time Machine高兴地继续使用新磁盘,就像旧磁盘一样。
gidds

5

在macOS 10.14上将完整的3TB Time Machine加密驱动器迁移到新的8TB驱动器时,我遇到了各种各样的问题。尝试在“磁盘工具”中进行还原时出错,并显示“无法验证源”或“不允许操作”。尝试本文中的其他建议以及其他建议,我能够获得令人振奋的新错误消息,例如“图像/卷上的目录文件碎片太严重”,但没有副本。

最终在终端上起作用的是:

  1. 使用磁盘实用程序擦除新磁盘,使其与源驱动器的格式匹配:MacOS Extended(已日记,已加密)
  2. diskutil cs list在终端中使用来获取旧驱动器上逻辑卷的确切字节大小,新逻辑卷的GUID以及两者的磁盘号,例如disk4
  3. 使用步骤2中的确切字节大小作为新卷的大小。在我的3TB驱动器中,它是2,999,772,905,472字节:

    sudo diskutil cs resizeVolume $new_lv_guid 2999772905472
    
  4. 使用pv自制程序中的命令,对磁盘进行低级块复制。这很像使用dd,除了您可以使用ETA获得进度表。

    您需要从diskutil cs list输出中获取磁盘号。小心。在这里用新的空白驱动器意外覆盖完整的备份驱动器很容易。

    sudo sh -c "$(which pv) --buffer-size 50M -s 2999772905472 < /dev/rdisk${source} > /dev/rdisk${target}"
    

    如果您在此处收到拒绝权限/不允许的操作错误,请进入“安全性和隐私首选项”,并为Terminal.app添加“全盘访问”。

    对我来说,这花了大约10个小时-我让它运行了一整夜-但是,有了pv,至少您可以获得带有ETA的进度表。

  5. 现在,扩展该卷以占用驱动器上的所有剩余空间:

    sudo diskutil cs resizeVolume $new_lv_guid 0
    

    我花了大约3个小时的时间,备份了大约5年。大部分时间都花在了macOS上fsck

现在,您可以享受新的,更宽敞的Time Machine驱动器。您可以重新调整旧驱动器的用途,或将其存放在安全的地方,以防新驱动器发生故障。


调整大小步骤似乎很重要;跳过它们会产生10小时的文件副本,该副本会产生一个8TB的卷,其中包含3TB的文件系统,我不知道如何调整大小。


更新此方法的一个潜在缺点是,因为它是逐位复制的,所以旧磁盘和新磁盘之间的标识符相同。如果我连接了旧的完整磁盘,Time Machine会认为它是新磁盘,然后尝试备份,并开始删除旧备份以为新备份腾出空间。将数据移到较大的磁盘上似乎是一种很好的方法,然后将擦除较旧的较小磁盘。


你好安德鲁!感谢您抽出宝贵的时间来输入此分步指南(我希望将其用于将我的1TB备份传输到4TB磁盘,到目前为止,由于Finder复制的文件夹和文件,该磁盘尚未成功在新磁盘上占用的空间比原始磁盘要大得多)。我对你的问题是:我可以做这些步骤没有 cs又名corestorage启用?使核心存储似乎是一个潜在的不必要PITA,但它可能是因为GUID步骤3的必要
迈克尔Dautermann

对于文件驱动器,强烈建议使用@MichaelDautermann核心存储,对于备份驱动器,强烈建议使用FileVault,以在丢失,被盗或处置不当的情况下保护您的隐私。
安德鲁(Andrew)

我想补充一点,就是我无法使用上述方法进行复制。原因是系统提示此“不允许操作”。简短搜索之后,我发现我需要关闭所有SIP功能。这可以通过按住Command + R重启macOS并打开终端来完成。在这里,您需要通过键入“ csrutil disable”来禁用。下次重新启动时,我能够复制TM备份
Oliver Koehler,

@andrew我的版本是10.14.6,我完全理解您提到的风险。但是,我无法在不关闭SIP的情况下对TimeMachine进行dd或pv备份。如果还有另一种方式,我很乐意听到。
奥利弗·科勒

我一直收到99%的“ PV:写入失败:输入/输出错误”(30小时后,经过3次尝试-实际上是90小时)。磁盘已卸载。SIP功能已禁用。谷歌搜索错误没有提出任何东西。与原始情况类似(3TB-> 8TB)。sudo sh -c "$(which pv) --buffer-size 50M -s 3000249008128 < /dev/rdisk3 > /dev/rdisk5"-在8TB以前成功调整Resized Core Storage Logical Volume to 3,000,249,008,128 bytes
堪萨斯州

2

为什么不只使用终端:

cp -RnpP Backups.backupdb
  • -R 递归的
  • -n 不要覆盖(如果先前尝试保留了现有的副本残留)
  • -p 保留ACL,权限,创建/修改日期等。
  • -P 保留硬链接,请勿遵循任何硬链接或符号链接。

这不是真的。阅读man cpmacOS。cpmacOS随附的常规命令不会使用-P复制硬链接。手册页实际上说:“请注意,cp将硬链接的文件复制为单独的文件。如果需要保留硬链接,请考虑使用tar(1),cpio(1)或pax(1)。”
chmac

0

这个答案不会更快地完成它,但是我发现这是一种在保留重复数据删除(硬链接)和权限的同时正确复制数据的方法。作为额外的好处,我用它来制作最终产品的压缩dmg以进行存档。

  1. 使用磁盘实用程序,使磁盘映像大于Backups.backupdb目录。我还建议您将稀疏捆绑软件磁盘映像用于映像格式,将硬盘用于分区。挂载该映像后,获取有关它的信息,然后取消选择“忽略此卷上的所有权”。

  2. 现在关闭Time Machine,然后使用查找器将Backups.backupdb文件夹复制到已安装的映像。查找程序将询问您超级用户权限以复制数据。喝一杯或做点其他事情。

  3. 复制完成后,请确保一切正常,然后卸载映像。在“磁盘工具”中,选择“转换”,然后将稀疏捆绑包映像转换为压缩映像。同样,这可能需要一段时间。

您最终应该获得Time Machine备份的两个副本,可以删除稀疏捆绑软件版本,并将dmg作为存档及时保存在安全的地方。

我没有尝试过的一件事是从dmg进行系统还原,但是我怀疑它应该可以工作,我的目标更多是归档时间机器增量更改并保留硬链接结构。

我也尝试过rsync和cp,但是它们似乎并没有保留硬链接结构,硬链接结构最终会使x变成大小的x,x是您过去的日期量。此方法效果很好,但可能无法再次获得块复制解决方案的速度。


0

Apple为此提供了一个官方教程:“ Time Machine:如何将备份从当前备份驱动器转移到新备份驱动器 ”。

该页面的高级步骤:

  1. 检查新备份驱动器的格式
  2. 在新的备份驱动器上设置权限
  3. 暂时关闭Time Machine
  4. 将备份数据从原始驱动器复制到新驱动器
  5. 将Time Machine设置为使用新驱动器

这是页面建议执行复制步骤的方式:

将备份数据从原始驱动器复制到新驱动器

  1. 打开一个新的Finder窗口。在Finder边栏中,单击原始备份驱动器的图标。
  2. 打开一个新的Finder窗口。在Finder边栏中,单击新备份驱动器的图标。
  3. 将文件夹“ Backups.backupdb”从原始备份驱动器拖到新备份驱动器的顶层。
  4. 输入管理员名称和密码,然后单击“确定”开始复制过程。

复制备份数据可能需要一些时间才能完成,具体取决于备份的大小。


5
我一直在看这个问题,因为按照该教程(建议使用Finder复制备份文件夹)并使其在一夜之间运行,它在某些许可问题上以大约500 / 940gb的复制结束。然后我做了sudo rsync一个昨晚,但是今天早上找到了ERROR: out of memory in flist_expand [sender],我的副本现在是〜600gb。我还没有决定下一步该怎么做,但是怀疑大多数阅读本书的人已经知道了官方教程。
PeterT 2014年

@PeterT我也尝试过tuto,并遇到了与您相同的问题。我不确定是否有人对本教程有所了解,否则有人会在这里提及该教程及其后续结果。现在,人们知道这不值得尝试。
David Andreoletti 2014年

1
使用finder复制文件夹需要花费一些时间来建立文件列表,然后由于磁盘空间不足而失败,因此必须进行错误的计算。
malhal,2017年

1
那正是我的问题。原来的TM容量为550GB,新的TM容量为600GB。Mojave仍然抱怨卷空间不足。我现在正在使用SuperDuper!在“备份-所有文件”模式下。
马库斯·鲁德尔

1
苹果的教程对我来说在macOS Mojave 10.14.2中失败了。我试图将3TB备份存档复制到8TB驱动器;Finder花了近5天的时间进行复制(大部分时间都说“还剩5秒”),然后放弃并抱怨驱动器已满!即使是,它只复制了大约2/3的备份。显然,它不是保留硬链接,而是创建每个硬链接的新副本。因此,此答案当前不正确。
gidds

0

磁盘实用程序+1,注释太长:

评估了12.250.329个文件,复制了10.408.594个文件。有效复制速度为8,68 MB / s。

通过SuperDuper克隆具有多年备份功能的2TB磁性备份驱动器!今年。

这总共花费了63小时(SuperDuper每24小时重置一次时钟,因此最后显示15:04:43),而不是我在大约4天和四分之一的文件后取消的Finder副本。

显然,磁盘并不是花费这么长时间的原因。Finder复制在长时间运行的备份磁盘上停顿的原因是未更改文件上级联符号链接的数量很多,尤其是对于许多小文件(如Git索引)而言。


0

rsync是一个很好的实用程序,可用于此类操作。我通常将它用于这样的事情。在这种情况下,我可能会使用-aP标志。我认为-a(“归档”)的一部分还用于保留权限,ACL等,但是我不确定。

IIRC中还有一个--delete选项,允许您在源文件成功复制到目标后删除它。我会谨慎使用它-通常我会在没有--delete选项的情况下执行完整的镜像,然后我将使用-c和--delete选项重新运行命令。-c是校验和,因此它将通过校验和与源上的所有文件进行比较,检查您已下载的所有文件,如果匹配则将其删除,否则视情况重新复制或恢复复制。

编辑:在这种情况下,请根据注释使用-H标志,以保留硬链接。


5
rsync不会在目录上维护硬链接。复制一会儿TM备份将复制很多目录
nohillside

1
@patrix-我可以确认这一点。我已经试过了 目录硬链接几乎是HFS +所独有的,而rsync无法理解。
假名称

3
-H,--hard-links保留硬链接
Pete Ashdown

-2

使用硬盘驱动器时,当您从一个驱动器中移动多个文件时,读取器来回移动会产生可怕的咔嗒声,并且会大大降低传输速率,例如-USB 2.0的一个文件在计算机上以30 mbps的速度从2移动外部硬盘驱动器,但2个文件以11 mbps的速度移动。和3个文件以6 mbps的速度移动。等等。zip文件比文件移动得更快。


2
这如何回答OP的问题?
fsb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.