我想为我的重要数据构建一个小型备份服务器。我不想丢失 Windows/NTFS 提供的任何功能,例如:
- 文件创建日期
- ADS 元数据(评论、标签等)
- 使用具有在复制时保留文件创建日期选项的工具(如 TeraCopy/RichCopy/FastCopy 等)复制文件时会保留文件创建日期。
据我所知,NAS 最常用的文件系统是 EXT4。使用 SMB 访问 EXT4 分区时,我可以保留所有这些功能吗?
答案1
理论上是可以的。ext4 支持所有基本时间戳(修改、元数据更改、访问),包括所谓的“出生”时间戳。但是,Samba 不使用后者(也没有stat
顺便说一下,它只是将最早的时间戳作为创建日期。
Samba 通过以下方式支持备用数据流vfs_streams_xattr,将它们存储在 POSIX 扩展属性中。但是,我发现这些流虽然在知道名称时可以访问,但在列出它们时却不会显示。这也意味着它们不会被复制回来。
此外,您还可以使用禁用 acl 属性模块用于保存 NTFS 访问控制列表的精确副本。
TL;DR:虽然可能,但互操作性缺陷使其无法使用。
答案2
EXT4 支持与 NTFS 相同的时间戳和精度,但它们的元数据和 ACL 结构完全不同。如果您想在 EXT4 文件系统上保留 NTFS 元数据和 ACL,您将需要一种支持这些内容的容器格式。您还必须从 Windows“推送”数据,而不是从备份服务器“拉取”数据。
幸运的是,有许多容器格式可以做到这一点。微软自己的 VHD 格式可能是你最好的选择。它们不仅适用于虚拟机。Windows 允许你在磁盘管理器中将 VHD 本地安装为驱动器号。然后,你可以使用 TeraCopy/RichCopy/FastCopy 等将文件复制到其中。
此外,微软的 WIM 格式还支持 NTFS 元数据和权限,您还可以挂载 WIM 文件。WIM 的缺点是,完成后您必须卸载/提交更改,而且速度非常慢。不过,好处是,管理 WIM 文件的工具 (DISM) 内置于 Windows 中,默认情况下会保留元数据和 ACL。如果您以脱机方式启动 Windows(到 Windows PE 环境),则可以将整个操作系统克隆到 WIM,无需第三方工具。
还有第三方选项可用。WinRAR 能够备份这些信息,而且是免费的(但不是开源的)。还有 Acronis TrueImage,它是商业备份软件,但支持所有 NTFS 功能。
实际上,您在这里有很多选择,但仅靠 EXT4 和 Linux 不足以支持您尝试保留的 NTFS 数据结构。
答案3
有些观点需要澄清,例如为什么不将服务器设置为具有真实 NTFS 磁盘的 Windows 计算机。
如果问题是计算机没有可用的 Windows 序列号,您可以安装 Microsoft 的免费操作系统 Hyper-V Server 2012 R2,
可在此处获得,添加存储,最后创建网络共享。Hyper-V Server 没有 GUI,但使用与 Windows 相同的命令提示符,因此创建网络共享是使用命令完成的net share
。
这将为您带来一个真正的 NTFS 磁盘,而不是一个有问题的、不太一样的 Linux 磁盘。
缺点是无法使用 UNC 语法访问网络共享上的文件。