HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Master Boot Record (MBR)



A Master Boot Record szerepe igen nagy a rendszerindítás során, legyen szó bármilyen operációs rendszerről. Cikkünkben szentelünk egy kis figyelmet ennek az 512 bájtnak, megnézzük milyen részekből tevődik össze, hol találhatók ezek és milyen feladatot látnak el. Az alábbiak segítségül szolgálhatnak azoknak a programozóknak, akik olvasni (vagy írni) szeretnék az MBR-t.

A Master Boot Record (~Fő indítórekord) talán az egyik legfontosabb része a merevlemeznek, mert sérülése esetén nem indítható operációs rendszer, legyen az Windows, DOS, UNIX, OS/2 vagy bármi. Minden partícióhoz (kötethez) tartozik egy indító rekord. Elhelyezkedésük operációs rendszerenként változik: van, ahol a kötet közepén kapott helyett (NT 3.5), van, ahol a végén (NT 4.0, 2000). Mindegyik indítórekord közül a legfontosabb az MBR, ami a merevlemez legelején az első szektorban található. A számítógép bekapcsolása után az alaplap itt keresi és ide adja át a vezérlést. Ettől kezdve az MBR feladata a gép indításának folytatása.
Az MBR akkor jön létre, amikor megtörténik a merevlemez partícionálása. Mérete nem túl tetemes: 512 bájt. Ebben a csekély méretben egy futtatható kód található, melynek a neve: master boot code. Itt található még a lemez aláírása (disk signature) és a partíciós tábla (partition table). Az utolsó két bájt jelzi, hogy hol ér véget az MBR, értéke mindig 0x55AA (megtalálható a boot rekordok végén is). A lemez aláírása egy egyedi szám a 0x01B8 ofszet címen, azonosítja a lemezt az operációs rendszer számára. A Windows 2000 indexként használja a regisztrációs adatbázis következő címének olvasásához:
[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]
MBR nem, csak boot rekord található a floppy lemezeken, a merevlemezek mindegyikén (amelyiken van partíció) van MBR, függetlenül attól, hány merevlemez és milyen sorrendben találhatók a gépben. Bekapcsolás után azonban csak a BIOS által meghatározott egység MBR-je lép működésbe. Mindez függetlenül az operációs rendszerektől.
Nézzük meg sorban az MBR részeit:
Master Boot Code
A futtatható kód az alábbi lépéseket hajtja végre:
  • Megkeresi a partíciós táblában az aktívnak jelölt partíciót.
  • Megkeresi az aktív partíció első szektorát.
  • Betölti az aktív partíció indítórekordját (boot szektor) a memóriába.
  • Átadja a vezérlést az indítórekord számára.
Amennyiben a fenti műveletek végrehajtása nem jár sikerrel, megjelenít egy hibaüzenetet.
Partíciós tábla
A partíciós tábla feladata meghatározni a merevlemezen található partíciók helyét és típusát. Összes mérete 64 bájt és minden bejegyzés 16 bájt hosszú. Ebből következik, hogy maximum négy lehet egy merevlemezen. Logikailag ugyan meghatározhatunk többet is, de akkor kiterjesztett partíción létrehozott logikai kiosztásról van szó, valójában az is csak egy partíció.
Az alábbi ofszet címeken találhatók az egyes partíciók bejegyzései:
  • Partíció1\ 0x01BE(446)
  • Partíció2\ 0x01CE(462)
  • Partíció3\ 0x01DE(478)
  • Partíció4\ 0x01EE(494)
Windows 2000-től kezdődően áll rendelkezésünkre a dinamikus lemezkezelő szolgáltatás. Egyik tulajdonsága, hogy megszünteti a maximálisan négy partíciós korlátot, de úgy, hogy nem írja felül az MBR-t, hanem a merevlemez végén hoz létre egy táblát, ezért nem kompatibilis a korábbi vagy más operációs rendszerekkel.
Két címet emelnénk ki a partíciós táblából az első, amelyik az aktivitást jelzi, ez a 0x01E ofszet címen található (az MBR elejéhez viszonyítva, egyébként a tábla első bájtja), 1 bájt (8 bit) hosszú, értéke 00, ha nincs aktív a partíció és ettől eltérő, ha van.
A másik cím a 0x01C2 ofszet címen helyezkedik el és jelzi milyen típusú fájlrendszer található a partíciókon. Minden operációs rendszernek megvannak a saját azonosítói, a Windows 2000/XP a következőket használja:
Érték Típus
0x01 FAT12 elsődleges vagy logikai
0x04 FAT16 elsődleges vagy logikai
0x05 Kiterjesztett
0x06 BIGDOS FAT16 elsődleges vagy logikai (max. 4 GB méretig, de csak 2000/XP alatt)
0x07 Installable File System (IFS) elsődleges vagy logikai
0x0B FAT32 elsődleges vagy logikai
0x0C FAT32 elsődleges vagy logikai BIOS INT 13h bővítéssel
0x0E BIGDOS FAT16 elsődleges vagy logikai BIOS INT 13h bővítéssel
0x0F Kiterjesztett BIOS INT 13h bővítéssel
0x12 EISA partíció
0x42 Dinamikus lemezkezelés van használatban
0x86 FT FAT16
0x87 FT NTFS
0x8B FT FAT32
0x8C FT FAT32 BIOS INT 13h bővítéssel
Tükrözött köteteknél a felső bit jelzi a tükrözés tényét.
Extended Boot Record (EBR)
Joggal merülhet fel a kérdés, hogy a fenti szigorú rendszerbe hogy lehet beilleszteni a logikai meghajtókat? Ha kiterjesztett partíción definiálva vannak logikai meghajtók, akkor ezek az Extended Boot Record-ban találhatók, mely helyileg nem az MBR-ben helyezkednek el, hanem a merevlemez 32. vagy 63. relatív szektorában. Ha nincs logikai meghajtó, akkor a szektor üres.

Cikksorozat

#IDKategóriaCikk címeSorozat
2535C#Oracle adatbázis-elérés alapjai1. rész
2546C#SQL utasítások végrehajtása2. rész
2557C#Tárolt eljárások és függvények fejlesztése3. rész
2565C#Csomagok fejlesztése4. rész
2573C#Adatbázis triggerek fejlesztése5. rész
2581C#Kivételek kezelése PL/SQL-ben6. rész
3276C#Kurzorok deklarálása PL/SQL-ben7. rész
3297C#Tömb adattípus létrehozása és kezelése PL/SQL-ben8. rész
3326C#Adatbevitel tömb-adattípussal rendelkező oszlopokba9. rész
3357C#Adattárolás beágyazott tábla-típusú oszlopokban10. rész
3388C#Adatok beszúrása beágyazott táblákba11. rész
3418C#Index létrehozása PL/SQL-ben12. rész
3444C#Szekvenciák használata13. rész
3488C#Adatok betöltése állományokból14. rész
1765DelphiOracle adatbázis-elérés alapjai15. rész
1774DelphiSQL utasítások végrehajtása16. rész
1784DelphiTárolt eljárások és függvények fejlesztése17. rész
1794DelphiCsomagok fejlesztése18. rész
1803DelphiAdatbázis triggerek fejlesztése19. rész
1815DelphiKivételek kezelése PL/SQL-ben20. rész
3256DelphiKurzorok deklarálása PL/SQL-ben21. rész
3287DelphiTömb adattípus létrehozása és kezelése PL/SQL-ben22. rész
3318DelphiAdatbevitel tömb-adattípussal rendelkező oszlopokba23. rész
3348DelphiAdattárolás beágyazott tábla típusú oszlopokban24. rész
3377DelphiAdatok beszúrása beágyazott táblákba25. rész
3408DelphiIndex létrehozása PL/SQL-ben26. rész
3436DelphiSzekvenciák használata27. rész
3467DelphiAdatok betöltése állományokból28. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2003 évkönyv 69. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |