Windows 7 - znikające miejsce na dysku C

Zawsze odkąd sięgam pamięcią miałem problem z samo zapełniającym się dyskiem C w systemie Windows 7. Nie zwróciłbym na to szczególnej uwagi ponieważ nie używam dysku C do niczego, jest na nim tylko system i Office. Reszta aplikacji jest na innych partycjach.

I nie wiem czy ktoś zwrócił uwagę ale w wypowiedzi wyżej popełniłem specjalnie błąd!

Czy aby na pewno nie używam dysku C do niczego? Jak się wczoraj okazało jednak do czegoś się przydaje, a konkretnie do przechowywania plików tymczasowych różnych aplikacji.

W moim przypadku zdałem sobie z tego sprawę wczoraj podczas oglądania filmu online. Pomimo iż wiedziałem że aplikacje przechowują pliki tymczasowe na dysku C jakoś nie zdawałem sobie sprawy z tego jak ważne dla mnie użytkownika jest to, aby na dysku C było trochę więcej niż kilka GB wolnej pamięci.

Szczęściem w nieszczęściu wczoraj odpaliłem 2 filmy w jakości HD jednocześnie. Jeden się buforował bo zastanawiałem się czy go obejrzeć, a drugiego zacząłem oglądać zapominając o pierwszy :P. Takim oto sposobem zapełniłem prawie całkowicie dysk C, a przynajmniej do tego stopnia że system zaczął mnie o tym fakcie informować. Szybo zorientowałem się w czym tkwi problem wyłączyłem przeglądarkę i jeszcze raz odpaliłem film który oglądałem w miejscu w którym przerwałem i go dokończyłem. Nie przejmowałem się tym wczoraj bo byłem troszkę zmęczony. Ale dzisiaj mając wolną chwilę postanowiłem zbadać problem ponieważ nie chciałem aby sytuacja się powtórzyła. O ile w przypadku oglądania filmu nic wielkiego się nie stało to już podczas pracy nad jakimś większym projektem mógłbym wpaść w niezłe tarapaty.

Teraz czas przejść do konkretów

Bardziej techniczny opis problemu, ale i tak na luzie

Posiadam dwa dyski twarde, SSD - 120GB i HDD. HDD w tym wpisie zostaje pominięty. Dysk SSD podzielony jest na 2 partycje, jedną systemową - ~70GB i drugą przeznaczoną na aplikacje - ~49GB.

Wszystkie pliki i foldery wewnątrz partycji C zajmowały u mnie ~35GB, a Windows pokazywał mi że na dysku C jest wolnych tylko 5GB. Więc gdzie podziała się reszta?

Poszukiwanie rozwiązania

Zacząłem troszkę Googlować, odrzuciłem scenariusz o jakimś wirusie ponieważ nie korzystam z nielegalnych aplikacji, nic nie ściągam z Torrent'ów (których w sumie totalnie nie ogarniam) i mam zawsze włączonego i zaktualizowanego antywirusa. System również jest aktualizowany na bieżąco.

Później natrafiłem na rady o użyciu CCleaner i innych jego pokroju programów, ale zadałem sobie pytanie: Po co instalować coś co użyję jeden raz? I po co bezmyślnie kliknąć usuń skoro nie rozwiąże problemu a jedynie usunę jego efekt. Przecież za tydzień czy dwa będę miał to samo co mam teraz... ogólnie szkoda zaśmiecać system zbędnym programem :P.

Kolejnym etapem poszukiwania rozwiązania było napisanie tematu na jednym z forów komputerowych z opisem problemu i prośbą o pomoc lub podpowiedź.

Niestety nie w mojej naturze jest cierpliwe czekanie aż coś się zrobi samo lub ktoś zrobi coś za mnie, więc zacząłem główkować i myśleć. U mnie to rzadko spotykany proces, ale w tym wypadku okazał się bardzo owocny :P. Okazał się również ostatnim punktem szukania rozwiązania mojego problemu.

Etap I - Proces myślenia - zadanie właściwego pytania

Gdzie znikają GB na dysku C w systemie Windows 7?

Odpowiedź nie była jednak jednoznaczna ponieważ moje cenne GB znikały z kilku powodów:


  • Część zarezerwowana jest na pamięć wirtualną - mniej więcej tyle ile mamy pamięci RAM, a nawet i więcej jeśli jest taka możliwość.
  • Niewielka część (domyślnie 5% dysku) zarezerwowana jest dla "Ochrony systemu" - w tym obszarze zapisywane są punkty przywracania i poprzednie wersje plików znajdujących się na partycji C.
  • Znów spora część bo tyle ile mamy pamięci RAM w komputerze przeznaczona jest na plik w którym zapisywany jest stan pamięci RAM podczas hibernacji systemu.

Etap II - Działanie - czyli szukanie informacji jak zwolnić miejsce na dysku

Ten etap sprawił że powstał mini poradnik jak krok po kroku zwolnić zajęte przez poszczególne usługi systemowe miejsce na dysku C.

Przypadek 1

Aby móc manipulować przydziałem pamięci dla pamięci wirtualnej udajemy się po kolei:

Start » Komputer » Klikamy PPM i wybieramy Właściwości

Z lewej strony wybieramy Zaawansowane ustawienia systemu

W sekcji wydajność wybieramy Ustawienia...

Przechodzimy do zakładki Zaawansowane

W sekcji Pamięć wirtualna wybieramy Zmień...

Teraz odznaczamy Automatycznie zarządzaj rozmiarem pliku stronicowania dla wszystkich dysków

W tym momencie mamy możliwość wybrania dla poszczególnych partycji różnych opcji przydziału pamięci wirtualnej.

Możemy wybrać Rozmiar niestandardowy gdzie sami ustalamy ile ma być przydzielonego miejsca na tę właśnie pamięć.

Możemy wybrać Rozmiar kontrolowany przez system czyli system sam będzie dobierał rozmiar wielkości pamięci wirtualnej, ale nie tak jak domyślnie na wszystkich partycjach a tylko na tej dla której opcje ustawiamy.

Możemy również całkowicie wyłączyć pamięć wirtualną dla danej partycji wybierając Bez pliku stronicowania.

Po ustawieniu wszystkiego wybieramy Ustaw i wszędzie OK. Uruchamiamy ponownie system aby zmiany zostały zastosowane.

Uwaga:

Wyłączenie pamięci wirtualnej (pliku stronicowania) może spowodować problem ze stabilnością systemu, im mniej pamięci RAM tym większe prawdopodobieństwo problemów i większe problemy, ustawienie zbyt małej ilości tej pamięci również będzie skutkowało problemami jak w przypadku jej wyłączenia.

Najlepiej jest (najbezpieczniej) ustawić przynajmniej tyle pamięci (chodzi o maksimum) ile mamy pamięci RAM w komputerze, a nawet i więcej. Można sugerować się zalecaną wartością przez system (na dole okna ustawień). W moim przypadku jak mam 16GB pamięci RAM system zaleca ustawienie ~24GB pamięci wirtualnej, niestety dla niego nie mam tyle miejsca na dysku :P

Przypadek 2

By manipulować pamięcią zarezerwowaną dla punktów przywracania oraz dla poprzednich wersji plików wchodzimy w:

Start » Komputer » Klikamy PPM i wybieramy Właściwości

Z lewej strony wybieramy Ochrona systemu

Teraz wybieramy Konfiguruj...

W tym momencie mamy możliwość wybrania jak ma działać ta ochrona systemy, pierwsze dwie opcje różnią się tym jakie dane będą zapisywane w tej przestrzeni pamięci, a trzecia "Wyłącz ochronę systemu" wyłączy nam całkowicie rezerwowanie przez system pamięci na dysku dla potrzeb ochrony systemu i zwolni nam miejsce na dysku C.

Uwaga:


Wyłączenie tej opcji spowoduje również że nie będą tworzone punkty przywracania systemu.
Ogólnie nie zajmuje to dużo miejsca, ja zostawiam siebie ustawione domyślnie czyli: "Przywróć ustawienia systemu oraz poprzednie wersje plików" plus Maksymalne użycie na 5%.

Przypadek 3

Aby wyłączyć możliwość hibernacji komputera musimy to zrobić przez konsolę lub za pomocą fixó przygotowanych przez Microsoft i dostępnych na tej stronie: http://support.microsoft.com/kb/920730/pl

Znajdziemy również tam informacje jak to zrobić ręcznie z poziomu konsoli, ale ponieważ na microsofcie lubią znikać artykuły gdy wyjdzie nowy system, a niedługo można się spodziewać pierwszych informacji o premierze Windows 9 to na wszelki wypadek kopiuję tutaj instrukcje jak to zrobić:

Aby hibernacja stała się niedostępna, wykonaj następujące kroki:


  • Kliknij przycisk Start, a następnie wpisz cmd w polu Rozpocznij wyszukiwanie.
  • W wynikach wyszukiwania kliknij prawym przyciskiem myszy pozycję cmd, a następnie kliknij polecenie Uruchom jako administrator.
  • Po pojawieniu się monitu kontroli konta użytkownika kliknij przycisk Kontynuuj.
  • W wierszu polecenia wpisz powercfg.exe /hibernate off, a następnie naciśnij klawisz ENTER.
  • Wpisz polecenie exit i naciśnij klawisz ENTER, aby zamknąć okno wiersza polecenia.

Aby udostępnić hibernację, wykonaj następujące kroki:


  • Kliknij przycisk Start, a następnie wpisz cmd w polu Rozpocznij wyszukiwanie.
  • W wynikach wyszukiwania kliknij prawym przyciskiem myszy pozycję cmd, a następnie kliknij polecenie Uruchom jako administrator.
  • Po pojawieniu się monitu kontroli konta użytkownika kliknij przycisk Kontynuuj.
  • W wierszu polecenia wpisz powercfg.exe /hibernate on, a następnie naciśnij klawisz ENTER.
  • Wpisz polecenie exit i naciśnij klawisz ENTER, aby zamknąć okno wiersza polecenia.

Uwaga:


Wyłączenie tej opcji spowoduje że nie będziemy mogli za hibernować komputera, pozostanie jedynie opcja usuń. Nie da się również manipulować rozmiarem pliku hibernacji ponieważ musi on być tak duży jak duża jest nasza pamięć RAM. Menedżer zasilania jądra systemu Windows rezerwuje ten plik podczas instalacji systemu Windows.
Komputer używa pliku Hiberfil.sys do przechowywania na dysku twardym kopii pamięci systemowej, o ile jest włączone ustawienie uśpienia hybrydowego. Jeśli brakuje tego pliku, komputer nie może przejść w stan hibernacji.

Dla zielonych i zapominalskich jeszcze informacja o tym czym jest hibernacja i uśpienie (zaczerpnięte ze stron microsoftu):

Uśpienie to stan oszczędzania energii, który pozwala na szybkie (zwykle w ciągu kilku sekund) przywrócenie pełnej zdolności komputera do działania, gdy użytkownik chce powrócić do pracy. Przełączenie komputera w stan uśpienia przypomina wstrzymanie odtwarzania dysku w odtwarzaczu DVD - komputer natychmiast wstrzymuje wszelkie działania, pozostając gotowym do pracy w momencie wydania takiego polecenia przez użytkownika.

Hibernacja to stan oszczędzania energii przeznaczony głównie dla komputerów przenośnych. Uśpienie zapewnia zachowanie uruchomionych programów, danych i ustawień w pamięci i jest związane z niskim poborem energii, natomiast hibernacja powoduje zapisanie otwartych dokumentów i programów na dysku twardym, a następnie wyłączenie komputera. Spośród wszystkich trybów oszczędzania energii stosowanych w systemie Windows tryb hibernacji zużywa najmniejszą ilość energii. Na komputerze przenośnym hibernację należy stosować wtedy, gdy wiadomo, że komputer nie będzie używany przez dłuższy czas i nie będzie możliwości naładowania baterii w tym czasie.

Konkluzja autora:

Pamięć wirtualną najlepiej ustawić w zależności od indywidualnych potrzeb, ja raczej ustawię w granicach 4~8GB, a jeśli będą problemy wrócę do ustawień domyślnych.

Pamięć przeznaczoną dla Ochrony systemu moim zdaniem zostawić bez zmian, czasami może się przydać punkt przywracania, a dużo miejsca to nie zjada...

Hibernacja - tutaj jest chyba największy problem, o ile w laptopach można się zastanowić nad pozostawieniem tej opcji włączonej lub jeśli ktoś korzysta z zasilacza UPS również może być przydatna. Tutaj trzeba się zastanowić czy będziemy używać tej opcji czy nie, myślę że to w tym miejscu jest największy zysk jeśli chodzi o dostępną pamięć na partycji C. Osobiście chyba pokuszę się o jej wyłączenie.

Ogólnie doszedłem do wniosku że najlepiej byłoby przeznaczyć na partycję C mniej więcej tyle miejsca:
a) jeśli nie korzystamy z hibernacji: 40GB + 1.5 * (ilość pamięci RAM) + (zapas ~10GB?)
b) jeśli korzystamy z hibernacji: 40GB + 2.5 * (ilość pamięci RAM) + (zapas ~10GB?)
i zostawienie wszystkich ustawień domyślnych. Osobiście uważam że dzisiejsze systemy są w miare dobrze zaprojektowane i potrafią podjąć chyba najlepsza dla nich samych decyzję, stąd też taka chęć zostawienia wszystkiego domyślnie ale wiem że wiele osób się nie zgodzi ;).

Jest to mój pierwszy wpis na blogu dp, nie wiem czy się komuś przyda, ale znając moją pamięć mi na pewno ;).

Wpis powstał w oparciu o moją odpowiedź w moim temacie na pewnym forum (wspominałem na samym początku). Ogólnie zarówno ten wpis jak i odpowiedź w moim temacie powstał ponieważ nie znalazłem zadowalających mnie odpowiedzi i informacji na temat tego problemu w internecie.

Mam nadzieję że komuś też jeszcze pomogłem.