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


23

我的SSD上的空间即将用尽,Windows中似乎有一个19GB的文件夹伸出(%windir%\ Installer)并且无法安全删除(如此处所述:https : //serverfault.com/q/15746)。

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

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

我会以某种方式弄乱Windows,还是可以这样做?文件夹权限/属性在整个链接中是否保持不变?

我以前使用过硬链接,它的工作原理就像魅力一样,可以极大地释放我的SSD,但是我从未在系统文件夹上尝试过(我不知道为什么它不起作用,但我不在其中如果我错了,请重新安装整个Windows的心情)


会很混乱。我正是这样做的,并且在像Ramdisk这样的软件无法安装之后。与mklink / J和/ D相同,只是将文件夹移回c让我完成安装。可能我的Windows更新也有问题。
Cmazay

Answers:


29

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

基本上,这些步骤是:

  1. 重新启动PC,连续按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”(可以是任何文件夹,也可以是一致)等...

这应该可以解决问题。


在Windows 10中有效吗?
Syaiful Nizam Yahya 2015年

应该-所有信息仍然适用AFAIK。如果您尝试一下,请告诉我们它的进展!
veljkoz 2015年

在Windows 8上工作-非常棒,谢谢。
邓克

1
在Windows 7上工作!
glenviewjeff

3
请注意,在安装主要的Windows更新(例如Windows 10 Fall Creators Update)时,这可能会导致问题,因为联结将替换为空文件夹。
0xA3

3

在尝试我的主要驱动器,120GB固态硬盘上回收空间,我发现这些指令对如何重新定位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

1
注意:如果任何已安装的应用程序的配置/注册表项指向此更改之前已解决的位置,则可能仍会在旧位置中查找。重新安装这些应用程序可能会解决该问题。
TWiStErRob

2

我采取了类似的步骤,但是我希望能够在复制文件时使用我的计算机(我的文件夹为40 GB)。

  1. 手动将文件夹复制到F:\ Installer
  2. 我正在使用Windows 8.1,因此要进入命令行启动,请在单击“重新启动”时单击Shift,然后单击“高级”。
  3. 进入命令行后,我必须找出要使用的驱动器号(不是C:即使在完全启动OS时这是我的%SystemDrive%)。我不得不echo list volume | diskpart找出C:驱动器现在被称为E :,而F:驱动器仍然是F:驱动器
  4. 我使用删除了E:\ Windows \ Installer上的hidden和system属性,attrib -s -h E:\Windows\Installer并使用对其重命名。rename "E:\Windows\Installer" "Installer_old"
  5. 然后,我可以与 mklink /J E:\Windows\Installer F:\Installer

2

您可以对pagefile.sys和swapfile.sys使用相同的技巧(不确定是否也对hiberfile.sys进行测试,因为我不喜欢在多引导模式下进行休眠,因此未经过测试)。

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

我倾向于在创建链接之前根据链接的目的地创建一个空文件。

切记:在Windows10 UpGrade上,它将删除链接并放置实际文件,在UpGrades之后,您可以重复此过程。

自WindowsXP起(我尝试过的最旧版本),可以使用Windows 10版本1803.48。


如果您不希望休眠,请powercfg -h off改为使用它。在这些文件上使用链接听起来像是灾难的肯定收据
NiKiZe

如果您只需在一个驱动器上禁用它,然后在另一个驱动器上启用它,为什么还要移动/衬纸交换并保留您不想保留的TEMPORARY内容?
Oleg V. Volkov

0
  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

这将重复另一个答案,并且不添加任何新内容。除非您确实有新贡献,否则请不要发布答案。
DavidPostill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.