email: darw32@poczta.onet.pl


Linux - 4.Korzystanie z Różnych Mediów

Formatowanie

Formatowanie jest to proces nanoszenia znaków, które używane są jako znaczniki ścieżek i sektorów. Przed sformatowaniem dysku powierzchnia magnetyczna jest w stanie nieuporządkowanym. W czasie formatowania powstają ścieżki, które później dzielone są na sektory - w ten sposób następuje uporządkowanie powierzchni. Aktualnie sprawa ma się nieco inaczej, jednak jest to bez znaczenia. Najważniejsze jest to, że taśmy nie można używać przed sformatowaniem.

Aktualna terminologia jest nieco myląca: w MS-DOS słowo "formatowanie" oznacza także proces tworzenia systemu plików (który omówimy później), więc jest to kombinacja dwóch procesów. Dla celów dyskusji prawdziwe formatowanie nazywane jest formatowaniem niskopoziomowym, przy czym tworzenie systemu plików nazywane jest formatowaniem wysokopoziomowym. W kręgu Unixa istnieją osobne określenia na te dwa procesy: formatowanie, tworzenie systemu plików.

Dyski IDE i niektóre SCSI formatowane są w fabryce i nie wymagają ponowienia tej operacji; większość ludzi nie musi się tym martwić. Prawdę mówiąc, reformatowanie dysku może spowodować spadek wydajności - czasami trzeba to zrobić w specjalny sposób aby aktywować automatyczną zamianę złych sektorów, itd.

Dyski, które wymagają, lub mogą być formatowane wymagają najczęściej specjalnych programów ponieważ logika odpowiedzialna za formatowanie różni się między napędami. Program formatujący może odwoływać się do BIOS-u kontrolera, lub jest programem DOS-owskim, w obu przypadkach trudno go wykorzystać pod Linuxem.

Podczas formatowania mogą pojawić się zepsute miejsca zwane zepsutymi blokami, lub zepsutymi sektorami. Czasami są one wewnętrznie obsługiwane przez napęd, jednak powinno się poczynić specjalne działania aby uniknąć próby zapisu takiego miejsca. Logika odpowiedzialna za unikanie takich prób wbudowana jest w system plików. Można również utworzyć małą partycję obejmującą błędy; jest to dobre podejście w przypadku gdy uszkodzona jest duża część dysku.

Dyskietki formatowane są za pomocą fdformat. Urządzenie podaje się jako parametr. Dla przykładu: następujące polecenie sformatuje dyskietkę HD 1,44 MB:

$ fdformat /dev/fd0H1440
  Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
  Formatting ... done
  Verifying ... done
$

Zapamietaj, że jeżeli chcesz użyć urządzenia autodetekcji powinieneś najpierw ustawić domyślny format za pomocą polecenia setfdprm. To samo można otrzymać w następujący sposób:

$ setfdprm /dev/fd0 1440/1440
$ fdformat /dev/fd0
  Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
  Formatting ... done
  Verifying ... done
$

Nie jest rozsądnym formatowanie dyskietki do formatu pojemniejszego niż zaprojektowany format.

fdformat weryfikuje dyskietkę - sprawdza ją pod kątem występowania zepsutych bloków. Jeżeli taki ponowi sprawdzenie kilkakrotnie - w ten weryfikuje się prawdziwość błędu, np. mógł to być tylko kurz. Prawdziwy błąd przerwie proces walidacji, jądro wyświetli informacje o błędzie we/wy (I/O error) na konsoli lub odpowiednia informacja pojawi się w pliku /usr/log/messages (pod warunkiem, że syslog działa). fdformat nie potrafi powiedzieć gdzie nastąpił błąd (zazwyczaj nikt o to nie dba - dyskietki są tak tanie, że zepsute najczęściej lądują w koszu).

$ fdformat /dev/fd0H1440
  Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
  Formatting ... done
  Verifying ... read: Unknown error
$

Polecenie badblocks może zostać użyte w celu sprawdzenia występowania błędów na dysku (dyskietce). Program nie formatuje dysku, więc możesz sprawdzać dyski zawierające dane. Poniższy przykład sprawdza 3,5 calową dyskietkę:

$ badblocks /dev/fd0H1440 1440
  718
  719
$

badblocks wypisuje numery uszkodzonych bloków. Większość systemów plików potrafi omijać zepsute części dysku - informacje o zepsutych blokach zapisywane są w odpowiednim miejscu, można je również modyfikować. Pierwszego sprawdzenia można dokonać tworząc system plików - mkfs umożliwia to, póżniejsze sprawdzenia powinny być wykonywane za pomocą badblocks, lista zepsutych bloków powinna być modyfikowana za pomocą fsck. W póżniejszej części książki znajdziesz opis mkfs i fsck.

Wiele nowoczesnych dysków wykrywa zepsute obszary automatycznie, część z nich ma mechanizm naprawy polegający na używaniu w takim przypadku bloków z zarezerwowanej puli. Jest to niewidoczne dla systemu operacyjnego. Więcej informacji powinno znajdować się w dokumentacji twojego dysku. Wykrywalne błędy pojawiają się dopiero gdy wszystkie zapasowe bloki zostają wykorzystane, jednak taka sytuacja zdarza się najczęściej gdy dysk nie nadaje się już do niczego.