11
Portal komputerowy » Systemy Operacyjne » Windows XP » Przyspieszanie » Defragmentacja dysku i elementów systemu 9 marca 2012
 
 

Defragmentacja dysku i elementów systemu



FRAGMENTACJA – jest to podział plików na kilka części, przez co procesy odczytu i zapisu tego pliku ulegają wydłużeniu. Zjawisko to prowadzi do obniżenia wydajności dysku i systemu (fragmentacja partycji systemowej, a pośrednio wszystkich partycji). Sposobem na walkę z tym zjawiskiem jest użycie programu przeprowadzającego defragmentację.

  • Zanim przystąpisz do defragmentacji upewnij się, że wykonałeś wszystkie poprawki opisane we wcześniejszych rozdziałach. Defragmentacja jest ostatnim krokiem optymalizacji, dlatego wszystkie zmiany i poprawki należy dokonać przed jej rozpoczęciem.
  • Defragmentacja dysku pozwoli na optymalne rozmieszczenie danych, tak aby programy uruchamiały się szybciej, a pliki były szybciej odczytywane i zapisywane.

Defragmentacja to tylko teoretycznie prosta czynność. Można oczywiście odpalić jakikolwiek defragmentator i zapomnieć o sprawie, ale gdzie tu wydajność? W dzisiejszych czasach, kiedy procesory są szybkie, PC-ty wyposażone w setki MB Ram-u, szybkość dysku ma coraz większe znaczenie. Zanim procesor zacznie przetwarzać dane, dysk musi je najpierw załadować do pamięci operacyjnej. A zatem wszystko zaczyna się właśnie od dysku, warto więc zdefragmentować go jak należy!

Po pierwsze przyjrzyjmy się temu co mamy defragmentować, czyli partycji systemowej NTFS.

  • Nieco już pisałem na temat budowy samego NTFS. Przypomnę tylko pokrótce, że ma on 4 struktury: MFT, MFT Zone, Metadata i Directories. I tu się już zaczynają problemy z defragmentacją, ponieważ większość defragmentatorów nie radzi sobie z tymi strukturami!
    Systemowy dfrg,msc jakoś sobie radzi z MFT, ale określenie jakoś nie oznacza, że robi to idealnie. Kila defragmentatorów potrafi scalać MFT, MFT Zone i Metadata w trybie offline – uruchamiają specjalny tryb zanim system się uruchomi. Takie podejście do sprawy jest jak najbardziej słuszne. System nieustannie odwołuje się do tych plików i trudno jest przeprowadzić ich pełną defragmentacje, kiedy Windows normalnie funkcjonuje.Co do plików Directories cała sprawa wygląda jeszcze gorzej. Tylko Perfect Disk potrafi scalić wszystkie pliki katalogów w jeden ciąg na dysku.
  • Niestety defragmentacja to nie tylko struktury NTFS. To również dwa inne specyficzne pliki jakie wykorzystuje XP. Są to pagefile.sys i hibernate.sys, których również nie da się sformatować w zwykłym trybie. Są to kolejni kandydaci to defragmentacji w trybie offline. O ile spora grupa defragmentatorów radzi sobie z plikiem stronicowania, to wszystkie one padają podczas starcia z hibernate.sys.
  • Nie zapominajmy również o boot files, czyli mechaniźmie Layout Optimalization. Jedynie kilka programów potrafi skorzystać z możliwości jakie daje plik Layout.ini. Są to defrag.msc, Perfect Disk 8 i O&O Defrag 8.
    System co trzy dni oblicza, które pliki są używane podczas startu systemu – posługując się plikiem NTOSBOOT…pf stworzonym przez mechanizm prefetchu. W ten sposób powstaje zostaje zaktualizowany plik Layout.ini. Po 30 minutach bezczynności Windows sam rozpocznie proces defragmentacji i postara się ustawić obok siebie wszystkie pliki, o których informacje znalazł w Layout.ini. Za pomocą dfrg.msc Windows może również na żądanie zoptymalizować ustawienie boot files.Start – Uruchom – wpisz ‚defrag X: -b’ [X= litera partycji]. Czasem warto użyć tej komendy bezpośrednio przed defragmentacją partycji systemowej. Jeżeli chcesz użyć Perfect Disca 7lub OO Defrag 8 nie musisz przejmować się tą komendą. Wystarczy, że aktywujesz odpowiednie opcje tych programów.

    I tu kończą się podobieństwa. Dfrg.msc bez większego zastanowienia przenosi boot files w najdalszą część partycji – czyli ku środkowi talerzy dysku, gdzie transfer jest już nieco gorszy niż na początku partycji. Robi to również w sposób niedbały i w zasadzie ogranicza się do wciśnięcia boot files w wolne miejsce. Lepsze to niż nic, ale trzeba przyznać, że Perfect Disc7 i OO Defrag 8 robią to o wiele lepiej. Oba programy przenoszą boot files na początek partycji, gdzie transfer danych jest największy. Oba starają się również scalić te pliki w jak największym stopniu. Perfect Disc7 robi to idealnie, OO Defrag zostaje nieco w tyle, ale niewiele.

  • Pozostaje jeszcze prozaiczna kwestia scalania wolnej przestrzeni na dysku. Jeżeli program pozostawi wiele dziur, wówczas dane wkrótce zostaną pofragmentowane. W te dziury i dziurki wpadną nowe pliki i zostaną przy tym podzielone na wiele części. Niestety prawda jest taka, że wiele programów nie potrafi scalić wolnej przestrzeni!
Dokładne scalenie wolnej przestrzeni spowoduje, że uzyskamy najwyższą wydajność, ale tylko do czasu nadpisania juz istniejących plików. Wówczas istnieje ryzyko, że trzeba będzie wykorzystać nowe klastry, które znajdą się z dala od pierwszej części pliku. Ta odległość po takiej defragmentacji może być większa niż pozostawiając dysk nie zdefragmentowany. W praktyce pliki i tak ulegają fragmentacji, więc nie mamy się czym przejmować. Nie chcę tu opisywać kilku teoretycznych wariantów, co może się zdarzyć. Pełna defragmentacja zawsze przynosi korzyści! Po prostu trzeba ją wykonywać regularnie, a będzie ona trwała na tyle krótko, że nie będzie nam na nią szkoda czasu.

Defragmentacja plików systemu NTFS – nie dotyczy FAT32

Z różnych, przyczyn od czasu do czasu trzeba zdefragmentować pliki systemu NTFS. MFT z czasem mógł ulec defragmentacji [czytaj jak temu zapobiec] lub użyto konwersji FAT32 na NTFS. Do tego celu wystarczą nawet wersje demonstracyjne Perfect Disca 7 lub O&O Defrag 8. Ściągamy odpowiednie demo ze strony producenta i defragmentujemy partycje w trybie offline. Celowo nie wymieniam Diskeepera, jego szybkość działania jest wprost proporcjonalna do skuteczności z jaką defragmentuje partycje.

Zapobiegamy fragmentacji MFT w przyszłości!

Przy kolejnym podziale MFT Zone znowu może zabraknąć rekordów i trzeba będzie zapisać pierwsze zapasowe rekordy [MFT Zone]. Jest na to proste rozwiązanie. MFT rośnie wraz ze wzrostem liczby plików [dokładniej, zapisanych rekordów] i nie zmniejsza nigdy swych rozmiarów. Jeżeli mieliśmy kiedyś zapisane 10000 rekordów, a teraz jest ich 800, system nadal ma 9200 wolnych rekordów. Wykorzystajmy tę właściwość. Uruchamiamy wiersz poleceń [Start - Uruchom - wpisz 'cmd'] i wpisujemy kolejno polecenia:

 

Zanim zrobisz cokolwiek upewnij się, że zainstalowałeś już wszystkie niezbędne programy na partycji systemowej.
Uruchamiamy wiersz poleceń [Start - Uruchom - wpisz 'cmd'] i wpisujemy kolejno polecenia:

  • C: – lub inna litera dysku, który chcemy zabezpieczyć przed fragmentacją MFT.
  • md s – tworzy katalog s
  • cd s – otwiera katalog s
  • FOR /L %f in (1,1,20000) do echo Hey > %f – tworzy 20.000 plików, które nie zawierają danych, ich jedynym zadaniem jest utworzenie nowych 20.000 rekordów w MFT. Będzie to dodatkowy ogromny bufor, który powinien uchronić MFT przed fragmentacją, nawet jeżeli podzielona zostanie MFT Zone.
  • del *.* /q – kasuje wszystkie utworzone pliki, spełniły one już swoje zadanie, bufor wewnątrz MFT został utworzony
  • cd.. – cofamy się o jeden poziom w strukturze katalogów
  • rd s – usuwamy katalog s

W ten sposób możemy już niemal na 100% być pewni, że MFT nigdy nie ulegnie fragmentacji. Wyjątkiem będą partycje, które gromadzą dziesiątki tysięcy plików. Oczywiście nic nie stoi na przeszkodzie, aby wówczas powiększyć MFT nawet o 200.000 wpisów. To żaden problem. Łatwo sprawdzić ile mamy plików na partycji i ile jest zajętych rekordów MFT. Start – Uruchom – wpisz dfrg.msc – zaznacz partycję – analizuj – wyświetl raport.

Interesują nas tylko dwie wartości. Ile mamy zajętych rekordów MFT? Jak dużą mamy rezerwę w MFT? Na poniższym przykładzie rezerwa jest bardzo duża 1 MB w MFT to 1024 rekordy, więc nie trzeba się przejmować ryzykiem fragmentacji MFT. W zależności od wielkości i liczby plików możemy przyjąć, że 1 MB w MFT to około 950 plików na partycji.


Jedyna wada komendy FOR /L %f in (1,1,20000) do echo Hey > %f, to zarezerwowanie na stała ~20 MB (lub więcej) na stałe. Niewielka to zaiste wada.

Po tej modyfikacji nie musimy się już przejmować MFT Zone i jej umiejscowieniem na partycji. Różne defragmentatory umiejscawiają ten plik w różnych miejscach, ale teraz to bez znaczenia, prawdopodobnie nie będzie nam już więcej potrzebny.

tabela MFT

Nie zapominajmy o zdefragmentowaniu pliku wymiany. Oba programu radzą sobie z nim znakomicie. Jeżeli nie uda im się zdefragmentować swapa łącznie z pagefile.sys, nie musimy się niczym przejmować. Wystarczy, że uruchomimy jeszcze raz defragmentator i polecimy mu scalić jedynie plik wymiany.

Defragmentujemy pliki ładowane podczas startu systemu.

Aby w pełni wykorzystać moc drzemiącą w mechanizmach prefetchu i Layout optymalization, musi nieco bardziej się pogimnastykować.

  • Usuwamy całą zawartość C:\WINDOWS\Prefetch – w ten sposób czyścimy katalog ze starych scenariuszy, których już nigdy więcej nie zamierzamy użyć. Usuwamy również NTOSBOOT…pf i Layout.ini. W normalnych okolicznościach skasowanie Layout.ini nie jest zbyt rozsądne, ale teraz możemy to bezpiecznie zrobić.
  • Restartujemy system – XP po pewnym czasie [max 5 min, z reguły o wiele szybciej] utworzy nowy NTOSBOOT…pf. Będzie on wolny od tych zapisów, które odnosiły się do aplikacji, które skasowaliśmy z dysku lub usunęliśmy z autostartu.
  • Odtwarzamy Layout.ini – wpisujemy komendę Rundll32.exe advapi32.dll,ProcessIdleTasks. W ten sposób system odbuduje plik na podstawie nowego NTOSBOOT…pf.
  • Odpalamy demo Perfect Disk [smart defragmentation], O&O Defrag [trzeba uaktywnić funkcję w opcjach] i w ten sposób przenosimy boot files na początek partycji systemowej.

W ten sposób zyskujemy kilka sekund podczas startu systemu.

Defragmentacja plików

Pozostało nam już tylko zdefragmentować pliki. Jeżeli użyłeś Smart defragmentation, to nie musisz już nic robić. Chyba, że chcesz pojechać po całości i dodatkowo uruchomić defragmentator z opcją agressive. Perfect Disc scali nawet najmniejsze fragmenty wolnej przestrzeni. Co do O&O Defrag, to warto najpierw użyć trybu Stealth, potem Space.

Darmowa programy do defragmentacji

Nie będę ukrywał, że Perfect Disc kosztuje 40 dolarów, a 30-dni na korzystanie z wersji demonstracyjnej to niewiele. Dlatego poszukałem jakiejś rozsądnej darmowej alternatywy:

  • Do defragmentacji pliku wymiany z powodzeniem wystarczy darmowy Pagedefrag. Przy okazji scali też hives rejestru.
  • Do defragmentacji MFT używamy systemowego dfrg.msc. Pamiętaj o powiększeniu MFT, aby uchronić ją przed fragmentacją. Dfrg.msc to takie zabezpieczenie, na wszelki wypadek.
  • Do scalania plików znakomicie nadaje się Power Defragmenter. Jest to nakładka na bardzo dobry config.
  • Scaleniem bootfiles może zająć się komenda defrag x: -b [x= partycja systemowa]. Nie jest ona doskonała, ale jak już pisałem, lepsze to niż nic.

Ważne, aby:

  1. partycja systemowa była defragmentowana raz na miesiąc,
  2. raz na 3 miesiące zdefragmentować partycję zawierającą pliki ruchome,
  3. partycja z plikami stałymi w zasadzie nie wymaga defragmentacji, pod warunkiem, że nie wrzucasz tam co chwila innych typów plików [patrz podział na partycje],
  4. zawsze wysoką wydajność otrzymasz, po defragmentacji dysku po odinstalowaniu każdej większej ilości danych (np. gra 500 MB). W praktyce jest to bardzo czasochłonne, więc lepiej zrobić to po odinstalowaniu naprawdę dużej porcji danych np. 20% pojemności całej partycji.

Błędy w trakcie defragmentacji

Często spotykałem się z opinią, że aby pozwolić systemowemu defragmentatorowi na defragmentację bootsectora należy w gałęzi rejestru [HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Dfrg\ BootOptimizeFunction] ustawić wartość ‚Enable’ na ‚Y’ ['N' wyłącza opcję]. Nie rób tego! Sam do pewnego momentu proponowałem taką metodę optymalizacji, jednak do czasu… gdy uświadomiłem sobie, że:

  1. Systemowy ‚dfrg.msc’ domyślnie defragmentuje bootfiles [defrag c: -b] i nie ma potrzeby ingerencji w rejestrze.
  2. Jeżeli przez przypadek, czy też błędną interpretację wyłączysz tę opcję, to odbije się to na szybkości startu systemu, a pośrednio na ogólnej fragmentacji całej partycji.

mkk270

Słowa kluczowe: defragmentacja mft, mft jak scalić, defragmentacja dysku xp, Defragmentator dysku, co to jest defragmentacja dysku?, usuwanie błędów po odinstalowaniu

VN:F [1.9.22_1171]
Rating: 8.0/10 (38 votes cast)
Defragmentacja dysku i elementów systemu, 8.0 out of 10 based on 38 ratings


makensis
 
Od 2006 roku Redaktor Naczelny oraz Administrator Tweaks.pl Autor dwóch książek o systemach operacyjnych, szeregu publikacji i porad odnośnie użytkowania komputera. Absolwent Wydziału Elektroniki. Z zamiłowania informatyk, pozycjoner i podróżnik.