如何使用cp复制Mac卷?


13

我已经研究了几个小时。在单用户模式下,我使用了:

cp -Rpvn /* /Volumes/MyBackup

我的外部USB已安装在 /Volumes/MyBackup

但是问题是,在24小时之后,它仍然没有停止将300GB的数据复制到外部USB驱动器中。我认为它在符号链接方面有问题,例如/Volumes/MacHD音量也有一个/Volumes/MacHD/Volumes/MyBackup但是我不确定。

如何使用复制Mac卷cp?是cp -Rpvn /* /Volumes/为MyBackup是否正确?


2
您可以像这样使用cp,但它不是此工作的正确工具。为此,您需要rsync。
CousinCocaine 2015年

1
您是否可以在目标磁盘模式下运行Mac?还是只是弹出高清?
CousinCocaine 2015年

我没有第二台Mac,因此无法执行目标模式。我希望选择的风险比取出驱动器低。
ermSO 2015年

rsync可能是您最好的选择,尽管我认为您也可以使用它dd为Mac的HDD制作字节副本。
thibmaek

1
dd是逐个扇区备份的方式,这似乎就像您在这里所做的一样(但要非常小心,以确保要覆盖的内容实际上是您要覆盖的内容)。rsync是执行复杂或大型复制操作的方法。cp适用于单个文件,但不适用于大规模操作。
cpast

Answers:


25

使用rsync此目的,因为cp不能忠实地再现所有存在在OS X上的好处的文件rsyncdittocp有:

  • 中断的传输可以很容易地以很少的成本重新启动。
  • 重新启动甚至通过大文件部分恢复。
  • 文件排除和--dry-run可以轻松进行测试和迭代细化。

使用rsync和保留大多数内容(权限,符号链接,编辑日期等)的最简单方法是使用-a--archive标志进行存档。要查看进度,请使用-P--progress

Rsync的工作方式为:

rsync options source destination

对于您的情况,我建议以下内容:

rsync --archive --verbose --one-file-system --human-readable --progress /from/ /to

或简而言之:

rsync -avxhP /from/ /to

注意在该/to位置缺少斜杠。

查看评论以获取更多有用的标志


6
您还希望使用-x标志,以避免遍历到不在同一卷上的已装入磁盘。
肯特

budoike的kudo使得此文章更具可读性。
CousinCocaine 2015年

2
-P其实就相当于两个--progress--partial结合。请参见手册页
kirb

1
我会跳过--compress(仅对网络传输有用),然后添加-E(保留扩展属性和资源派生)。
戈登·戴维森

5

如果要忠实复制文件系统内容,请避免使用cp。而是使用ditto(1)命令,该命令将保留硬链接,文件许可权,资源派生和HFS元数据。与不同cpditto默认情况下,意味着要保留尽可能多的信息。

这只是运行的问题。sudo ditto src dest


如果我错了,请纠正我,但是我敢肯定,cp已更新为可以复制10.4中的文件元数据。
NobodyNada-恢复莫妮卡2015年

曾经,但是ditto仍然是一个更好的选择。
juandesant 2015年

1
并且rsync是最好的选择。
CousinCocaine 2015年

2

您忘记了创建排除文件列表,并且很可能正在复制无法/不应复制的内容,包括/ dev / random之类的无底文件。

尽管cp 可以胜任工作,但还有更好的工具。Rsync是一个,Carbon Copy Cloner或SuperDuper是另一个。要使用厨房类比,您正在使用刀子打开罐头。Rsync是开罐器,Carbon Copy Cloner是电动开罐器。我经常使用rsync,但是复制正在运行的操作系统所需的设置非常复杂,我自己从来都不想做。

 cp -Rpvn /* /Volumes/MyBackup 

您似乎要做的只是备份。您的Mac明确包含用于此目的的Time Machine。打开系统偏好设置->时光机,选择外部磁盘,打开它,然后将其放置。它运行良好,需要一分钟的时间。


我无法访问GUI。我只能使用单用户模式工作,因此不能选择time CCC,superduper和time machine。您将对rsync使用哪些设置?理想情况下,我想要可引导的副本。我不能上班了。
ermSO 2015年

1
@ermSO因为您显然有外部驱动器,所以在外部上安装新的OS,然后从中启动。当前所有Mac均可从火线或USB启动。然后,您可以对用户文件进行体面的备份,然后修复内部驱动器。在这种情况下,我通常会完全擦除,从而消除任何残留的目录问题。
paul 2015年

dd将在命令行上逐个扇区进行复制,并且是在擦除整个第二卷的同时将整个卷复制到另一个整个卷的不错选择。
cpast

确定要-R选择吗?这意味着,如果您在多个位置都有指向单个文件夹的符号链接,则将复制内容。这可以解释时间的花费。如果您改用ditto默认设置,则将获得所需的设置。
juandesant 2015年

1
@juandesant是他的命令,不是我的。我根本不会使用cp。
保罗

0

您可以使用tmutilTime Machine实用程序从命令行创建Time Time Machine备份。您可以设置目标,然后订购手动备份。

设置Time Machine备份量:

sudo tmutil setdestination /卷/ MyBackup

然后开始备份:

tmutil startbackup-自动

--auto标志将尝试将其视为普通的定时备份。

备份Time Machine后,您可以在Mac上重新安装OS X,然后从Time Machine备份导入所有文件。

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.