花了好长时间才搞清楚。我使用的是最新的 MacOSX (10.13.2)。我试图将文件复制到外部驱动器进行备份。出现错误,cp 返回“结果太大”并停止复制。通过调试,我消除了外部驱动器并使用 /tmp 作为目标。同样的错误。我的驱动器上有超过 600gb 的可用空间,所以这不是驱动器已满的问题。我也不认为这是文件大小的问题。大约 4.1gb 的文件出现错误,而 4.3gb 的文件复制时没有问题。
源文件:
-rw------- 1 me staff 4332060672 Jan 22 15:13 Virtual Disk-cl1-s007.vmdk
-rw------- 1 me staff 4115791872 Jan 22 14:48 Virtual Disk-cl1-s008.vmdk
复制文件 1 (成功):
C02W114MHTDF:TNT-VPN.vmwarevm me$ cp Virtual\ Disk-cl1-s007.vmdk /tmp/
C02W114MHTDF:TNT-VPN.vmwarevm me$ echo $?
0
复制文件 2 (失败):
C02W114MHTDF:TNT-VPN.vmwarevm me$ cp Virtual\ Disk-cl1-s008.vmdk /tmp/
cp: Virtual Disk-cl1-s008.vmdk: Result too large
C02W114MHTDF:TNT-VPN.vmwarevm me$ echo $?
1
复制后,复制的文件在/tmp中如下所示:
-rw------- 1 me wheel 4332060672 Jan 22 16:26 /private/tmp/Virtual Disk-cl1-s007.vmdk
-rw-------@ 1 me wheel 2227175424 Jan 22 16:26 /private/tmp/Virtual Disk-cl1-s008.vmdk
请注意,第二个文件仅复制了 4.1gb 文件中的约 2.2gb,但第一个文件复制了适当的大小。
我不知道该怎么解决这个问题。在我使用 Unix 和 Linux 的这么多年里,我从来没有见过 cp 出现这种类型的错误。
我可以使用 tar 和 mv 而没有任何问题。cksum 因相同的错误而失败。
不过,我用于备份的程序使用了与 cp 类似的东西,因此我尝试先使用该程序进行调试,然后再将该工具替换为其他可用的程序。
标记
答案1
这可能是硬件故障。我在一个外部 SSD 驱动器(HFS+ 格式)上遇到了此错误,该驱动器似乎有硬件故障。(Ubuntu 上的同一驱动器间歇性出现“输入/输出错误”;复制大文件时 SHA 校验和会发生变化。)