如何完全按原样复制文件系统?

Top*_*der 12 linux filesystems cp rsync

我有一个我正在编程的设备的文件系统,我想制作一个精确的副本。理想情况下,我希望此副本与从中复制的文件夹相同。我曾尝试使用cp -r cp -arsync -azvP尝试实现这一目标。虽然每一个都会产生一个不同大小的文件夹(使用du -s),最终,即使我的设备运行在原始文件夹之外,它也不会运行我复制的文件夹。

  • 我使用的命令没有考虑到什么被遗漏了?
  • 复制文件系统/文件夹时是否可以保持所有内容相同?如果是这样,我将如何去做?

PS 我在StackOverflow上发布了一个类似的问题,但很快意识到我在错误的交易所问了它


编辑:这可能没有帮助,但无论我使用哪种方法复制的目录总是会导致有问题的机器出现以下输出的内核恐慌。

VFS:无法通过 NFS 挂载 root fs,尝试使用软盘。VFS:无法打开根设备“nfs”或 unknown-block(2,0) 请附加正确的“root=”引导选项;这里是可用的分区: 1f00
64 mtdblock0(驱动程序?)1f02 64 mtdblock2(驱动程序?)1f04 2432 mtdblock4(驱动程序?)1f05 128 mtdblock5(驱动程序?)1f06 4352 mtdblock6(驱动程序?)1f06 4352 mtdblock6(驱动程序?)80725040404004020000000000块mtdblock8(驱动程序?)0800
8388608 sda 驱动程序:sd 内核恐慌 - 不同步:VFS:无法在未知块(2,0)上挂载根文件系统

bay*_*irh 13

我通常使用以下替代方法之一:

  • rsync -aHAX(添加 v 表示详细)确保在复制时保留目标文件夹中的任何链接结构和 x-attrs。不要忘记a意味着存档并保留时间、所有权和权限。
  • 简单tar cvf(不要压缩以节省时间,只需将它们压缩)是我使用的,如果第一个不满足我需要的任何原因并且我没有时间,但我总是尝试第一个。

要检查一切是否按diff -r <folder1> <folder2>预期进行,如果需要,您可以事后运行。

  • 这不会在没有 -S 的情况下复制稀疏文件。这可能是 `du -s` 差异的一部分。我使用 `rsync -axXSAH` 来复制所有内容。-x 只会在文件系统内复制,而不是从另一个文件系统挂载的文件。 (4认同)