Skonfiguruj Windows - 7 przydatnych wskazówek dla mniej początkujących
Redakcja benchmark.pl przygotowała artykuł "Skonfiguruj Windows 7 - 14 przydatnych wskazówek dla początkujących". W odpowiedzi na związany z nim konkurs przygotowałem swoją odpowiedź, czyli poradnik dotyczący partycji NTFS i obsługi dysków w Windows.
Większość moich uwag dotyczy systemów XP/Vista/7, niektóre są związane tylko z tym ostatnim.
Spis treści |
1. Linki i sznurki na NTFS 2. Alternatywne strumienie na NTFS 3. Błędy na NTFS 4. Kompresja plików na NTFS 5. Czas ostatniego dostępu na NTFS 6. Pliki z pustą zawartością na NTFS 7. TRIM |
Artykuł jest przewidziany raczej dla użytkowników początkujących :)
Na partycjach NTFS możemy przechowywać nie tylko pliki i katalogi. Przykładem dodatkowych obiektów są odnośniki do prawdziwych plików czy katalogów:
- połączenie (junction point) między katalogami na dysku lokalnym dostępne od czasów Windows 2000 - po wykasowaniu "prawdziwego" katalogu połączenie pozostaje na dysku, wykasowanie połączenia nie kasuje "prawdziwego" katalogu. W ten sposób jest obecnie tworzony katalog "Documents and Settings".
- łącze stałe (hard link) między plikami na dysku lokalnym dostępne od czasu Windows 2000 - po jego utworzeniu na dysku zapisany będzie fizycznie jeden plik widoczny jako dwa pliki o tej samej wielkości, fizyczna zawartość pliku zostanie wykasowana po usunięciu obu
- łącze symboliczne (symbolic link) między katalogami dostępne od czasu Windows Vista - po wykasowaniu "prawdziwego" katalogu połączenie pozostaje na dysku, wykasowanie połączenia nie kasuje "prawdziwego" katalogu. W ten sposób jest obecnie tworzony katalog "All Users" w "Documents and Settings".
- łącze symboliczne (symbolic link) między plikami dostępne od czasu Windows Vista - po jego utworzeniu na dysku zapisany będzie fizycznie jeden plik widoczny jako dwa pliki (gdzie łącze będzie mieć wielkość 0 bajtów), po wykasowaniu "prawdziwego" pliku łącze pozostaje na dysku, wykasowanie łącza nie kasuje "prawdziwego" pliku
Poniżej przedstawiłem komendy służące do ich tworzenia (gdzie katalog/plik.txt to źródło, a link/link.txt to stworzone odnośniki)
Typ | Łączone obiekty | Komenda |
---|---|---|
połączenie (junction point) | katalogi | mklink link katalog /j (nie wymaga uprawnień administratora, nie działa w Windows XP) junction link katalog (bezpłatne narzędzie Microsoftu należy pobrać stąd, nie wymaga uprawnień administratora) |
łącze stałe (hard link) | pliki | mklink link.txt plik.txt /h (nie wymaga uprawnień administratora, nie działa w Windows XP) fsutil hardlink create link.txt plik.txt |
łącze symboliczne (symbolic link) | katalogi | mklink link katalog /d (wymaga włączenia łączy na partycji, nie działa w Windows XP) |
pliki | mklink link.txt plik.txt (wymaga włączenia łączy na partycji, nie działa w Windows XP) |
Obecność łączy symbolicznych na partycji możemy sprawdzać i kontrolować stosując fsutil, np.
fsutil behavior query SymlinkEvaluation
służy do sprawdzenia, czy opcja jest aktywna.
Aby sprawdzić, czy do danego pliku są dołączane łącza stałe (znów w Vista/7), należy z kolei wykonać
fsutil hardlink list plik.txt
Pewną bardzo specyficzną formą odnośników są nazwy plików w formacie 8 znaków + 3 znaki rozszerzenia (pozostałość zachowana w celu uzyskania zgodności z DOS - oprócz długiej nazwy pliku tworzona jest też krótka). Możemy zmienić wygenerowaną nazwę na inną stosując
fsutil file setshortname plik.txt krotka.txt
Potwierdzenie zmiany możemy uzyskać wykonując np. komendę
dir /x
Tworzenie skróconych nazw plików można kontrolować na poszczególnych partycjach stosując znowu komendę fsutil (wersja dla Vista/7 dla partycji c:):
- fsutil behavior query Disable8dot3 c: w celu sprawdzenia
- fsutil behavior set Disable8dot3 c: 1 w celu wyłączenia
- fsutil behavior set Disable8dot3 c: 0 w celu włączenia
Z kolei w Windows XP ustawienie jest globalne (dotyczy wszystkich partycji) i należy użyć odpowiednio:
- fsutil behavior query Disable8dot3
- fsutil behavior set Disable8dot3 1
- fsutil behavior set Disable8dot3 0
Możliwe jest również podłączanie partycji pod określone katalogi. Należy na dysku stworzyć standardowo katalog, a następnie użyć komendy mountvol. Pokaże ona szeregi ciągów znaków
\\?\Volume{numer}\
dla każdej partycji. Wybieramy jeden z nich, wykonujemy komendę
mountvol katalog \\?\Volume{numer}\
i od tej pory partycja jest już podłączona. Aby to odwołać, wystarczy wykonać
mountvol katalog /d
Alternatywne strumienie na NTFS
Większość z nas jest przyzwyczajona, iż plik ma jedną zawartość. W przypadku NTFS tak nie jest - z jednym plikiem mogą być powiązane dane z wielu niezależnych od siebie tzw. alternatywnych strumieni. Żeby uzyskać do nich dostęp, należy podać nazwę pliku połączoną z dwukropkiem i nazwą strumienia. Przykładowo komenda
notepad plik.txt:strumien
będzie edytować strumień o nazwie "strumien" połączony z plikiem plik.txt.
Niestety Eksplorator nie pokaże poprawnie wielkości pliku na dysku (tj. wielkości podstawowej zawartości + wielkości alternatywnych strumieni). Aby je odczytać (również z konta bez podwyższonych uprawnień), należy użyć np. komendy
dir /r
(przełącznik /r dostępny jest w Windows Vista/7) albo darmowego narzędzia Streams Microsoftu (poniższa komenda pokaże informacje o pliku plik.txt):
streams plik.txt
Załóżmy, że chcemy sprawdzić partycję c: pod względem błędów (np. mieliśmy zanik prądu). Standardowa opcja
chkdsk c: /f
może nie zadziałać (np. w tle działa program antywirusowy, który na to nie pozwala albo chcemy sprawdzić partycję systemową). Aby nakazać systemowi sprawdzenie partycji c: przy starcie, należy ustawić tzw. "bit zanieczyszczenia" przez wykonanie komendy
fsutil dirty set c:
Jeżeli pomimo jej zastosowania partycja nie została sprawdzona, należy wykonać
chkntfs /c c:
albo alternatywnie
chkntfs /d
(wtedy system będzie sprawdzał wszystkie dyski po ustawieniu na nich "bitu zanieczyszczenia").
Możemy skrócić czas oczekiwania na uruchomienie chkdsk przy starcie ze standardowych 10 sekund np. na 2 sekundy stosując
chkntfs /t:2
Począwszy od Visty mamy też opcje "samonaprawiania" - w przypadku wykrycia uszkodzeń jakiegoś pliku dostęp do niego jest blokowany, a system dokonuje poprawek. Funkcjonalność ta powinna być standardowo włączona. Aby to sprawdzić dla partycji c: należy wykonać
fsutil repair query c:
Włączenie uzyskamy przez
fsutil repair set c: 1
W obecnych systemach Microsoftu możemy również wymusić, aby system wygenerował "niebieski ekran", gdy wykryje błąd na danej partycji NTFS. Wykorzystujemy w tym celu przynajmniej dwie komendy:
fsutil behavior set BugCheckOnCorrupt 1
fsutil repair set c: 0x10
(drugą komendę powtarzamy po restarcie systemu dla wszystkich partycji, dla których ma to działać)
Pliki i katalogi na dyskach NTFS mogą być kompresowane, co wydłuża czas dostępu do nich, ale zmniejsza zajmowane przez nie miejsce (plik jest zapisany w postaci spakowanej na dysku, przed dostarczeniem go aplikacjom jego zawartość jest rozpakowywana przez system operacyjny). I tak komenda
compact /s /a /c *.*
wymusza kompresję wszystkich plików (również z atrybutem ukrytym i systemowym) w katalogu bieżącym i podkatalogach, zaś
compact /s /a /u *.*
to wycofuje. Możliwe jest wyłączenie funkcji kompresji na wszystkich partycjach
fsutil behavior set DisableCompression 1
Czas ostatniego dostępu na NTFS
NTFS oprócz czasu modyfikacji pliku/katalogu przechowuje również informację o czasie ostatniego dostępu do niego. Aby go zobaczyć, można użyć np. komendy
dir /t:a
albo dodać odpowiednią kolumnę w Eksploratorze Windows. Opcja jest globalna i musi być uaktywniona (jej włączenie może nieznacznie spowolnić system):
fsutil behavior set DisableLastAccess 0
Pliki z pustą zawartością na NTFS
Tym razem dwie ciekawostki dotyczące plików z bajtami o kodzie 0x00. Żeby "wyczyścić" w ten sposób dowolny plik, należy użyć komendy
fsutil file setzerodata offset=0 length=100 plik.txt
gdzie zamiast 0 i 100 wstawiamy odpowiednio numer pierwszego czyszczonego bajtu i długość obszaru.
Możemy zaoszczędzić miejsce na dysku w przypadku tzw. plików rozszedzonych (ich pusta część nie jest tam fizycznie zapisywana). Wpierw zaznaczamy plik jako wykorzystujący tę funkcję (działa w Windows Vista/7):
fsutil sparse setflag plik.txt
Następnie informujemy system, że określony obszar (w przykładzie 100 bajtów począwszy od pierwszego bajtu w pliku) może być wyczyszczony (zostanie wypełniony bajtami o kodzie 0x00, miejsce poprzednio zajmowane przez nie na dysku zostaną zwolnione)
fsutil sparse setrange plik.txt 0 100
Windows 7 obsługuje komendę TRIM. O ile jest ona zaimplementowana w firmware dysku SSD, pozwala w określonych przypadkach na zwiększenie prędkości jego działania (więcej można przeczytać np. tutaj).
Sprawdzenie, czy jest włączona w systemie, uzyskamy przez wykonanie
fsutil behavior query DisableDeleteNotify
(wartość 0 oznacza, że działa). Możemy ją włączyć komendą
fsutil behavior set DisableDeleteNotify 0
Komentarze
7A z poradnika nie skorzystam, bo nie mam se7ena ;P, ale dam 5 za włożoną pracę ;)
Ale mam także radę: przy poleceniach/kodzie programu lepiej stosować czcionkę o stałej szerokości, np. Courier New bez pochylenia. Zdecydowanie to polepsza czytelność.