我有一块 OCZ Agility 3 64GB SSD,刚刚从 Windows 8.1 降级到 Windows 7 Professional,因为我发现当我的 SSD 写满时 Windows 8.1 太慢了。
在发现这是 SSD“问题”后,我将C:\Users
、C:\Program Files
和C:\Program Files(x86)
文件夹复制到另一个内部驱动器(我在执行此操作之前对其进行了格式化),并创建了一个符号链接,将原始文件位置链接到 Windows 安装光盘上的新D:\
位置cmd
:
我重新启动了系统并继续登录,Windows 使用临时配置文件登录我,这实际上意味着符号链接无法正常工作。
我通过打开的符号链接进行了检查C:\Program Files
,并且相应的文件夹D:\
打开得很好:
我做了一些测试,似乎 Windows 没有获得打开符号链接所需的适当权限。我尝试更改此设置,但出现“文件未找到”错误:
我找到了这个问题,但事实证明cmd
也不再起作用,这很奇怪,因为我从未接触过C:\Windows
,这意味着我无法测试hardlink
解决方案:
我的问题是,是否真的可以使用mklink
和C:\Users
(C:\Program Files
以及 x86 版本) 将它们指向另一个驱动器上的新位置?如果不行,我怎样才能在另一个驱动器上拥有C:\Users
、C:\Program Files
和C:\Program Files(x86)
而不会让 Windows 崩溃?
编辑
来C:\Windows\System32\cmd.exe
了!发生什么事了??
答案1
我知道“用户”可以正常工作。其他两个目录在移动时会造成麻烦。最好的选择是始终将新软件安装到辅助驱动器。但是,您可以为程序文件文件夹内的每个文件夹创建单独的连接点(见下文)。
对于 Windows 使用的目录,您需要使用 NTFS 连接点。这意味着 Windows 将连接点(快捷方式)视为其引用的实际目录,这意味着您的数据将位于其他位置,但您的程序不会看到任何差异。创建它们的命令是:
mklink -j path/to/new/link /path/to/linked/folder
这要求在创建链接之前移动或重命名原始文件夹。
您还需要通过管理员帐户执行此操作,以便在移动文件时不会使用任何文件。
另一种方法(也是我对 SSD 设置所做的)是更改 Windows 放置用户文件夹的位置。您可以通过将注册表值更改HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ProfilesDirectory
为新用户文件夹的路径来执行此操作。完成此操作后,我将用户配置文件文件夹重命名为Jonah_
,重新启动计算机,登录管理员帐户并删除我的用户帐户。然后,我使用完全相同的凭据创建了一个帐户并登录。登录后,我返回管理员帐户,删除了Jonah
用户目录中的新文件夹并重命名Jonah_
为Jonah
。重新启动后,我可以登录到我的旧帐户,我的所有设置和文件都在那里。
至于缺少 cmd 问题,系统修复光盘似乎是一个有效的选择。
答案2
您可以使用符号链接(mklink /j)将自动安装的应用程序移动到 C 盘。步骤如下:
- 卸载应用程序
- 创建目录并使用以下命令:mklink /j "C:\program files\Microsoft Office" "D:\program files\Microsoft Office"
- 如果您想测试这个,请在 D 驱动器上创建相同的文件夹,否则您将收到一个错误,提示该文件夹不存在,因为它在“目标”上不存在
- 安装软件。但请注意,应用程序会将 64 位版本安装到“program files”或将 32 位版本安装到“program files (x86)”。如果您不知道或不确定,您可以创建指向两者的符号链接
其他注意事项:* 您无法移动 c:\windows\WinSxS,因为它包含指向 C: 上文件的硬链接。硬链接不能位于其他驱动器上。* 您可以使用符号链接移动 c:\windows\installer。它包含用于重新安装/卸载更新和程序的文件,并且会随着时间的推移而增大(例如,我的文件已经增大到 20gb)* 我确实想知道并查看了是否可以使用符号链接移动 c:\windows\system32 的信息...