MBR (Master Boot Record)

botond küldte be 2020. 03. 02., h – 10:26 időpontban

Tartalom

 

Ismertető

A Master Boot Record (MBR) egy speciális rendszerindító szektor a particionált számítógépes tárolóeszközök legelején. Ilyen eszközök lehetnek például a beépített, vagy cserélhető merevlemezek, SSD-k, pendrive-ok. Az MBR koncepcióját hivatalosan 1983-ban vezették be a PC DOS 2.0 változatában, és azóta működnek még napjainkban is a használt BIOS rendszerű személyi számítógépeken.

A merevlemezek MBR alapú partíciós táblában történő szervezése a tárhelyet 2 TiB-re (232 x 512 byte) korlátozza. Léteznek olyan megközelítések, amelyek valamennyire meg tudják emelni ezt a határt, például a 33-bites címzés használata (a 32 helyett), vagy a 4096 byte-os szektorméret alkalmazása, de ezek hivatalosan nem támogatottak, és nem kompatibilisek a rendszer betöltőkkel (Boot Loaders), valamint az MBR-kompatibilis operációs rendszerekkel sem, így ezek a megoldások komoly struktúra sérülést és adatvesztést eredményezhetnek, amennyiben nem kontrollált rendszerkörnyezetben alkalmazzák őket. Ezért az MBR-alapú particionálási sémát felváltja a modernebb GUID partíciós tábla (GPT) sémája az újabb (többnyire már UEFI-s) számítógépeken (a 2010-es évek elejétől).

Egy merevlemezen létezhet GPT és MBR-is egyidejűleg, annak érdekében, hogy korlátozott formában biztosítsa a régebbi rendszerekkel történő visszamenőleges kompatibilitását.

Az MBR-ek nincsenek jelen a nem particionált adathordozókon, mint például a régebben használt floppy lemezeken, vagy az olyan egyéb adathordozókon, amelyek úgy vannak bekonfigurálva, hogy floppy-ként funkcionáljanak.

 

 

Története

A particionált adathordozók támogatását és ezáltal az MBR-t az IBM PC DOS 2.0-val vezették be 1983 márciusában az akkori új IBM Personal Computer XT 10 MB-os merevlemezének támogatása érdekében, még a FAT12 fájlrendszer használatával. Az MBR eredeti verzióját David Litton írta az IBM-nél 1982 júniusában. A partíciós tábla maximum négy elsődleges partíciót támogatott, amelyek közül a DOS csak egyet tudott használni. Ez nem változott akkor sem, amikor a FAT16-ot új fájlrendszerként mutatták be a DOS 3.0-val. A kiterjesztett partíció támogatását – ami egy speciális elsődleges partíciótípus, amely más partíciók tárolására használható – a DOS 3.2 verziójában került hozzáadásra, és a kiterjesztett partíción belüli beágyazott logikai meghajtók a DOS 3.30-al érkeztek. Mivel az MS-DOS, a PC DOS, az OS/2 és a Windows soha nem volt elindítható ezekről a logikai meghajtókról, ezért az MBR formátuma és a rendszerindító kódjának funkcionalitása szinte változatlan maradt, kivéve néhány harmadik féltől származó megvalósítást a DOS és az OS/2 korszakából 1996-ig.

1996-ban a Windows 95B-ben és a DOS 7.10-ben került bevezetésre a logikai blokkcímzés (LBA) alkalmazása, amely támogatta a 8 GB-nál nagyobb lemezek használatát is, ezenkívül bevezették a lemezek időbélyeg használatát is. Ez tükrözi azt az elképzelést is, hogy az MBR-t egy operációs rendszertől és fájlrendszertől független megoldásnak szánták. Ezt a tervezési elgondolást azonban részben veszélyeztették az MBR újabb Microsoft megvalósításai, amelyek kényszerítik a CHS (Cilinder, fej, szektor) hozzáférést a FAT16B és FAT32 partíciótípusokhoz, a 06h/0Bh címeken, míg az LBA a 0Eh/0Ch hozzáférési címeket használta.

Annak ellenére, hogy az MBR formátum egyes belső részletei néha rosszul dokumentáltak (ami időnként kompatibilitási problémákat is okozott), a PC-kompatibilis számítógépek nagy népszerűsége miatt évtizedek óta széles körben elfogadják ipari szabványként. Ezt olyan mértékben támogatták, hogy még más platformokra szánt operációs rendszerek is alkalmazták. Időnként ez még kiegészült már létező, vagy platformok közötti szabványokkal a rendszerindítás és a particionálás területén.

Az MBR partíció bejegyzések és a kereskedelmi operációs rendszerekben használt MBR rendszerindító kód 32 bitre korlátozódnak. Ezért az MBR partíciós séma által az 512 byte-os szektorokat (akár fizikai, akár emulált) használó lemezeken a maximálisan támogatott lemezméret 2 TiB. Következésképpen a nagyobb lemezeken eltérő partíciós sémát kellett alkalmazni, mivel ezek 2010 óta széles körben elérhetővé váltak. Ebből adódóan az MBR particionálási séma helyébe lépett a GUID partíciós tábla (GPT). A hivatalos megközelítés egy kicsit több, mint az adatok integritásának biztosítása a védő MBR alkalmazásával. Pontosabban, nem nyújt visszamenőleges kompatibilitást azokkal az operációs rendszerekkel, amelyek nem támogatják a GPT sémát. Eközben hibrid MBR-ek több formáját tervezték és hajtották végre harmadik felek annak érdekében, hogy a lemez első fizikai 2 TiB-jában lévő partíciókat mindkét partíciós séma "párhuzamosan" tartsa fenn és/vagy hogy a régebbi operációs rendszerek is képesek legyenek elindulni a GPT partíciókról is. Ezeknek a megoldásoknak a jelenlegi nem szabványos jellege bizonyos esetekben különféle kompatibilitási problémákat okoznak.

 

Felépítése

Az MBR tehát a háttértárak legelső szektora, ami a 0-ás számozás következtében a 0. fizikális szektor. Tárolja a partíciós táblát, valamint egy apró betöltő programot, pontosabban annak az első részét, amit Boot Loader-nek, azaz rendszer betöltőnek hívnak.

Partíciós tábla

A partíciós tábla tartalmazza az eszközön elhelyezkedő partíciók információit, mint például az aktív állapot zászlót (induló partíció-e vagy sem), partíció kezdő és záró szektorának számát, méretét valamint típusát, ami lehet elsődleges, vagy kiterjesztett. Az MBR partíciós tábla minden bejegyzése egy-egy partíciót ír le, amelyből maximum négy lehet. Ezek a bejegyzések csak az elsődleges és a kiterjesztett partíciók adatait tartalmazzák, míg a kiterjesztett partíciókon belül elhelyezkedő logikai partíciókkal kapcsolatos információkat maga a kiterjesztett partíció tárolja.

Az MBR partíciós séma korlátai közé sorolható ez is, mivel maximum csak 4 elsődleges partíciót képes kezelni, ami a mai korban erősen korlátozza az egy gépre telepíthető operációs rendszerek számát (dual boot / multi boot), pláne, hogy szinte mindegyik operációs rendszernek szüksége van még egy elsődleges típusú rendszer, karbantartó vagy swap partícióra a normális működés érdekében, ami tovább csökkenti a felhasználható elsődleges partíciók számát.

Rendszer betöltő

A rendszer betöltő, vagy más néven Boot Loader kódját a BIOS indítja el, miután ellenőrizte a hardverek (CPU, memória, stb) állapotát. Mivel az MBR-alapú particionálási séma alapértelmezetten 512 byte méretű szektorokkal dolgozik, ezért maga az MBR is értelemszerűen ekkora helyet foglal. Ezért a kompatibilitás megőrzése végett a rendszerbetöltő programnak is olyan kicsinek kell lennie, hogy a partíciós táblával együtt beleférhessen az MBR-be. A modernebb, menü vezérelt, több fájlrendszert is támogató rendszerbetöltők programkódjai azonban ennél nagyobb helyet foglalnak, ezért általában két részre szokták osztani, hogy az első, rövidebb indító része beférhessen az MBR-be, ami aztán tovább adja a vezérlést a merevlemez más pontján elhelyezett második részének. A mai modern Boot Loader programok képesek bármelyik merevlemezes egység bármelyik elsődleges típusú partíciójáról elindítani egy operációs rendszert, miután a felhasználó kiválasztotta azt a menüből. Ilyen univerzális rendszerbetöltő program Linux és egyéb rendszerek betöltésére például a GNU GRUB. A a Microsoft Windows operációs rendszernek is van saját rendszer betöltője, azonban ez csak a saját, Windows rendszerek elindítására korlátozódik.