Windows XP 与 Vista:NTFS 连接点
问题:我严重依赖 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 Drive 上的位置。 当 Q Drive 未实际连接盒子(XP 或 Vista)时,这些项目显然不起作用,但在 Vista 上连接时,连接点不会像 XP 上那样工作。
Problem: I relied heavily on NTFS Junction points in Windows XP, even though they apparently were not an "official" feature of the operating system. Now MSFT has generously made NTFS Junction points an official part of Vista, but apparently they also intentionally broke them. Now my WinXP-created junction points on portable USB drive don't work when I plug that drive into a Vista box.
Questions: Does anyone have a script that will force NTFS junctions created on XP to work correctly within BOTH Vista and XP? Is there documentation or a spec that explains what MSFT did to cause this breakage?
Update: Thanks, Ulrich and Scott, for your follow-up questions. The tool I used to create the junctions was Systinternals Junction v1.05 although I can't say for sure that all of them were created with that specific version of the now-MSFT-hosted app.
As far as how the junctions are used ... assuming an external "Q Drive" device:
1) Some items on the Q Drive are junctions that point from one place on the Q Drive to another place on the Q Drive (e.g., cases where I needed to have a folder in more than one place, and a traditional .lnk style shortcut would not work)
2) Some items are junctions that point from the C Drive directly to locations on the Q Drive. These items obviously do not work when the Q Drive is not actually connected box (XP or Vista), but when connected on Vista, the junctions do not work as on XP.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
连接和符号链接是两种不同类型的 NTFS 对象,并不完全相同。 为什么你的连接在 Vista 中无法识别是一个谜,但连接功能在 Vista 中仍然存在,并且不是故意破坏的。
您可以使用 mklink (http://technet.microsoft.com/en-us/ Library/cc753194.aspx)来创建软链接(默认)、硬链接(/h)或联结(/j)。 符号链接相对于联结的最大改进是符号链接可以引用文件或目录(联结仅是目录)并且还可以引用网络共享(联结不能)。
但底线是它们是不同的。 但无法告诉您为什么 Vista 无法识别您现有的路口。 您仍然可以按照上面的描述创建它们。
另一篇文章 (LinkMagic) 中引用的免费软件实用程序是让您的路口再次正常工作的最佳选择。 或者使用 mklink 重新创建它们。
Junctions and symbolic links are two different types of NTFS objects and are not exactly the same thing. Why your junctions are not recognized in Vista is a mystery, but the junction functionality still exists in Vista and it not purposefully broken.
You can use mklink (http://technet.microsoft.com/en-us/library/cc753194.aspx) to create soft links (the default), hard links (/h), or junctions (/j). The biggest improvement of sym links over junctions is sym links can reference files OR directories (junctions are directory only) and the can reference network shares as well (junctions cannot).
But the bottom line is they are different. Can't tell you why your existing junctions are not recognized by Vista though. You can still create them as described above.
There freeware utility referenced in another post (LinkMagic) is your best bet to getting your junctions working again. Or recreate them with mklink.
您为什么不尝试使用此程序(免费软件)来创建链接。 显然 Windows Vista 需要不同的版本。 我已经尝试了两个版本(XP 和 Vista)并且它们都有效。 我知道这与您的具体问题无关,但鉴于每个操作系统都有单独的版本,因此创建连接的方式可能会有所不同。
您使用的工具相当旧(2007 年),并且没有提到 Windows Vista。 我知道 MSFT 确实更改了连接点中的某些内容,以添加一些他们想要使用的功能。 Vista在Program Files文件夹等方面更具权威性。
Why don't you try with this program (freeware) to create the links. Apparently Windows Vista needs a different version. I have tried both versions (XP and Vista) and they work. I know it doesn't have to do with your specific problem, but given that there are separate versions for each OS, there might be diferences in the way Junctions are created.
The tool you have used is rather old (2007) and doesn't mention Windows Vista. I know that MSFT did change something in the Junction Points in order to add some functionality they wanted to use. Vista is more authoritative when it comes to Program Files folders and such.
除了前面的评论中已经建议的 Linkmagic 程序之外,Link shell 扩展是另一个操作(和检查)链接和连接的好程序:
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
这两个程序都可以告诉您现有的链接/连接点指向什么,以及它们是什么是。 这可能会帮助您找出问题所在。
Besides the Linkmagic program already suggested in one of the previous comments, Link shell extension is another good program to manipulate (and check) links and junctions:
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Both of these programs can tell you what the existing links/junctions point to, and what they are. This may help you in figuring out what's wrong.
你想链接到什么? 您是链接到便携式驱动器还是从驱动器链接? 您使用的是“mklink /d”吗?
What you trying to link to? Are you linking TO your portable drive or FROM your drive? Are you using "mklink /d"?
同一卷内的连接点应该可以工作 - 它们应该是硬链接目录。
您是否尝试过 USB 驱动器在 XP 机器之间是否可以使用? 这可能行不通。
我知道对于 vista,卷不是通过路径 (Q:) 标识的,而是通过卷 GUID 标识的。
$MFT_REPARSE_POINT 格式可能已从 XP 更改为 Vista 以适应这种情况。
在Vista下,这意味着即使你的Q驱动器突然变成X,连接点仍然可以工作,而在XP下它会被破坏。
Junctions points within the same volume should work - they should be hardlinked directories.
Have you tried if the USB drive works between XP machines? It might not work.
I know that for vista the volumes are NOT identified by path (Q:) but by volume GUID.
The $MFT_REPARSE_POINT format might have changed from XP to Vista to accomodate this.
Under Vista, this mean that even if your Q drive is suddenly X, the junction point shoudl still work, where under XP it would be broken.
Christoph Hochstätter 制作了 Windows XP 的“mklink.exe”替代品,实际上可以创建
正版 Vista(等)符号链接重解析点,但警告它们可能无法在以下情况下使用
Windows XP 操作系统。 但是,Cygwin 在 XP 下会识别它们。 当然,Linux ntfs 也可以挂载。
不确定这是否会有很大帮助...
http://www. zdnet.de/windows_system_verbessern_mklink_f_uuml_r_windows_download-39002345-30973-1.htm
Christoph Hochstätter made an "mklink.exe" substitute for Windows XP that can actually create
genuine Vista (et al.) symlink reparse points, but warns that they may not be usable under
the Windows XP OS. However, Cygwin will recognise them under XP. And, of course, Linux ntfs mounts.
Not sure if this will be of much help though...
http://www.zdnet.de/windows_system_verbessern_mklink_f_uuml_r_windows_download-39002345-30973-1.htm