Spostare le cartelle di Windows con i collegamenti Junction (mklink)


23

Lo spazio sul mio SSD è quasi esaurito e sembra che ci sia una cartella da 19 GB in Windows che sporge (% windir% \ Installer) e non può essere eliminata in modo sicuro (come spiegato qui: /server//q/15746 ).

Ora, mklinkfornisce una piccola cosa ordinata chiamata Junction links - se avvio nel prompt cmd e sposto tutti i file sull'altro disco rigido, quindi eseguo questo:

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

In qualche modo rovinerò il mio Windows o è una cosa OK da fare? Le autorizzazioni / gli attributi delle cartelle rimarranno invariati sul collegamento?

Ho usato hard link prima, e ha funzionato come un incantesimo liberando significativamente il mio SSD, ma non l'ho mai provato su cartelle di sistema (non vedo perché non funzionerebbe, ma non sono nel umore di reinstallare intere finestre nel caso mi sbagli)


Sarà un casino. Ho fatto esattamente questo e dopo l'installazione di software come Ramdisk non è riuscita. Lo stesso con mklink / J e / D, solo spostando la cartella indietro in c mi consente di terminare l'installazione. Forse anche i miei aggiornamenti di Windows hanno avuto problemi.
Cmazay,

Risposte:


29

OK, ho preso il rischio e ne è valsa la pena: tutto funziona normalmente, ma ora ho liberato i 17 GB sul mio SSD.

Fondamentalmente, i passaggi sono:

  1. Riavvia il PC, premi F8 continuamente per visualizzare il menu di avvio e scegli "Prompt dei comandi con modalità provvisoria" (questo per assicurarti di poter spostare la cartella Windows)
  2. Una volta visualizzato il prompt dei comandi, digitare il comando per spostare la cartella su un'altra unità:
    robocopy C:\Windows\Installer D:\Windows\Installer /MOVE /e
  3. Quindi, creare un collegamento "Junction" per la cartella mancante:
    mklink /J C:\Windows\Installer D:\Windows\Installer

Naturalmente, questo presuppone che% WINDIR% sia C: \ Windows, che l'unità D sia quella con più spazio, che si desideri la destinazione in "D: \ Windows \ Installer" (potrebbe essere qualsiasi cartella, basta essere coerente) ecc ...

Questo dovrebbe fare il trucco.


funziona in Windows 10?
Syaiful Nizam Yahya,

Dovrebbe - tutte le informazioni si applicano ancora AFAIK. Se lo provi, facci sapere come è andata!
Veljkoz,

Ha funzionato su Windows 8 - fantastico, grazie.
Dunc,

1
Ha funzionato su Windows 7!
glenviewjeff,

3
Si noti che ciò potrebbe causare problemi durante l'installazione di importanti aggiornamenti di Windows (come Windows 10 Fall Creators Update) poiché il nodo verrà sostituito con una cartella vuota.
0xA3,

3

Durante il tentativo di recuperare lo spazio sul mio disco principale, un 120GB SSD, ho trovato queste istruzioni su come trasferirsi Users, Program Files, Program Files (x86), e ProgramData. Include alcune modifiche del registro "per impostare percorsi predefiniti", come segue:

  1. Sostituisci le lettere di unità dei percorsi elencati in HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion (ad esempio C:\Program Files\Common Filesdiventerebbe D:\Program Files\Common Files)
  2. Sostituisci le variabili di ambiente %SystemDrive%con il percorso dell'unità in HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows NT / CurrentVersion / ProfileList (ovvero %SystemDrive%\ProgramDatadiventerebbe D:\ProgramData)

1
Nota: eventuali app già installate potrebbero comunque cercare nella vecchia posizione se le loro voci di configurazione / registro puntano a una posizione che è stata risolta prima di questa modifica. La reinstallazione di tali app potrebbe risolvere il problema.
TWiStErRob,

2

Ho fatto passi simili, ma volevo essere in grado di usare il mio computer mentre facevo la copia del file (la mia cartella era 40 GB).

  1. Copia manualmente la cartella in F: \ Installer
  2. Sto usando Windows 8.1, quindi per arrivare a un avvio da riga di comando ho tenuto premuto Shift mentre ho fatto clic su Riavvia, quindi su Avanzate
  3. Una volta nella riga di comando, ho dovuto capire quale lettera di unità usare (non era C: anche se quello è il mio% SystemDrive% quando il mio sistema operativo è completamente avviato). Ho dovuto usare echo list volume | diskpartper scoprire che l'unità C: ora era indicata come E: e l'unità F: era ancora l'unità F:
  4. Ho rimosso gli attributi nascosti e di sistema su E: \ Windows \ Installer con attrib -s -h E:\Windows\Installere li ho rinominatirename "E:\Windows\Installer" "Installer_old"
  5. Potrei quindi creare l'incrocio con mklink /J E:\Windows\Installer F:\Installer

2

Puoi usare lo stesso trucco per pagefile.sys e swapfile.sys (non sono sicuro se anche per hiberfile.sys, non testato dal momento che odio il letargo su avvio multiplo).

Assicurati solo di disattivare la RAM virtuale e riavviare prima di creare i collegamenti simbolici, quindi dopo averli creati riattiva la RAM virtuale.

Tendo a creare (con il blocco note) un file vuoto sul destino del collegamento prima di creare il collegamento.

Ricorda: quando Windows 10 UpGrade rimuove i collegamenti e inserisce i file reali, dopo UpGrades puoi ripetere il processo.

Funziona fino a Windows 10 versione 1803.48, dal momento che WindowsXP (il più vecchio che avevo provato).


se non si desidera il letargo, disattivarlo con powercfg -h off. L'uso dei collegamenti su questi file sembra una ricevuta sicura per il disastro
NiKiZe,

Perché preoccuparsi di spostare / allineare lo swap con il suo contenuto TEMPORANEO che non si desidera conservare se si può semplicemente disabilitarlo su un'unità e abilitarlo su un'altra?
Oleg V. Volkov,

0
  1. Copia C:\Windows\Installersu un altro disco come D:\C\Windows\Installer.
  2. Controllare e confrontare le dimensioni di entrambe le cartelle se la directory di origine C:non è stata modificata durante la copia.
  3. Rinomina cartella sul disco C:, ad es. Installer=>InstallerX
  4. Esegui il comando come amministratore e avvia esegui questo comando:
    • mklink /d C:\Windows\Installer D:\C\Windows\Installer
  5. Aspetta un po 'di tempo (qualche giorno) se tutto è OK.
    • In caso affermativo, è possibile eliminare il backup della cartella C:\Windows\InstallerX.
    • Se no, di cancellazione simbolica la cartella C:\Windows\Installere rinomina di nuovo InstallerXa Installer, o copiare di nuovo la cartella D:\C\Windows\Installera C:\Windows\Installer.

Questo duplica un'altra risposta e non aggiunge nuovi contenuti. Per favore, non pubblicare una risposta a meno che tu non abbia effettivamente qualcosa di nuovo da contribuire.
DavidPostill
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.