Mover carpetas de Windows con enlaces de unión (mklink)

23

El espacio en mi SSD se está agotando bastante, y parece que hay una carpeta de 19 GB en Windows que sobresale (% windir% \ Installer) y no se puede eliminar de forma segura (como se explica aquí: /server//q/15746 )

Ahora, mklinkproporciona una pequeña cosa ordenada llamada enlaces de unión: si inicio en cmd prompt, y muevo todos los archivos al otro disco duro, y luego ejecuto esto:

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

¿Estaré estropeando mi Windows de alguna manera, o es esto algo correcto? ¿Los permisos / atributos de la carpeta permanecerán iguales en todo el enlace?

He usado enlaces duros antes, y funcionó de maravilla liberando mi SSD significativamente, pero nunca lo he intentado en las carpetas del sistema (no veo por qué no funcionaría, pero no estoy en el estado de ánimo de reinstalar ventanas enteras en caso de que me equivoque)

veljkoz
fuente
Será un desastre. Hice exactamente esto y después de que un software como Ramdisk no se pudo instalar. Lo mismo con mklink / J y / D, solo mover la carpeta de nuevo a c me permite terminar la instalación. Posiblemente también mis actualizaciones de Windows tuvieron problemas.
Cmazay

Respuestas:

29

Bien, me arriesgué y valió la pena, todo funciona normalmente, pero ahora he liberado los 17 GB en mi SSD.

Básicamente, los pasos son:

  1. Reinicie su PC, presione F8 continuamente para que aparezca el menú de inicio y elija "Símbolo del sistema con modo seguro" (esto es para asegurarse de que puede mover la carpeta de Windows)
  2. Una vez que se muestra el símbolo del sistema, escriba el comando para mover la carpeta a otra unidad:
    robocopy C:\Windows\Installer D:\Windows\Installer /MOVE /e
  3. A continuación, cree un enlace "Unión" para la carpeta que falta:
    mklink /J C:\Windows\Installer D:\Windows\Installer

Por supuesto, esto supone que su% WINDIR% es C: \ Windows, que su unidad D es la que tiene más espacio, que desea su destino en "D: \ Windows \ Installer" (podría ser cualquier carpeta, simplemente sea consistente) etc ...

Esto debería funcionar.

veljkoz
fuente
Funciona esto en Windows 10?
Syaiful Nizam Yahya
Debería: toda la información aún se aplica AFAIK. Si lo intentas, ¡cuéntanos cómo te fue!
veljkoz
Funcionó en Windows 8, muy impresionante, gracias.
Dunc
1
Funcionó en Windows 7!
glenviewjeff
3
Tenga en cuenta que esto puede causar problemas al instalar actualizaciones importantes de Windows (como Windows 10 Fall Creators Update) porque la unión se reemplazará con una carpeta vacía.
0xA3
3

Al intentar recuperar espacio en mi disco principal, un SSD de 120 GB, me encontré con estas instrucciones sobre cómo reubicar Users, Program Files, Program Files (x86), y ProgramData. Incluye algunas ediciones de registro "para establecer ubicaciones predeterminadas", de la siguiente manera:

  1. Reemplace las letras de unidad de las rutas enumeradas en HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion (por ejemplo, C:\Program Files\Common Filesse convertiría en D:\Program Files\Common Files)
  2. Reemplace las variables de entorno %SystemDrive%con la ruta de la unidad en HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows NT / CurrentVersion / ProfileList (es decir, %SystemDrive%\ProgramDatase convertiría en D:\ProgramData)
Adam Cox
fuente
1
Nota: cualquier aplicación ya instalada aún puede verse en la ubicación anterior si sus entradas de configuración / registro apuntan a una ubicación que se resolvió antes de este cambio. La reinstalación de esas aplicaciones puede solucionar el problema.
TWiStErRob
2

Tomé pasos similares, pero quería poder usar mi computadora mientras hacía la copia del archivo (mi carpeta tenía 40 GB).

  1. Copie manualmente la carpeta a F: \ Installer
  2. Estoy usando Windows 8.1, así que para llegar al inicio de la línea de comando, mantuve presionada la tecla Mayús mientras hacía clic en Reiniciar, luego hice clic en Avanzado
  3. Una vez en la línea de comando, tuve que averiguar qué letra de unidad usar (no era C: a pesar de que ese es mi% SystemDrive% cuando mi SO está completamente arrancado). Tuve que usar echo list volume | diskpartpara descubrir que la unidad C: ahora se denominaba E: y la unidad F: seguía siendo la unidad F:
  4. Eliminé los atributos ocultos y del sistema en E: \ Windows \ Installer con attrib -s -h E:\Windows\Installery le cambié el nombre porrename "E:\Windows\Installer" "Installer_old"
  5. Entonces podría crear la unión con mklink /J E:\Windows\Installer F:\Installer
kevinpo
fuente
2

Puede usar el mismo truco para pagefile.sys y swapfile.sys (no estoy seguro si también para hiberfile.sys, no probado ya que odio hibernar en arranque múltiple).

Solo asegúrese de desactivar el ram virtual y reiniciar antes de crear los enlaces simbólicos, luego, después de crearlos, reactive el ram virtual.

Tiendo a crear (con el bloc de notas) un archivo vacío sobre el destino del enlace antes de crear el enlace.

Recuerde: cuando Windows10 UpGrade eliminará los enlaces y colocará archivos reales, después de UpGrades puede repetir el proceso.

Trabajando hasta Windows 10 versión 1803.48, desde WindowsXP (la más antigua que había probado).

Anónimo
fuente
Si no desea la hibernación, desactívela con powercfg -h off. Usar enlaces en estos archivos suena como un recibo seguro para el desastre
NiKiZe
¿Por qué molestarse en mover / liningk swap con su contenido TEMPORAL que no desea conservar si simplemente puede deshabilitarlo en un disco y habilitarlo en otro?
Oleg V. Volkov
0
  1. Copiar C:\Windows\Installera otro disco como D:\C\Windows\Installer.
  2. Verifique y compare los tamaños de ambas carpetas si el directorio de origen C:no ha cambiado durante la copia.
  3. Cambiar el nombre de la carpeta en el disco C:, por ejemplo, Installer=>InstallerX
  4. Ejecute el comando como administrador y ejecute ejecutar este comando:
    • mklink /d C:\Windows\Installer D:\C\Windows\Installer
  5. Espere un poco (pocos días) si todo está bien.
    • En caso afirmativo, puede eliminar la copia de seguridad de la carpeta C:\Windows\InstallerX.
    • Si no, borrar la carpeta simbólica C:\Windows\Installeratrás y cambiar el nombre InstallerXde Installer, o copiar de nuevo la carpeta D:\C\Windows\Installera C:\Windows\Installer.
Petr Voborník
fuente
Esto duplica otra respuesta y no agrega contenido nuevo. No publique una respuesta a menos que realmente tenga algo nuevo que aportar.
DavidPostill