Windows 删除了从 Linux 和 ext4 文件系统复制的文件

Windows 删除了从 Linux 和 ext4 文件系统复制的文件

我有一个带有 ntfs 文件系统的外部硬盘。我用它来备份 /home(ext4 文件系统)下的文件。我选择NTFS只是因为据说它可以在Windows和Linux之间移植。但现在我不确定。

外部硬盘上有一些文件无法删除,而且我不知道有任何本地化解决方案只关注罪魁祸首文件,因此按照以下建议修复了整个 ntfs 文件系统为什么我无法删除外部硬盘驱动器上的某些文件?

CHKDSK E: /r

在 Windows 8.1 中的外部 HDD 上。它报告了一些文件的一些问题,并修复了它们。

现在我可以删除不可删除的文件了。但是从我的 ext4 /home 复制的所有文件的备份目录都消失了(我不确定是否还有其他目录也被删除。似乎现在 Windows 的 CHKDSK 很好地缩小了备份目录的范围。备份目录包含以下文件短路径名和长路径名)。相反,我发现了新的文件夹found.000(包含大量file00000xxx.chk文件)和Extras.

从我的 ext4 /home 复制的许多备份文件的路径名都比 Windows 可以识别的长。这就是 CHKDSK 删除这些文件并尝试修复它们的原因吗?换句话说,CHKDSK 是否会删除从 ext4 文件系统复制的 NTFS 上的文件,这些文件的路径名比 Windows 可以识别的长?

是否可以恢复从我的 ext4 /home 复制的 ntfs 硬盘上的文件?

您建议在外部 HDD 上使用哪种文件系统,以实现 Windows 和 Linux 之间的可移植性?

谢谢。

答案1

您建议在外部 HDD 上使用哪种文件系统,以实现 Windows 和 Linux 之间的可移植性?

NTFS就可以了。您还可以使用 exFAT 甚至 FAT32(如果 4GB 文件大小限制适合您)。所有这些文件系统都可以处理32k 字符路径名

你的问题是Windows。

最大路径长度限制

在 Windows API 中(除了以下段落中讨论的一些例外情况),路径的最大长度为最大路径,定义为 260 个字符。

以及正文中的进一步内容

从 Windows 10 版本 1607 开始,最大路径常见 Win32 文件和目录函数的限制已被删除。但是,您必须选择接受新行为。

注册表项允许您启用或禁用新的长路径行为。要启用长路径行为,请将注册表项设置为
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD). 首次调用受影响的 Win32 文件或目录函数(列表如下)后,系统(每个进程)将缓存该项的值。在进程的生命周期内不会重新加载注册表项。为了使系统上的所有应用程序都能识别该密钥的值,可能需要重新启动,因为某些进程可能在设置密钥之前已启动。

另请阅读:为什么 Windows 中存在 260 个字符的路径长度限制?

解决方案很简单。不要使用这么长的路径名。

答案2

exfat 是一个简单的兼容选择

https://en.m.wikipedia.org/wiki/ExFAT

相关内容