使用连接链接 (mklink) 移动 Windows 文件夹

使用连接链接 (mklink) 移动 Windows 文件夹

我的 SSD 上的空间已经很低了,而且 Windows 中似乎有一个 19GB 的文件夹突出来(%windir%\Installer)并且无法安全删除(如下所述:https://serverfault.com/q/15746)。

现在,mklink提供了一个简洁的小东西,称为 Junction links - 如果我在 cmd 提示符下启动,并将所有文件移动到另一个硬盘驱动器,然后运行此命令:

mklink /J C:\Windows\Installer D:\Windows\Installer

我会不会以某种方式弄乱我的 Windows,或者这是可以接受的事情?文件夹权限/属性在链接过程中会保持不变吗?

我以前使用过硬链接,它非常有效,可以显著释放我的 SSD,但我从未在系统文件夹上尝试过它(我不明白为什么它不起作用,但我不想重新安装整个窗口以防我错了)

答案1

好的,我冒了险,这是值得的——一切都正常运行,但我现在已经释放了 SSD 上的 17GB。

基本上,步骤如下:

  1. 重新启动电脑,连续按 F8 调出启动菜单,然后选择“带安全模式的命令提示符”(这是为了确保您可以移动 Windows 文件夹)
  2. 显示命令提示符后,键入命令将文件夹移动到另一个驱动器:
    robocopy C:\Windows\Installer D:\Windows\Installer /MOVE /e
  3. 接下来,为丢失的文件夹创建一个“连接”链接:
    mklink /J C:\Windows\Installer D:\Windows\Installer

当然,这假设您的 %WINDIR% 是 C:\Windows,您的 D 盘是具有更多空间的盘,您希望目标位于“D:\Windows\Installer”(可以是任何文件夹,只要保持一致)等等...

这应该可以解决问题。

答案2

当我尝试回收主驱动器(120GB SSD)上的空间时,我发现这些说明关于如何重新定位UsersProgram FilesProgram Files (x86)ProgramData。它包括一些注册表编辑“以设置默认位置”,如下所示:

  1. 替换 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion 中列出的路径的驱动器号(例如C:\Program Files\Common Files将变为D:\Program Files\Common Files
  2. 将环境变量替换%SystemDrive%为 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/ProfileList 处的驱动器路径(即%SystemDrive%\ProgramData变成D:\ProgramData

答案3

您可以对 pagefile.sys 和 swapfile.sys 使用相同的技巧(不确定是否也对 hiberfile.sys 使用,由于我讨厌在多重启动时休眠,因此没有测试过)。

只需确保在创建符号链接之前停用虚拟 RAM 并重新启动,然后在创建它们之后重新激活虚拟 RAM。

我倾向于在创建链接之前使用记事本在链接的目的地上创建一个空文件。

请记住:Windows10 升级时它将删除链接并放置真实文件,升级后您可以重复该过程。

从 WindowsXP(我尝试过的最旧版本)开始,一直运行到 Windows 10 版本 1803.48。

答案4

  1. 复制C:\Windows\Installer到另一个磁盘,例如D:\C\Windows\Installer
  2. 如果复制过程中源目录C:没有改变,则检查并比较两个文件夹的大小。
  3. 重命名磁盘上的文件夹C:,例如Installer=>InstallerX
  4. 以管理员身份运行该命令并启动运行此命令:
    • mklink /d C:\Windows\Installer D:\C\Windows\Installer
  5. 如果一切正常,请等待一段时间(几天)。
    • 如果是,您可以删除备份文件夹C:\Windows\InstallerX
    • 若否,请删除该文件夹C:\Windows\Installer并重命名InstallerXInstaller,或者将文件夹复制D:\C\Windows\InstallerC:\Windows\Installer

相关内容