我尝试将所有文件从NTFS复制到外部驱动器,并希望保留所有权限和属性。外部驱动器已经具有NTFS并包含其他文件。
我考虑过使用以下工具:
ntfsclone
无法工作,因为它在扇区级别上运行,并且会克隆整个FS,从而破坏了旧数据。如果用于创建图像文件,则无法从Windows计算机访问内容。rsync
不会保留所有元数据。
另一种选择是robocopy
在运行中的Windows中使用,但我希望不复制文件。(源分区用作系统的C:\
。)
如何复制文件?
我尝试将所有文件从NTFS复制到外部驱动器,并希望保留所有权限和属性。外部驱动器已经具有NTFS并包含其他文件。
我考虑过使用以下工具:
ntfsclone
无法工作,因为它在扇区级别上运行,并且会克隆整个FS,从而破坏了旧数据。如果用于创建图像文件,则无法从Windows计算机访问内容。rsync
不会保留所有元数据。另一种选择是robocopy
在运行中的Windows中使用,但我希望不复制文件。(源分区用作系统的C:\
。)
如何复制文件?
Answers:
无法通过Linux完全复制NTFS文件。甚至Wine(Linux上的Windows兼容层)也可以通过在Linux和Windows之间来回转换权限来工作,因此仅限于它们(相对较小)的最小公分母。
我能看到的唯一解决方案是在虚拟机(或物理机)中的Linux上运行Windows。
我相信您在帖子中已经提到了这种可能性,并且希望避免这种情况,但是我看不到其他可能性。只有Windows才能完全复制NTFS文件;Linux仅能够复制NTFS分区。
本文可能会有所帮助: 如何使用Microsoft提供的免费虚拟机在Linux上免费安装和运行Microsoft Windows。
streams_interface=xattr
是默认设置的。如果我正确理解,则意味着NTFS文件属性(包括Windows权限)已映射到xattr
linux中的属性。由于cp -a
并且rsync -X
确实复制了此属性,因此它不应该是精确的副本吗?
system.ntfs_acl
。对于NTFS中的其他matadata,似乎也是如此。由于xattr属性是在使用rsync -X
或时cp -a
复制的,因此也可能会复制元数据。它取决于的具体限制xattr
和实现ntfs-3g
,但对我来说似乎是可能的。
第一件事是,如果您要复制文件,则需要下定决心,...
或者您想制作一个完整的,逐个扇区的NTFS分区副本,包括上面提到的“旧数据”,“其他文件”以及“所有元数据”。
对于后者,请使用dd:
dd if=/dev/sda2 of=/mnt/usbdisk/my-ntfs-partition-D.img bs=1M
玩得开心。
dd
将是一个糟糕的选择,因为它没有考虑FS信息。如果您有NTFS,则应始终使用它ntfsclone
来创建映像。
robocopy
我的问题。因此,我感谢您的负担,但这并不是我的问题的真正答案。
Linux可以复制NTFS文件的内容,但不能复制所有修改/创建/访问的日期和属性(我假设这就是您要保留的内容)。
因此,为什么不只记录当前的日期和属性(dir
应该能够显示它们),然后在linux中复制文件,一旦运行Windows,就再次将日期和属性改回原始格式。
在Windows中使用一个工具,可以改变文件,像一个这些的:
显然,Windows自己的文件资源管理器甚至也无法正确保留所有文件日期。但是zip&cygwin的tar命令应该保存文件日期,因此使用Windows中的其中一个文件创建存档也应该可行,然后以任何旧方式复制存档。
如果属性非常重要,即使在Windows中也很难复制,则可能应将其备份到文本文件或数据库中,或者作为文件名的一部分...
-AXogt
例如)应该在大多数情况下保留FS元数据。请说明您尝试过的不起作用的内容以及在NTFS分区之间未保留的“元数据”。