Kood jooksis kokku ja solkis kaardi süsteemialad. Hüva, formaatisin uuesti aga miskipärast otustas "PlastAken" teha ilma partitsioonita ketta. MBR asub otse sektoris 0x00! "Plasta" ise loeb jakirjutab, minu kood samuti kuid nihkega. Põhjus selles et ta eeldab partitsioonitabeli olemasolu ning kuna MBRis asub sel kohal (0x1C6) juhtumisi ketta vaikenimi ("NONAME"), loetakse tähtede koodid suhteliseks nihkeks (offset) ja leitakse sellest sujuvalt võlts MBRi asukoht. Ja kuna seal asub ka miski daata, arvuttakse edasi ja tulemuseks on lihtsalt nihkes failid.
Hüva, põhjus teada aga kuidas fiksida? Kui "Makrosoft suudab lugeda, ei saa talle mitte alla jääda. Leidsin viite, et tasub kontrollida oletatava partitsioonisektori pos. 0-st koodi 0xEB (Jump) olemasolu. Kui selline olemas, ei tule sektorit käsitleda partitsioonitabelina vaid MBRina. Mõeldud-tehtud, töötab.
Aga...see kood on asmis "jump" vaid Inteli prosede puhul. Muudel ju ei pruugi olla! kuidas saaks teha universalse algoritmi, mis suvaliste OSide kirjutatud ketta puhul segadusse ei satuks? Või ei tasu vaeva? aga sel juhul kuidas tunda ära valesti formaaditud ketast?
Tähh!
/Felch
Hüva, põhjus teada aga kuidas fiksida? Kui "Makrosoft suudab lugeda, ei saa talle mitte alla jääda. Leidsin viite, et tasub kontrollida oletatava partitsioonisektori pos. 0-st koodi 0xEB (Jump) olemasolu. Kui selline olemas, ei tule sektorit käsitleda partitsioonitabelina vaid MBRina. Mõeldud-tehtud, töötab.
Aga...see kood on asmis "jump" vaid Inteli prosede puhul. Muudel ju ei pruugi olla! kuidas saaks teha universalse algoritmi, mis suvaliste OSide kirjutatud ketta puhul segadusse ei satuks? Või ei tasu vaeva? aga sel juhul kuidas tunda ära valesti formaaditud ketast?
Tähh!
/Felch
Comment