Navigate / search

Change location of Users and ProgramData folders to other drive

Sometime ago I decided to buy and install SSD drive in my PC. At that time I thought that 120 GB will be enough for me. Of course I was thinking about bigger drive but main purpose of this upgrade was to speed us OS and application start and run. All data and documents should be hold on other drives. That was a plan that worked for longer time.

But…. Last week new Visual Studio and new Windows 10 were presented. In that time on my SDD drive there was only 2 GB free space. I tried to clean a disk but without any success. But I managed to identify a problem – two folders: Users and ProgramData have about 22 GB. I discovered also that Chrome takes about 1,5 GB for cache and other data. I was really shocked because of this.

Of course I tried to remove some files from those folders but I didn’t manage to gain needed space. Because of that new idea came to my mind – move those folders to another drive. After few tries I can say that this operation is not so difficult but you need to remember about few things. But I will point those things later.

Let’s start from beginning. First of all you need to start command line from Windows installation CD. To do that you need to do following steps:

  1. Start Windows 10 installer from CD.
  2. Then select option Troubleshoot
  3. Later – Advanced options
  4. And finally Command Prompt

From this moment you should have access to local drives from command line. Next thing that you should do is trying to find disk with OS and target drive where you would like to move those files. When you will do that you can copy those folders by executing following commands:

robocopy "C:\Users" "D:\Users" /MIR /COPYALL /XJ
robocopy "C:\ProgramData" "D:\ProgramData" /MIR /COPYALL /XJ

After doing that you can remove those folders from OS drive:

rmdir "C:\Users" /S /Q
rmdir "C:\ProgramData" /S /Q

And finally you need to create links to new folders. You will do that by following commands:

mklink /J "C:\Users" "D:\Users"
mklink /J "C:\ProgramData" "D:\ProgramData"

In theory everything should work great after those steps. But sometimes you can spot some problems.

First of all you should remember that link you have created is somehow like a shortcut. And sometimes disk in command line can have different letter than after starting OS. Because of this you should always create links that will point folder on drive letter that will be used in OS and not in command line.

Also additional problem can occur. It is also connected to drive letter change. In my case I wanted to have ProgramData folder on Z: drive. Unfortunate this drive was not available in command line. And during attempt of link creation I got error with information that such drive does not exist. Of course you can obey such situation – you need to create additional copy of folder to drive with letter that you can create link. Then you need to start Windows and delete link to this folder and create new one to target device. We should remember to do that action as soon as possible after Windows start. Only then we will be able to reduce potential differences between folders. And finally we can remove folder that will not be used in future.

Comments

avatar
Przemek
Reply

Czy trzeba to robić z płyty instalacyjnej. Nie można po prostu w Windows otworzyć wiersza poleceń?

avatar
Kamil
Reply

the user profile service failed the sign-in

taki error dostalem przy probie logowania na konto. dzieki czemu musialem od nowa instalowac windowsa -- nie polecam!

avatar
Michał Jankowski
Reply

Opisana procedura jest odwaracalna. Można było sporóbować przegrać przeniesione foldery na swoje poprzednie miejsce lub zastosować jeden z opisanych przez MS fixów.

No i backup przed takimi zmianami pomaga ;).

avatar
Krzysiek
Reply

Chciałbym skorzystać z ww. poradnika tylko mam małego zonka…
Mam 2 dyski. C -- z systemem (ssd) i D (talerzowy) -- na który chciałbym przenieść powyższe katalogi. Problem pojawia się po odpaleniu systemu z płyty -- dyski mają zamienione litery. Zamieniając odpowiednio C z D w ww. komendach problemu nie będzie w przypadku kopiowania i usuwania (robocopy i rmdir) folderów, a jak będzie z dowiązaniami (mklink)? Czy będą one poprawnie działać po uruchomieniu systemu?

avatar
Michał Jankowski
Reply

Wydaje mi się, że może być z tym problem. Spróbuj zrobić to tak:
1. backup systemu
2. uruchomienie z płyty
3. skopiowanie katalogów
4. usunięcie katalogów
5. uruchomienie normalnie Windowsa i dodanie dowiązań.

Powinno zadziałać.

Jak będziesz miał backup to możesz zawsze spróbować sposób z opisu i w najgorszym wypdaku przywrócić backup i spróbować wersję z dodawaniem dowiązań po uruchomieniu OS.

avatar
Krzysiek
Reply

Bawił z tym będę się dopiero w nowym roku. Na końcu dam znać jak mi poszło. Na razie czytam o dowiązaniach w windowsie i w Twojej propozycje widzę tylko jedno “ale” -- ale system przy uruchamianiu utworzy sobie brakujące katalogi Users i ProgramData i chyba wtedy nie będę mógł stworzyć dowiązanie o nazwie jaka już przecież istnieje.
I jeszcze jedno, nie mogę jeszcze znaleźć na ten temat infirmacji: czy w windowsie do dysku można się odnieść tylko poprzez litery c:, d: itd. Czy nie można tego zrobić poprzez jakiś inny identyfikator?

avatar
Michał Jankowski
Reply

Proszę daj znać jak poszło.

Wydaje mi się, że literki są niestety jedyną opcją.

avatar
Przemek
Reply

Nie wiem, czy coś poszło nie tak. Rozumiem, że stworzyłem linki symboliczne na dysku C (mając dwie partycje C i D). Tyle, że jak tworzę pliki na D, to te pliki także zapisywane są na C?

avatar
Michał Jankowski
Reply

Po tym zabiegu masz tak jakby ten sam folder w dwóch miejscach. Fizycznie plik znajduje się na dysku D:, ale możesz go również zobaczyć na dysku C: jeśli wejdziesz do folderu, który dowiązałeś.

avatar
Przemek
Reply

Jeśli mogę to dwa pytania?
1. Czy zapisując jakiś plik/dokument na partycji D, to zajmuje mi także tyle samo miejsca na dysku C. Są to jakby dwie kopie tego samego?
2. Co się stanie jak przeinstaluję system na dysku C? Rozumiem, że odzyskam te dokumenty na D?

avatar
Michał Jankowski
Reply

1. Nie jest to kopia. Jeśli wszystko dobrze zrobiłeś, a wygląda, że tak skoro masz 2 pliki to na dysku C: nic się nie zapisuje. Całość znajduje się na dysku D:. A dowiązanie można potraktować jako skrót do folderu. Jeśli chcesz zrobić szybki test to wrzuć jaki duży plik do katalogu na dysku D: i zobacz, że nie zmniejszyła się ilość wolnego miejsca na dysku C:. Sprawdzenie musisz robić na całym dysku.

2. Jeśli wszystko jest poprawnie zrobione to tak.

avatar
Marek
Reply

Na stronie http://jazz.tvtom.pl/katalog-users-na-osobnej-partycji/ jest opisany sposób na zmianę lokalizacji katalogów podczas instalacji systemu. Dało by się to jakoś zaadaptować do Windows 10 instalowanego z oryginalnego pendrivie. Na przykład przy wykorzystaniu innego pendrivie?

avatar
Michał Jankowski
Reply

Pewnie tak, ale nie robiłem tego jeszcze. Na razie zainwestowałem w większy dysk SSD i przeniosłem na drugą partycję dokumenty, pulpit, itp.

avatar
Leszek
Reply

Zamiast mklink /J “Users” “D:\Users” nie powinno być mklink /J “C:\Users” “D:\Users” ?

avatar
Michał Jankowski
Reply

Poprawione. Miałem przemilczane założenie, że jestem na dysku c:.

Leave a comment

name*

email* (not published)

website

This site uses Akismet to reduce spam. Learn how your comment data is processed.

.