Du�e dyski

Andries Brouwer, aeb@cwi.nl
v1.0, 960626
wersja polska piotr.pogorzelski@ippt.gov.pl
wersja 1.0, 5 marca 1997


Wszystko na temat geometrii dysk�w i granicy 1024 cylindr�w.

1. Postawienie problemu

Za��my, �e posiadasz dysk z wi�cej ni� 1024 cylindrami. Co wi�cej za��my, �e posiadasz system kt�ry korzysta z BIOSu. Wtedy masz problem. Masz problem poniewa� zwyk�y interfejs We/Wy twojego dysku realizowany przez przerwanie BIOSu INT13, kt�re do przekazywania numeru cylindra, na kt�rym ma zosta� wykonana operacja We/Wy korzysta z 10-cio bitowego pola, przez co cylindry o numerze 1024 i wiekszym s� niedost�pne.

Na szcz�cie Linux nie korzysta z BIOSu, wi�c nie ma tego problemu.

No prawie, poza dwoma przypadkami:

(1) Kiedy uruchamiasz sw�j system, Linux jeszcze nie dzia�a i nie potrafi uchroni� ci� przed k�opotami z BIOSem. Ma to wp�yw na prac� LILO i innych �adowaczy system�w (boot loaders).

(2) Wszystkie systemy operacyjne korzystaj�ce z tego samego dysku musz� zgadza� si� co do po�o�enia poszczeg�lnych partycji. Innymi s�owy, je�li korzystasz na jednym dysku z Linuxa i powiedzmy DOSu, wtedy oba musz� interpretowa� tabel� partycji w ten sam spos�b. Ma to wp�yw na spos�b zachownia j�dra i programu fdisk.

Poni�ej znajdziesz sczeg�owy opis wszelkich istotnych szczeg��w. Zauwa�, �e wszelkie informacje odnosz� si� do j�dra w wersji 2.0.8. Inne wersje j�dra mog� zachowywa� si� troszk� inaczej.

2. �adowanie systemu (Booting)

Podczas �adowania systemu, BIOS odczytuje z pierwszego dysku twardego (lub z dyskietki) sektor 0 (znany jako g��wny sektor startowy (Master Boto Record, MBR)) i wykonuje skok do znalezionego tam kodu - zwykle do programu �adowania pocz�tkowego. Te ma�e programy �aduj�ce (�adowacze) jakie si� tam znajduj�, nie posiadaj� wlasnych drajwer�w dyskowych i korzystaj� z funkcji BIOSu. To znaczy, �e j�dro Linuxa mo�e zosta� za�adowane, tylko wtedy gdy w ca�o�ci znajduje si� poni�ej 1024 cylindra.

Ten problem mo�na bardzo �atwo rozwi�za�. Upewnij si�, �e j�dro (i by� mo�e inne pliki wykorzystywane do startu systemu, np. pliki odzworowa� programu LILO) znajduj� si� na partycji, kt�ra w ca�o�ci zawiera si� w obszrze ponizej 1024 cylindra dysku, do kt�rego BIOS ma dost�p - zwykle pierwszy lub drugi dysk twojego komputera.

Poza tym �adowacz i BIOS musz� si� zgadza� w sprawie geometrii dysku. Tutaj mo�e okaza� si� pomocne skorzystanie w konfiguracji LILO z opcji linear. Wi�cej szczeg��w p�niej.

3. Geometria dysku i partycje

Je�li posiadasz na jednym dysku kilka system�w operacyjnych, wtedy ka�dy z nich u�ywa jednej lub wi�cej partycji. Niezgodno�� w ocenie, gdzie te partycje si� dok�adnie znajduj� mo�e mie� katastrofalne konsekwencje.

Rekord MBR zawiera tabel� partycji okre�laj�c�, gdzie znajduj� si� partycje (podstawowe). Tabela zawiera 4 pozycje (dla 4 partycji) i wygl�da mniej wi�cej tak:

struct partition {
        char active;    /* 0x80: startowa, 0: nie strtowa */
        char begin[3];  /* CHS pierwszego sektora partycji */
        char type;
        char end[3];    /* CHS ostatniego sektora partycji */
        int start;      /* 32 bitowy numer sektora (licz�c od 0) */
        int length;     /* 32 bitowa liczba sektor�w */
};
(gdzie CHS oznacza numer cylindra/g�owicy/sektora).

Jak wida� informacja jest nadmiarowa: lokalizacja partycji jest podana zar�wno w 24-ro bitowych polach begin i end, oraz w 32-dwu bitowych polach start i length.

Linux korzysta jedynie z p�l start i length, dlatego potrafi obs�u�y� partycje o liczbie sektor�w nie przekraczaj�cej 2^32 tzn. partycje o rozmiarze nie wi�kszym ni� 2 TB. Czyli dwie�cie razy wi�ksz� od dysk�w obecnie dost�pnych na rynku. Mo�emy mie� nadzieje, �e b�dzie to wystarczaj�ce na najbli�sze 10 lat, a mo�e wi�cej.

Niestety, funkcja BIOSu INT13 korzysta z inforamacij CHS zakodowanych w polach 3bajtowych, przy czym na numer cylindra przeznaczonych jest 10 bit�w, 8 bit�w na numer g�owicy i 6 bit�w na numer sektora na �cie�ce. Dozwolone numery cylindr�w to 0-1023, g�owic 0-255 i dozwolona liczba sektor�w na �cie�ce wynosi 1-63 (tak, sektory na �cie�ce s� liczone od 1, a nie od 0). Na tych 24 bitach mo�na zaadresowa� nie wi�cej ni� 8455716864 bajt�w (7.875 GB), dwie�cie razy wi�cej ni� rozmiar dysk�w dost�pnych w roku 1983.

Kolejne, wa�niejsze (gro�niejsze) ograniczenie polega na tym, �e standard interfejsu IDE pozwala jedynie na: 256 sektor�w na �cie�ce, 65536 cylindr�w i 16 g�owic. Sam w sobie pozwala na dost�p do 2^37 = 137438953472 bajt�w (128 GB), lecz w po��czeniu z ograniczeniami na�o�onymi przez BIOS, faktycznie umo�liwia na dost�p tylko do 528482304 bajt�w (504 MB).

Nie jest to wystarczaj�ce dla dost�pnych obecnie dysk�w i ludzie s� zmuszeni do stosowania r�nego rodzaju sztuczek, zar�wno sprz�towych, jak i programowych.

4. Translacja i Disk Managery

Nikogo nie interesuje jaka jest `rzeczywista' geometria dysku. Tak na prawd�, liczba sektor�w na �cie�ce cz�sto jest zmienna - wi�cej na �cie�kach zewn�trznych i mniej na �cie�kach wewn�trznych - nie ma tak na prawd� `rzeczywstej' liczby sektor�w na �cie�ce. Dla u�ytkownika najwygodniej jest traktowa� dysk jako liniow� tablic� sektor�w, ponumerowanych 0,1 ... i pozostawi� sterownikowi zadanie odnalezienia po�o�enia danego sektora na dysku.

To numerownie liniwe znane jest pod skr�tem LBA. Adres liniowy nale�acy do sektora (c,h,s) dla dysku o geometrii (C,H,S) jest r�wny c*H*S+h*S+(s-1). Wszystkie sterowniki SCSI porozumiewaj� si� wed�ug standardu LBA, niekt�re sterowniki IDE r�wnie�.

BIOS zamienia 24-bitowe pole (c,h,s) na adres LBA i przekazuje to sterownikowi, kt�ry rozumie co to jest LBA. Dzi�ki temu ponownie mamy dost�p do 7.785 GB. Nie jest to wystarczaj�ce dla wszystkich dysk�w, lecz jest to lepsze ni� to co by�o. Zauwa�, �e CHS wykorzystywane przez BIOS nie ma �adnego zwi�zku z rzeczywisto�ci�.

Co� poddobnego dzieje si� w sytuacji, gdy sterownik nie rozumie adres�w LBA, lecz BIOS wie o translacji (w Setupie BIOSu jest to zwykle oznaczane jako `Large'). Teraz BIOS prezentuje systemowi operacyjnemu geometri� (C',H',S') i u�ywa geometrii (C,H,S) do komunikacji ze sterownikiem. Zwykle S=S' C'=C/N i H'=H*N, gdzie N jest najmniejsz� pot�g� 2, zapewniaj�c� spe�nienie warunku ' <= 1024 (w celu zminimalizowania marnuj�cej si� przestrzeni przez zaokr�glenie w d� C'=C/N). Ta metoda r�wnie� pozwala uzyska� dost�p do 7.875 GB.

Je�li BIOS nic nie wie na tema `Large' lub LBA, wtedy pozostaj� rozwi�zania oparte na odpowiednich drajwerach. Takie programy, jak OnTrack lub Ez-Drive zamieniaj� programy obs�ugi dysku nale��ce do BIOSu na w�asne. Cz�sto jest to realizowane, przez umieszenie kodu nale�acego do Disk Managera w rekordzie MBR i kolejnych sektorach dysku (OnTrack nazywa to DDO: Dynamic Drive Overlay) aby by� on uruchamiany przed za�adowniem jakiegokolwiek systemu operacyjnego. To wyja�nia k�opoty zwi�zane ze startowniem systemu z dyskietki, dla dysk�w z zainstalowanym programem Disk Manager.

Efekt ca�ego tego zamieszania jest mniej wi�cej taki sam, jak w przypadku translacji przez BIOS - lecz w sytuacjach, gdy na jednym dysku znajduje si� wiele system�w operacyjnych programy typu Disk Manager mog� sprawia� wiele k�opot�w.

Linux od wersji 1.3.14 rozpoznaje istnienie programu Boot Manager firmy OnTrack i od wersji 1.3.29 firmy EZ-Drive. Wi�cej szczeg��w znajdziesz dalej.

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).

6. Konsekwencje

Jakie to wszystko ma znaczenie? Dla u�ytkownik�w Linuxa tylko jedno: musz� si� upewni�, �e LILO i fdisk u�ywaj� `poprawnej' geometrii, gdzie `poprawna' w przypadku fdiska jest rozumiana jako geometria u�ywana przez inne systemy operacyjne znajduj�ce sie na tym samym dysku, a w przypadku LILO, �e jest to geometria pozwalaj�ca na poprawn� wsp�prac� z BIOSem podczas �adowania systemu.

Jak fdisk dowiaduje si� o geometrii? Pyta si� j�dra przy pomocy funkcji ioctl HDIO_GETGEO. Lecz u�ytkownik mo�e poda� dowoln� geometri� dysku przez parametry w wierszu polece� lub p�niej w samym programie.

Jak LILO dowiaduje si� o geometrii dysku? Pyta si� j�dra przy pomocy funkcji ioctl HDIO_GETGEO. Lecz u�ytkownik mo�e poda� �asne inforamacje z pomoc� opcji `disk='. Mo�na r�wnie� skorzystac z opcji linear, co spowoduje, �e LILO zachowa w pliku odwzorwania (map file) adres LBA, zamiast CHS i podczas �adowania sytemu odczyta geometri� dysku (wykorzystuj�c funkcj� nr 8 przerwania INT 13).

Sk�d j�dro wie co odpowiedzie�? Ha!, po pierwsze u�ytkownik mo�e przekaz� mu odpowiednie informacje jako parametr wiersza zach�ty startowej: `hd=cyls,heads,secs'. W innym przypadku j�dro przepyta na ten temat sprz�t.

6.1 Szczeg�ly IDE

Troch� szczeg��w. Drajwer IDE posiada cztery �r�d�a informacji o geometrii dysku. Pierwsze (G_user) to dane podane przez u�ytkwonika w wierszu zachety. Drugie (G_bios) to inforamcje BIOSu (tylko dla pierwszego i drugiego dysku), kt�re s� odczytywana podczas uruchamiania systemu, przed prze��czeniem si� w tryb 32-bitowy. Trzecie (G_phys) i czwarte (G_log) s� przekazywane przez sterownik IDE jako odpowied� na polecenie IDENTIFY - s� to `fizyczna' i aktualna `logiczna' geometria dysku.

Z drugiej strony, sterownik potrzebuje dw�ch informacji o geometrii dysku: lecz posiada z jednej strony G_fdisk, przekazywane przez funkcj� ioctl HDIO_GETGEO, a z drugiej strony G_used, kt�re jest naprawd� wykorzystywane do wykonywania operacji We/Wy. Zar�wno G_fdisk, jak i G_used s� inicjowane: warto�ciami G_user je�li s� podane, G_bios je�li ta inforamcja jest dostepna wg. CMOS, lub G_phys w przeciwnym wypadku. Jesli G_log wygl�da rozs�dnie to G_used przybiera t� w�asnie warto��. W przeciwnym wypadku, je�li G_used nie ma wi�kszego sensu i G_phys wygl�da OK, wtedy G_used przyjmuje warto�� G_phys. W tym przypadku `rozs�dnie' oznacza, �e liczba g�owic jest w zakresie 1-16.

Innymi s�owy parametry wiersza zach�ty s� wa�niejsze od informacji pobranych z BIOSu i okre�laj� jak� geometri� widzi fdisk, lecz je�li podane informacje odpowiadaj� geometri poddanej translacji (wiecej ni� 16 g�owic), wtedy operacje We/wy j�dra zostan� zast�pione odpowiedzi� sterownika na polecenie IDENTIFY.

6.2 Szczeg�y SCSI

Sytuacja w przypadku SCSI jest troch� inna, poniewa� polecenia SCSI u�ywaj� logicznych numer�w blok�w, tak wi�c geometria dysku nie ma absolutnie �adnego znaczenia dla operacjami We/Wy. Jednak�e format tabeli partycji jest ci�gle ten sam, wi�c fdisk musi wymy�le� jak�� geometri� i r�wnie� w tym przypadku korzysta z funkcji HDIO_GETGEO - w rzeczywisto�ci fdisk nie rozr�nia dysk�w IDE i SCSI. Jak ka�dy mo�e si� sam przekona� (na podstawie szczeg�owego om�wienia poni�ej) poszceg�lne drajwery wymy�laj� r�ne geometri�. Rzeczywi�cie jeden wielki balagan.

Je�li nie korzystasz DOSu, to unikaj wszelkich ustawie� rozszerzonych translacji i je�li to mo�liwe, u�ywaj ustawie� 64 g�owice, 32 sektory na �cie�ce (wtedy jeden cylinder ma �adny rozmiar 1MB). Unikniesz problem�w, gdy przeniesiesz dysk z jednego sterownika do innego. Niekt�re dyski SCSI (aha152x, pas16, ppa, qlogicfas, qlogicisp) s� tak nerwowe w sprawach zgodno�ci z MS-DOSem, �e nie pozwol� systemowi z zainstalowanym wy��cznie systemem Linux na wykorzystanie wi�cej ni� 8GB. To jest b��d.

Jaka jest rzeczywista geometria? Najprostsza odpowied� m�wi, �e nie ma czego� takiego. I gdyby by�a, to nie chcia�by� wiedzie�, i na pewno NIGDY, ale to PRZENIGDY nie m�w o tym fdiskowi, LILO lub j�dru. To jest po prostu sprawa pomi�dzy dyskiem i sterownikiem SCSI. Pozwolisz, �e powt�rz�: tylko g�upcy m�wi� fdiskowi/LILO/j�dru o rzeczywistej geometrii dysk�w SCSI.

Lecz je�li jeste� ciekaw i nalegasz, mo�esz spyta� o to sam dysk. Istnieje bardzo wa�ne polecenie READ CAPACITY, kt�re przekazuje ca�kowi� obj�to�� dysku, a drugie polecenie MODE SENSE (patrz Rigid Disk Drive Geometry Page (strona 04)) pozwala odczyta� liczb� cylindr�w i g�owic (ta informacje nie mo�e by� zmieniona), natomiast w Format Page (strona 03) podaje liczb� baj�w w sektorze i liczb� sektor�w w �cie�ce. Ta ostania liczba jest zwykle zale�na od wyci�cia (notch) i liczba sektor�w na �cie�ce jest zmienna - �cie�ki zewn�trzne posiadaj� wi�cej sektor�w, wewn�trzne mniej. Program pracuj�cy pod Linuxem o nazwie scsiinfo poda ci te wszystkie informacje.

Jest wiele szceg��w i komplikacji, i jest jasne, �e nikt (prawdopodobnie nawet sam system operacyjny) nie chce wykorzystywa� tej informacji. Co wi�cej, tak d�ugo jak martwimy si� tylko o fdisk i LILO, zwykle otrzymuje si� odpowiedz typu C/H.S=4476/27/171 - warto�ci, kt�re nie mog� by� wykorzystane przez fdisk, poniewa� tabela partycji rezerwuje jedynie dla C/H/S odpowiednio 10/8/6 bit�w.

To sk�d na ten temat bierze informacj� funkcja HDIO_GETGEO ? C�z, albo ze sterownika SCSI lub zgaduje. Wygl�da, �e niekt�re dyski mysl�, �e interesuje nas `rzeczywisto��', lecz nas oczywi�cie interesuje jedynie jakie parametry b�d� u�ywane przez FDISK pod DOSem czy OS/2 (lub AFDISK Adapteca).

Pami�taj, �e fdisk Linuxa potrzebuje zna� liczb� g�owic H i sektor�w na �cie�ce S, aby m�c zamieni� numer sektora w foramcjie LBA na adres c/h/s, lecz liczba cylindr�w C nie ma znaczenia w tej konwersji. Niekt�re dyski u�ywaj� (C,H,S)=(1032,255,63) w celu zasygnalizowania, �e dysk ma co najmniej 1023*255*63 sektor�w. Niestety to nie ujawnia aktualnego rozmiaru dysku i b�dzie ogranicza�o u�ytkownik�w wi�kszo�ci wersji programu fdisk do wykorzstania tylko oko�o 8GB ich dysk�w - w dzisiejszych czasach jest to powa�ne ograniczenie.

W opisie przedstawionym poni�ej, M oznacza ca�kowit� pojemno�� dysku, a C,H i S liczb� cylindr�w, g�owic i sektor�w na �cie�ce. Je�li traktujemy C jako wynik dzia�ania C = M / (H*S), wtedy wystarczy poda� H i S.

Domy�lnie H=63,S=32.

aha1740, dtc, g_NCR5380, t128, wd7000:

H=64, S=32.

aha152x, pas16, ppa, qlogicfas, qlogicisp:

H=64, S=32 unless C > 1024, W takim przypadku H=255, S=63, C = min(1023, M/(H*S)). (Tak wi�c C jest obci�te i h*s*C nie jest aproksymacj� rozmiaru dysku M. Taka sytuacja potrafi og�upi� wi�kszo�� wersji programu fdsik.) Kod w pliku ppa.c wykorzystuje M+1 zamiast M i twierdzi, �e to z poowdu b��du w sd.c M jest przesuni�te o 1.

advansys:

H=64, S=32 chyba, �e C > 1024 i co wi�cej przy w��czonej opcji BIOSu `> 1 GB', co w takim przypadku daje H=255, S=63.

aha1542:

Spytaj sterownika, kt�ry z mo�liwych dw�ch schemat�w translacji jest w u�yciu, i u�yj albo H=255, S=63 lub H=64, S=32. W ostanim przypadku wy�wietlany jest komunikat startowy "aha1542.c: Using extended bios translation".

aic7xxx:

H=64, S=32 chyba, �e C > 1024, i co wi�cej je�li przekazano parametr startowy (boot) "extended", lub je�li w pami�ci SEEPROM, lub BIOSie by� ustawiony bit `extended', to w takim przypadku przyjmuje si� H=255, S=63.

buslogic:

H=64, S=32 chyba, �e C >= 1024, i co wi�cej na sterwoniku zosta�a w��czona translacja rozszerzona, co w takim pryzpadku powoduje przyj�ceie parametr�w H=128, S=32 je�li M < 2^22 lub H=255, S=63 w przeciwnym wypadku. Jednak�e po dokonaniu wyboru (C,H,S) odczytywana jest tabela partycji i je�li dla jednej z trzech mo�liwo�ci (H,S) = (64,32), (128,32), (255,63) gdziekolwiek zgadza si� r�wno�� endH=H-1, wtedy stosowana jest dana para (H,S) i wy�wietlany jest komunikat "Adopting Geometry from Partition Table".

fdomain:

Znajduje parametry w tabeli parametr�w dysku BIOSu, lub odczytuje tabel� partycji i u�ywa translacji H=endH+1, S=endS w przypadku pierwszej partycji (pod warunkiem, �e nie jest pusta), lub u�ywa H=64, S=32 w przypadku gdy M < 2^21 (1 GB), lub H=128, S=63 je�li M < 63*2^17 (3.9 GB) w przeciwnym wypadku. H=255, S=63.

in2000:

U�yj pierwszej pary (H,S) = (64,32), (64,63), (128,63), (255,63), dla kt�rej zajdzie nier�wno�� C <= 1024. W przeciwnym wypadku skr�� C do 1023.

seagate:

Odczytuje C,H,S z dysku. (Horror!) Je�li C lub S jest zbyt du�e wtedy przyjmuje S=17,H=2 i podwaja H a� V <<;= 1024. To znaczy, �e H b�dzie mia�o warto�� 0, je�liM > 128*1024*17 (1.1 GB). To jest b��d.

ultrastor and u14_34f:

W zale�no�ci o trybu sterownika wykorzystywane jest jedno z nast�puj�cych odwzoroa�:((H,S) = (16,63), (64,32), (64,63))

Je�li drajwer nie poda geometrii dysku, powracamy do metody polegaj�cej na zgadywaniu na podstawie zawarto�ci tabeli partycji, lub ca�kowitej pojemno�ci dysku.

Zobacz tabel� partycji. Poniewa� powszechnie partycja ko�czy si� na granicy cylindra, znaj�c dla ka�dej partycji end = (endC,endH,endS) mo�emy po prostu przyj�� H = endH+1 and S = endS. (Przypomnij sobie, �e sektory liczy si� od 1.) A dok�adniej wykonywana jest nast�puj�ca operacja. Je�li istnieje niepusta partycja, odczytaj t� o najwi�kszej warto�ci beginC. Dla tej partycji sprawd� end+1, obliczone przez dodanie start i length przy za�o�eniu, �e ta partycja ko�czy si� na granicy sektor�w. Je�li obie warto�ci si� zgadzaj� lub je�li endC = 1023 i start+length jest ca�kowit� wielokrotno�ci� (endH+1)*endS, wtedy mo�emy za�o�y�, �e ta partycj� rzeczywi�cie by�a wyr�wnana do granicy cylindra i przyj�� H = endH+1 i S = endS. Je�li jednak tak nie jest, a to dlatego, �e nie ma �adnej partycji, lub dlatego, �e partycje maj� dziwne rozmiary wtedy spr�buj wykorzysta� pojemno�� dysku M. Algorytm: przyjmij H=M/(62*1024) (zaokr�glone w g�r�), S = M/(1024*H) (zaokr�glone w gor�), C = M/(H*S) (zaokr�glone w d�). W ten spos�b otrzymamy geometri� (C,H,S), prz czym C nie przekroczy 1024, a S 62.

7. Od t�umacza

Wszelkie uwagi na temat t�umaczenia mile widziane. Uwagi merytoryczne prosze kierowa� do autora tekstu angielskiego, chyba �e podej�ewasz, �e s� one wynikiem b��dnego t�umaczenia.

Inne dokumenty HOWTO przet�umaczone na j�zyk polski znajdziesz tutaj: http://www.ippt.gov.pl/~ppogorze/Linux/JTZ/.

Wersje txt i html lepiej nadajace sie do druku sa tutaj: ftp://www.ippt.gov.pl/pub/Linux/JTZ/.

# # # #

Hosting by: Hurra Communications Sp. z o.o.
Generated: 2007-01-26 18:02:22