使用Linux将文件从NTFS精确复制到另一个NTFS


14

我尝试将所有文​​件从NTFS复制到外部驱动器,并希望保留所有权限和属性。外部驱动器已经具有NTFS并包含其他文件。

我考虑过使用以下工具:

  • ntfsclone无法工作,因为它在扇区级别上运行,并且会克隆整个FS,从而破坏了旧数据。如果用于创建图像文件,则无法从Windows计算机访问内容。
  • rsync 不会保留所有元数据。

另一种选择是robocopy在运行中的Windows中使用,但我希望不复制文件。(源分区用作系统的C:\。)

如何复制文件?


5
您要在此处保留哪些确切的元数据,而RSYNC无法使用适当的参数保留这些元数据?您是指音乐文件软件类型的元数据还是实际的FS权限,结构,时间,所有者等?我不确定您已经使用RSYNC尝试过什么,但是似乎使用正确的参数(-AXogt例如)应该在大多数情况下保留FS元数据。请说明您尝试过的不起作用的内容以及在NTFS分区之间未保留的“元数据”。
Pimp Juice IT

我知道文件本身可以在linux中精确地逐字节复制,但是缺少创建,修改,访问等所有日期吗?还是NTFS用户/所有者和权限?将文件复制回Windows NTFS后,是否有办法更改这些文件的日期和权限?
Xen2050 '16

Answers:


8

无法通过Linux完全复制NTFS文件。甚至Wine(Linux上的Windows兼容层)也可以通过在Linux和Windows之间来回转换权限来工作,因此仅限于它们(相对较小)的最小公分母。

我能看到的唯一解决方案是在虚拟机(或物理机)中的Linux上运行Windows。

我相信您在帖子中已经提到了这种可能性,并且希望避免这种情况,但是我看不到其他可能性。只有Windows才能完全复制NTFS文件;Linux仅能够复制NTFS分区。

本文可能会有所帮助: 如何使用Microsoft提供的免费虚拟机在Linux上免费安装和运行Microsoft Windows


我不确定,但是根据ntfs-3g 的联机帮助页,该选项streams_interface=xattr是默认设置的。如果我正确理解,则意味着NTFS文件属性(包括Windows权限)已映射到xattrlinux中的属性。由于cp -a并且rsync -X确实复制了此属性,因此它不应该是精确的副本吗?
JojOatXGME

@JojOatXGME:Windows和Linux的权限模型完全不同。只有最基本的属性才具有完全对应的属性。
harrymc '18

我知道。我并不是说Linux确实理解该属性,但是xattr属性是键值-paris,操作系统不需要理解。ntfs-3g似乎使Windows权限可用作xattr属性system.ntfs_acl。对于NTFS中的其他matadata,似乎也是如此。由于xattr属性是在使用rsync -X或时cp -a复制的,因此也可能会复制元数据。它取决于的具体限制xattr和实现ntfs-3g,但对我来说似乎是可能的。
JojOatXGME

那么我们如何正确测试呢?多数民众赞成在我们需要这样的声明。它可能是唯一有用的,如果它可以测试....
紫外线

1

第一件事是,如果您要复制文件,则需要下定决心,...

或者您想制作一个完整的,逐个扇区的NTFS分区副本,包括上面提到的“旧数据”,“其他文件”以及“所有元数据”。

对于后者,请使用dd:

dd if=/dev/sda2 of=/mnt/usbdisk/my-ntfs-partition-D.img bs=1M

玩得开心。


2
好吧,我已经下定决心了,这已经是问题了。我想复制所有相关元数据的文件。这应该是可能的,因为源FS和目标FS是NTFS,因此具有相同的功能。使用dd将是一个糟糕的选择,因为它没有考虑FS信息。如果您有NTFS,则应始终使用它ntfsclone来创建映像。
Scolytus

在这种情况下,请使用robocopyor ntfscopy(tzworks.net/prototype_page.php?proto_id=9),但是在Linux上都不可用。
Paxsali 2014年

好吧,我也提到robocopy我的问题。因此,我感谢您的负担,但这并不是我的问题的真正答案。
Scolytus

1

Linux可以复制NTFS文件的内容,但不能复制所有修改/创建/访问的日期和属性(我假设这就是您要保留的内容)。

因此,为什么不只记录当前的日期和属性(dir应该能够显示它们),然后在linux中复制文件,一旦运行Windows,就再次将日期和属性改回原始格式。

在Windows中使用一个工具,可以改变文件,像一个这些的

显然,Windows自己的文件资源管理器甚至也无法正确保留所有文件日期。但是zip&cygwin的tar命令应该保存文件日期,因此使用Windows中的其中一个文件创建存档也应该可行,然后以任何旧方式复制存档。


如果属性非常重要,即使在Windows中也很难复制,则可能应将其备份到文本文件或数据库中,或者作为文件名的一部分...

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.