复制数据的替代方法:

复制数据的替代方法:

我有一个大约 55GB 的大型 virtualBox 虚拟机。它目前在我的外部硬盘上。问题是我无法将其从外部 USB 硬盘复制到我的电脑上。大约 75% 时,复制失败。我也无法克隆它,因为它试图从硬盘克隆到我的电脑。这一定是由于我的外部硬盘的一些限制,尽管我不能确定。它只有一年的历史。我现在唯一能想到的就是将它分成每 25GB 的块,然后将其复制过来并重新合并为一个。有人有其他我可以尝试的选择吗?如果文件拆分是唯一的选择,您会推荐哪种文件拆分器来拆分和合并大型虚拟机文件?

答案1

您可能使用其他程序成功复制了 VM 文件夹。如果不行,您可以始终对 VM 文件夹进行拆分存档,分块复制存档,然后提取它。

复制数据的替代方法:

使用 Xcopy 复制目录:

xcopy “C:\vmfolder” “D:\vmfolder” /E /V /I /F /H /-Y /J

替换C:\vmfolderVM 文件夹的位置以及D:\vmfolder您想要复制它的位置。

/E复制目录、子目录及其中的所有文件。

/V随后将验证文件大小。

/I允许指定目标目录。

/F复制时显示正在复制的内容。

/H复制隐藏文件和系统文件。

/-Y提示您是否要覆盖现有文件。

/J不使用输入/输出缓冲区。非常适合处理大文件。

以下是一个例子:

xcopy “E:\虚拟机\VMware Player\Ubuntu 14.04.1 - 核心 X86-64” “F:\Temp\Ubuntu 14.04.1 - 核心 X86-64” /E /V /I /F /H /-Y /J

使用 Robocopy 复制目录:

robocopy “C:\vmfolder” “D:\vmfolder” /E /J /SL /MT[:1] /V /FP /ETA /TEE

替换C:\vmfolderVM 文件夹的位置以及D:\vmfolder要将其复制到的位置。您可以保留/MT[:1]原样,或者如果您的计算机可以处理更多线程,您可以增加它。

/E复制子目录。

/J输入/输出不使用缓冲区,这对于大文件很有帮助。

/SL如果使用符号链接,请复制链接而不是目标。

/MT[:n]多线程复制;最小线程数为 1,最大线程数为 128。使用您的系统可以处理的数字。

/V详细输出。

/FP将完整路径添加到输出。

/ETA估计完成时间。

/TEE除了日志文件之外,还输出到控制台。

以下是一个例子:

robocopy “E:\虚拟机\VMware Player\Ubuntu 14.04.1 - 核心 X86-64” “F:\Temp\Ubuntu 14.04.1 - 核心 X86-64” /E /J /SL /MT[:1] /V /FP /ETA /TEE

创建档案、复制并提取

使用 7-zip 命令行版本创建分割存档:

C:

替换C:您希望保存档案的驱动器。

cd“C:\保存位置”

替换C:\savelocation驱动器上您希望保存档案的位置。这是因为 7zip 不支持在创建档案时指定输出路径(尽管在使用 进行提取时支持e)。

7za a-tzip-r-mx0-mmt-v5g“vmfolder.zip”“C:\vmfolder”

替代vmfolder.zip档案名称和C:\vmfolderVM 文件夹路径。

a将文件添加到档案。

-r递归添加子目录。

-mx0将压缩设置为无。

-mmt启用多线程。

-v将档案分成若干块,g为千兆字节,m为兆字节,k为千字节,b为字节。

t选择存档类型,zip适用于 zip 存档。

例如:

埃:

cd“E:\虚拟机\VMware Player”

7za a -tzip -r -mx0 -mmt -v300m “Ubuntu 14.04.1 - 核心 X86-64.zip” “E:\Virtual Machines\VMware Player\Ubuntu 14.04.1 - 核心 X86-64”

使用 Xcopy 复制文件:

xcopy “C:\savelocation*.zip*” “D:\savelocation” /V /I /F /H /-Y /J

替换C:\savelocation档案的位置以及D:\savelocation您想要复制它们的位置。

/V随后将验证文件大小。

/I允许指定目标目录。

/F复制时显示正在复制的内容。

/H复制隐藏文件和系统文件。

/-Y提示您是否要覆盖现有文件。

/J不使用输入/输出缓冲区。非常适合处理大文件。

例如:

xcopy “E:\Virtual Machines\VMware Player*.zip*” “F:\test” /V /I /F /H /-Y /J

使用 7-zip 命令行版本提取分割存档:

答案:

替换D:您想要将档案提取到的驱动器。

cd“D:\提取位置”

替换C:\extractionlocation您想要提取到的驱动器上的位置。

7za x -mmt “D:\savelocation\vmfolder.zip.001”

替代D:\savelocation\vmfolder.zip.001档案的位置。当 7-zip 创建分割档案时,它会将 、 等附加001002单独的部分。

x正常提取文件和文件夹。

-mmt启用多线程。

例如:

F:

cd“F:\测试”

7za x -mmt “F:\虚拟机\VMware Player\Ubuntu 14.04.1 - 核心 X86-64.zip.001”

笔记:

  • 高负载下文件传输失败可能表示驱动器功率不足。
  • 7-zip 有两个版本:7-zip 和 7-zip 命令行版本。7-zip 仅为 GUI,而 7-zip 命令行版本仅为 CLI。

答案2

通常情况下,复制 55GB 的文件不会有问题,所以你可能需要解决这个问题。我记得有人必须关闭省电功能,这样电脑在复制时才不会进入睡眠模式。

答案3

您可以尝试使用 HJsplit (http://www.hjsplit.org/)。它是免费的,并且可以转储(无需安装)。

脚步:

  1. 创建一个与 VM 文件夹同名的新文件夹,但位于您希望 VM 所在的驱动器上。
  2. 将 VM 文件夹中的所有小文件复制到新文件夹。
  3. 下载 HJsplit,并使用它来分割和重新合并较大的文件。
    • 运行 HJsplit
    • 选择Split 分裂
    • 选择输入文件、输出位置和分割大小,然后单击start。对需要分割的每个文件重复此操作。它可能“似乎”挂在标记100%处,但这只是一个错误,它会告诉您第一个文件的 100%,然后不计算其余部分;程序仍在运行。 选择
    • 拆分过程完成后,浏览拆分文件,然后将它们复制到所需的驱动器,但不要将它们放入新文件夹中。
    • 在 HJsplit 中单击Join加入
    • 浏览输入文件,它将是第一部分,它将以 结尾.001。浏览输出位置,它将是您之前创建的新文件夹,其中包含所有复制的小文件。最后按start。您需要对拆分的所有文件重复此操作。 输入连接
    • 在 HJsplit 中单击Checksum校验和
    • 浏览原始文件,然后单击start。它可能“似乎”在 100% 时挂起,但它仍在工作。您将获得一个校验和,并使用另一个 HJsplit 实例对新文件夹中的文件重复该过程。 校验和输入
    • 校验和应该匹配,如果不匹配则说明您的文件不相同! 匹配

笔记:

  • HJsplit 拆分大文件需要一段时间。我在一个 5.5GB 左右的文件上进行了测试,大约需要 20 分钟;连接过程更快,校验和过程相当于油漆干燥。
  • 您还可以使用比较功能来验证您的文件是否相同。

相关内容