Windows XP 与 Vista:NTFS 连接点
Posted
技术标签:
【中文标题】Windows XP 与 Vista:NTFS 连接点【英文标题】:Windows XP vs Vista: NTFS Junction points 【发布时间】:2010-09-30 18:08:12 【问题描述】:问题:我非常依赖 Windows XP 中的 NTFS 连接点,尽管它们显然不是操作系统的“官方”功能。现在,MSFT 已经慷慨地将 NTFS 连接点作为 Vista 的官方部分,但显然他们也有意破坏它们。现在,当我将该驱动器插入 Vista 盒子时,我在便携式 USB 驱动器上创建的 WinXP 连接点无法正常工作。
问题: 有没有人有一个脚本可以强制在 XP 上创建的 NTFS 连接在 Vista 和 XP 中都能正常工作?是否有文档或规范解释了 MSFT 是如何导致这种损坏的?
更新:感谢 Ulrich 和 Scott 提出后续问题。我用来创建联结的工具是Systinternals Junction v1.05,尽管我不能确定所有这些都是使用现在由 MSFT 托管的应用程序的特定版本创建的。
至于连接点的使用方式......假设外部“Q Drive”设备:
1) Q Drive 上的某些项目是从 Q Drive 上的一个位置指向 Q Drive 上的另一个位置的连接点(例如,我需要在多个位置拥有文件夹的情况,以及传统的 .lnk 样式的快捷方式不起作用)
2) 某些项目是从 C 驱动器直接指向 Q 驱动器上的位置的连接点。当 Q Drive 未实际连接盒(XP 或 Vista)时,这些项目显然不起作用,但在 Vista 上连接时,连接点不像在 XP 上那样工作。
【问题讨论】:
我对这个很感兴趣,虽然我不使用连接点,但我对NTFS很感兴趣。 【参考方案1】:你想链接到什么?你是链接到你的便携式驱动器还是从你的驱动器?你在用“mklink /d”吗?
【讨论】:
【参考方案2】:您为什么不尝试使用this 程序(免费软件)来创建链接。显然 Windows Vista 需要不同的版本。我已经尝试了两个版本(XP 和 Vista),它们都可以工作。我知道这与您的具体问题无关,但鉴于每个操作系统都有单独的版本,因此创建 Junction 的方式可能有所不同。
您使用的工具相当老旧(2007 年),没有提到 Windows Vista。我知道 MSFT 确实 更改了连接点中的某些内容,以便添加一些他们想要使用的功能。 Vista 在 Program Files 文件夹等方面更具权威性。
【讨论】:
【参考方案3】:联结和符号链接是两种不同类型的 NTFS 对象,并不完全相同。为什么您的路口在 Vista 中不被识别是一个谜,但在 Vista 中仍然存在路口功能并且它没有被故意破坏。
您可以使用 mklink (http://technet.microsoft.com/en-us/library/cc753194.aspx) 创建软链接(默认)、硬链接 (/h) 或联结 (/j)。符号链接对联结的最大改进是符号链接可以引用文件或目录(联结仅是目录)并且还可以引用网络共享(联结不能)。
但最重要的是它们是不同的。无法告诉您为什么 Vista 无法识别您现有的路口。您仍然可以按上述方式创建它们。
另一篇文章 (LinkMagic) 中提到的免费软件实用程序是让您的路口再次工作的最佳选择。或者使用 mklink 重新创建它们。
【讨论】:
【参考方案4】:除了之前的一个 cmets 中已经建议的 Linkmagic 程序之外,Link shell 扩展是另一个很好的程序来操作(和检查)链接和联结:
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
这两个程序都可以告诉您现有的链接/连接点指向什么,以及它们是什么。这可以帮助您找出问题所在。
【讨论】:
【参考方案5】:同一卷内的连接点应该可以工作 - 它们应该是硬链接目录。
您是否尝试过 USB 驱动器是否可以在 XP 机器之间工作?它可能不起作用。
我知道对于 vista,卷不是由路径 (Q:) 标识的,而是由卷 GUID 标识的。 $MFT_REPARSE_POINT 格式可能已从 XP 更改为 Vista 以适应这种情况。 在 Vista 下,这意味着即使你的 Q 盘突然变成 X,连接点应该仍然可以工作,而在 XP 下它会被破坏。
【讨论】:
【参考方案6】:Christoph Hochstätter 制作了一个“mklink.exe”替代 Windows XP,它实际上可以创建 正版 Vista (et al.) 符号链接重解析点,但警告它们可能无法在以下情况下使用 Windows XP 操作系统。但是,Cygwin 将在 XP 下识别它们。当然,Linux ntfs 也会挂载。 不确定这是否会有很大帮助...
http://www.zdnet.de/windows_system_verbessern_mklink_f_uuml_r_windows_download-39002345-30973-1.htm
【讨论】:
以上是关于Windows XP 与 Vista:NTFS 连接点的主要内容,如果未能解决你的问题,请参考以下文章
Windows XP 与 Vista/7 上的 MS Crypto API 行为