large disk howto pl 5 J7TWYZWD5HGBRS64K4WE2I4SGU7YLJLHLIECNWI
Duże dyski : Translacja wykonywana przez jądro dla dysków IDE
Następna strona
Poprzednia strona
Spis treści
5. Translacja wykonywana przez jądro dla dysków IDE
Jeśli jądro Linuxa rozpozna istnienie na dysku IDE programu typu disk
manager, spróbuje przeprowadzić identyczną translację jaką robi ten
właśnie program, tak aby widzieć te same partycje co np. MS-DOS z
programe OnTrack lub EZ-Drive. Jeśli jednak w parametrach startowych
zostanie przekazana geometria dysku, nie jest wykonywana żadna
translacja. Tak więc opcja startowa
`hd=cyls,heads,secs' może zniszczyć
zgodność z programem typu disk manager.
Translacja wykonywana przez jądro polega na wypróbowaniu kolejno
liczby głowic równej 4, 8 ,16, 32, 128, 255 (utrzymując stałą wartość
H*C) aż do spełnienia warunku C <= 1024 lub H = 255.
Trochę uwag na temat tekstu poniżej - nagłówki podrozdziałów są identyczne z
pojawiającymu się w komunikatach startowych. Tutaj i w całym tekscie
typy partycji podane są szesnastkowo.
5.1 EZD
Rozpoznano drajwer EZ-Drive poniważ pierwsza partycja
podstawowa jest typu 55. Geometria dysku podlega opisanej powyżej
translacji i tabela partycji z sektora 0 zostaje pominięta - zmiast
tego korzystamy z tabeli partycji znajdującej się w sektorze 1. Numery
bloków dyskowych pozostają niezmienione, lecz zapis sektora 0 zostaje
przekierowany do sektora 1. To zachownie może zostać zmienione przez
ponowne skompilowanie jądra przy zdefiniowaniu w pliku ide.c #define FAKE_FDISK_FOR_EZDRIVE 0 .
5.2 DM6:DDO
Rozpoznano drajwer OnTrack Manager (na pierwszym dysku) ponieważ
pierwsza partycja podstawowa jest typu 54. Geometria dysku podlega
opisanej powyżej translacji i cały dysk zostaje przesunięty o 63
sektory (tak więc stary sektor 63 staje się sektorem 0). Następnie nowy
rekord MBR (z tabelą partycji) zostaje odczytany z nowego sektora
0. To przesunięcie oczywiście ma na celu zrobienie miejsca dla DDO -
dlatego nie jest wykonywane dla innych dysków.
5.3 DM6:AUX
Rozpoznano drajwer OnTrack Manager (na innych dyskach) ponieważ
pierwsza partycja podstawowa jest typu 51 lub 53. Geometria dysku
podlega opisanej powyżej translacji.
5.4 DM6:MBR
Rozpoznano starszą wersję drajwera OnTrack Manager
poniważ znaleziono podpis drajwera (sprawdzono, że przesunięcie
znalezione w 2-gim i 3-cim bajcie rekordu MBR nie jest większe od 430,
i zmienna typu short znaleziona pod tym adresem jest równa 0x55AA, po
której występuje bajt nieparzysty). Geometria dysku podlega opisanej
powużej translacji.
5.5 PTBL
Na końcu wykonywany jest test próbujący wydedukować istnienie
translacji na podstawie wartości pól start i end partycji
podstawowej:
Jeśli cylinder początkowy i końcowy jednej z partycji jest mniejszy od
256, a sektory początkowy i końcowy mają numery odpowiednio 1, i 63, a
końcowe numery głowic są równe 31, 63 lub 127, wtedy wnioskujemy, że
translacja dysku jest aktywna, i wykorzystujemy liczbę głowic
równą odpowiednio 32, 64 i 127 (ponieważ zwykle partycja kończy się na
granicy cylindra i interfejs IDE nie pozawala na więcej niż
16 głowic). Być może jest tu błąd i genhd.c nie powinien
sprawdzać dwóch najwyższych bitów zmiennej przechowującej numer
cylindra? Jednakże nie wykonuje się żadej translacji, jesli aktualny
pogląd na istniejącą geometrię już zakłada 63 sektory na ścieżce i co
najmniej tyle samo głowic (ponieważ to prawdopodownie oznacza, ze
translacja już została dokonana).
Następna strona
Poprzednia strona
Spis treści