在 NTFS 根文件夹中创建文件

在 NTFS 根文件夹中创建文件

简介:我试图(并部分成功)在 Windows Server 2008 R2 中用挂载的 VHD 替换多个文件夹,以尝试使用绑定或循环挂载模拟 UNIX 的行为。事实证明,这可以减少由于大文件和小文件混合以及偶尔和不可预测的重写而导致的极端碎片化问题。(第三方应用程序正在做它想做的事情,我没有权力阻止它。)它还可以以合理的方式进行快照,而无需复制所有内容。

当应用程序破坏所有内容后,图像显然会根据需要重新生成。(cp -aT oldmount newmount)

问题:如果 VHD 映像包含 NTFS 文件系统,Windows 需要管理员权限才能在文件系统根目录中创建文件(但不是文件夹)。当应用程序尝试创建此类文件时,这会破坏应用程序。(不,将映像根设置为层次结构中上一个文件夹不是一个选项)。到目前为止,我已经通过使用 vFAT 文件系统解决了这个问题,它不进行任何权限检查,但如果有一些 NTFS 功能(如稀疏文件和每个文件压缩)会非常好。

我曾尝试摆弄我能想到的权限,但据我所知,“完全控制”并不意味着创建文件。

TL;DR:我如何才能让 Windows Server 2008 R2 允许用户在已挂载的 NTFS 文件系统的顶层目录中创建和写入文件?

补充:该应用程序以我的普通用户 ttbomk 的身份运行。我授予“所有人”和用户“完全控制”权限,并将我的用户设置为挂载点(挂载的根文件夹)的所有者。我可以毫无问题地创建文件夹和编辑现有文件,但在创建文件(右键单击、新建、文本文档)时,我收到一个 UAC 确认对话框,标题为“目标文件夹访问被拒绝”,文本为“您需要确认此操作。;[挂载的名称(不是路径)];创建日期:[挂载的创建日期]”,选项为继续、跳过或取消。当像这样手动创建文件时,这很烦人。应用程序只是失败了,静静地运行了一段时间,然后在需要未写入的数据时出现了巨大的问题。

答案1

让我总结一下你正在做的事情:

您创建 VHD 文件并将其挂载到系统上的空文件夹中。问题是应用程序尝试写入已挂载 VHD 文件的根目录 - 但失败了。

通常,您应该能够修改 VHD 文件内的 NTFS 文件结构的权限。Windows 资源管理器可能无法区分您已安装 VHD 的空文件夹的 NTFS 权限和 VHD 内的 NTFS 根条目的权限。

我建议将 VHD 安装为驱动器(仅用于测试)并验证 VHD 内的权限是否正确。当未安装 VHD 时,还要检查空文件夹上的 NTFS 权限。

相关内容