Re: V-Fat w starym DOS-ie

Autor: Slawomir Bialek (civic_at_silter.silesia.ternet.pl)
Data: Mon 22 Jul 1996 - 21:24:49 MET DST


Jarek Lis <lis_at_okapi.ict.pwr.wroc.pl> wrote:
JL> Slawomir Bialek (civic_at_silter.silesia.ternet.pl) wrote:
JL> : LBA oznacza Linear Block Adress (tlumaczenia sie nie podejmuje, bo jeszcze
JL> : wyjdzie kolejny informatyczny potworek jezykowy :-> )
JL> : Jesli juz mamy dysk LBA (o takich mowimy) to wtedy dobry system operacyjny
JL> : (Linux, OS/2, w tym wypadku i Win'95) bedzie wlasnie tego uzywal do komunikacji
JL> : z dyskiem zamiast odwolan typu strona x, cylinder y, sektor z.

JL> Niestety - LBA to nie tylko oznacza ten termin. A moze inaczej - doklejono
JL> mu takze drugie znaczenie - translacji geometrii.
tak to tez :)
JL> BIOS z LBA oprocz [byc moze] odwolywania sie do dysku przez numer sektora,
JL> a nie CHS, przedstawia takze ten dysk z jakas liczba glowic i
JL> sektorow/sciezke, odpowiednia do wielkosci dysku.
JL> A system operacyjny bez pomocy BIOS nie zawsze wie, od ktorego
JL> sektora [logicznego] zaczyna sie partycja opisana w MBR , ze startuje
taki system jak Dos to owszem, ale
w obecnie stosowanej tablicy partycji jest pole na poczatek i rozmiar
partycji podanych w sektorach, czyli info o poczatku partycji w CHS tez jest
zbedne (znow mowie, ze przynajmniej dla Linuxa :-)
[...moze ktos sprobuje z windows95? (bo moj wlasnie padl totalnie :)
    podlaczyc jakis jako drugi/trzeci, nie wpisywac jego danych do
    cmosu, i znieksztalcic dane w talblicy partycji tego dysku,
    np. zmieniajac numer cylindra startowego, ALE KONIECZNIE
    zostawiajac nienaruszone info o poczatku partycji wyrazone w sektorach
    ... i sprawdzic czy windows ta partycje dobrze zobaczy :) ...]

JL> : Ale dobry SO nie potrzebuje zadnej informacji o geometrii
JL> : dysku z BIOS/CMOS. Jak cos chce od dysku to podaje nr sektora i juz.
JL> : (nie jestem pewien do konca co do Windows, ale Linux, uzywa adresowania
JL> : LBA w odwolaniach do dysku kiedy tylko moze
JL> : (przy okazji "slightly faster" podobno ;)
JL> : a jak nie moze to dopiero wtedy Cylinder/Head/Sector )

JL> Jestes pewien na 100%? Byc moze wreszcie to zmienili, ale w takich sunach
juz niczego nie jstem pewien :)
ale faktem jest, ze i do Linuxa i do Windows95 mozna przylaczyc dysk
nie podajac jego geometrii
oczywiscie mowie, o jakims dysku dodatkowym, bo o dysku na ktorym jest
zainstalowany Windows/Linux sa juz te informacje potrzebne chocby
do (i moze tylko do tego...) startu systemu, bo wtedy
dziala bootsector, ktory odczytuje z tablicy partycji gdzie poczatek
lezy, i dalej przekazuje wykonywanie do pierwszego
sektora wykonywalnej partycji wywolujac funkcje biosu i podaj namiar w CHS
a system operacyjny zanim przejdzie w tryb protected tez sie musi, jakos
zaladowac, wlasnie korzystajac z funkcji biosu :)
JL> 'geometrie' dysku nalezalo podac, mimo ze uzywajac dysku SCSI [a innych
JL> podlaczyc sie tam nie da] nawet nie mozna uzyc odwolan typu CHS,
JL> nie wspominajac o tym, ze np ilosc sektorow na sciezke jest zmienna.
hmmm, suny sa mi obce...

JL> P.S. DOS wydaje sie widziec nawet dosc poprawnie dysk ze zmieniona
JL> geometria (czyli formatujemy na jednej, potem zmieniamy 'rozmiary'
JL> i dzialamy na innej), ale zabootowac sie nie potrafi...
no wlasnie - bootsector zle znajduje poczatek, poniewaz korzysta
z informacji w tablicy partycji podanej w CHS, ktora juz w tym momencie
sie nie zgadza...
numery CHS sa takie, ze poddane translacji BIOS (to co sie zwyklo
nazywac LBA) trafiaja w odpowiednie miejsce na dysku
jesli teraz wylaczymy translacje to... rzecz jasna bootsector siega
do zlega miejsca
albo odwrotnie - numery CHS mamy zapisane takie jak odpowiadaja
prawdziwej logicznej geometrii dysku, bios nie dokonuje translacji i dziala,
jesli nagle wlaczymy ta translacje (LBA) no to juz zle trafia :)
wszystko by bylo ok, gdyby bootsector korzystal z danych
o poczatku partycji wyrazonej w sektorach, ale do tego musialby
dzialac w trybie protected, a nie wiem czy to sie da kilkuset bajtach zrobic :)

pozdrawiam
slawek

ps. ide czytac atafaq :)



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 12:49:17 MET DST