在 Win7 下使用 Junction 将文件夹移动到另一个驱动器

在 Win7 下使用 Junction 将文件夹移动到另一个驱动器

我计划在笔记本电脑上安装一个 msata SSD 驱动器来保存窗口和程序,同时将数据文件、用户目录等保存在旧 HD 上。

如果我可以继续以 c:\whatever 的形式引用数据文件,那么会更容易,即使它们的物理位置是 d:\whatever。

如果我理解正确的话,最好的方法是创建一个连接点,例如

mklink /j d:\whatever c:\whatever

那么我是否只需使用 Windows 资源管理器或命令行中的其他工具将旧目录及其所有子目录移动到 d:\whatever 即可?或者会产生循环问题?

Windows7x64 Pro,如果这很重要的话。

答案1

我做了完全相同的事情,将大型数据文件从 C: 上的 SSD 移动到另一个硬盘上。

您需要先移动该文件夹。

然后,使用以下命令从原始位置到目标位置创建符号链接(或愿意时称为连接点,在这种情况下它们提供相同的功能):

mklink /D OriginalLocation DestinationLocation

创建/D可跨卷的符号目录链接。(编辑:连接点也可能跨卷)

使用 Windows 资源管理器,您将在原始位置的文件夹上看到一个小的快捷方式图标。dir /a在父目录中使用 将显示<SYMLINKD>在 的位置<DIR>

答案2

我使用的步骤如下。我将Users它移动ProgramData到另一个驱动器。

1)启动系统磁盘,访问命令提示符,找到旧C:\驱动器,并记下目标驱动器号

robocopy /copyall /e /xj Users <CURRENT_LETTER_OF_DESTINATION_DRIVE>:\Users
robocopy /copyall /e /xj ProgramData <CURRENT_LETTER_OF_DESTINATION_DRIVE>:\ProgramData
Rename Users Old_Users
Rename ProgramData Old_ProgramData
cd Old_Users
attrib desktop.ini -S -H
Rename desktop.ini desktop.ini.old

这会将您的用户文件夹的副本保留为“Old_Users”。我将其移至其他地方作为备份。如果您不更改该.ini文件,以后可能无法区分这两个文件夹!

(可选rmdir /s /q Usersrmdir /s /q ProgramData如果您正在清理空间。

2)然后

mklink /J Users <USUAL_LETTER_OF_DESTINATION_DRIVE>:\Users
mklink /J ProgramData <USUAL_LETTER_OF_DESTINATION_DRIVE>:\ProgramData
rmdir "Documents and Settings"
mklink /J "Documents and Settings" "<USUAL_LETTER_OF_DESTINATION_DRIVE>:\Documents and settings"

现在,当您重新启动 Windows 时,一切都应该正常。

如果您犯了一个错误,则最终可能会得到一个损坏的用户配置文件。在这种情况下,请进入安全模式(或另一个用户)并打开regeditHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList您的旧用户配置文件可能在列表中,带有.bak扩展名,而新的虚拟配置文件则取而代之。删除虚拟配置文件并重命名.bak不带“bak”的密钥。

然后,您可能会遇到几个安全错误。我还必须执行以下操作:

icacls "%programdata%\Microsoft\Internet Explorer\Quick Launch" /SetIntegritylevel (OI)(CI)Medium
icacls "%userprofile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch" /SetIntegritylevel (OI)(CI)Medium
icacls "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu" /SetIntegritylevel (OI)(CI)Medium

我的文件的所有权也发生了某种变化,我需要使用“获取所有权”或“属性/安全/高级/所有者/编辑/替换子容器上的所有者”才能使一切正常运行。

答案3

房屋建筑经理可以使用 Alt+F6 创建符号链接,链接的文件夹也会被标记,<link>这样更容易被发现。不知道 Windows 7 的情况,但在以前的 Windows 版本中,使用资源管理器删除符号链接的文件夹会导致灾难性的后果,例如删除实际的目标文件夹。

要为文件(而不是文件夹)添加别名,您可以使用:fsutil hardlink create <new filename> <existing filename>

如果房屋建筑经理对你来说还不够好,那么你可以使用交界处Mark Russinovich 编写的命令行实用程序,例如:

junction d:\symlinked_folder c:\winnt

不,您实际上不能“使用连接点移动文件夹”,连接点只是客户端应用程序视为“真实文件夹”的另一个文件夹的别名。

相关内容