Înregistrarea de pornire principală ( de exemplu, înregistrarea de pornire principală, MBR ) este codul și datele necesare pentru pornirea ulterioară a sistemului de operare și situate în primele sectoare fizice (cel mai adesea în primul) pe un hard disk sau alt dispozitiv de stocare . Folosit din 1983 (începând cu PC DOS 2.0) până la adoptarea pe scară largă a UEFI și a schemei GPT în anii 2010.
MBR conține o mică bucată de cod executabil , un tabel de partiții de disc și o semnătură specială .
Funcția MBR este o „tranziție” la acea secțiune a hard disk-ului de pe care ar trebui să fie executat „cod suplimentar” (de obicei, pentru a porni sistemul de operare). În „etapa MBR”, este selectată o partiție de disc, se încarcă codul OS (apare în etapele ulterioare ale algoritmului).
În procesul de pornire a computerului după încheierea testului inițial ( Power-on self-test - POST), sistemul de intrare/ieșire de bază (BIOS) încarcă „codul MBR” în RAM (pe computerul IBM , de obicei de la adresa 0000: 7c00) și transferă controlul celui din codul de boot MBR.
În timpul procesului de pornire a unui computer x86 , BIOS-ul este întotdeauna procesat primul . În această etapă, pe lângă testarea și inițializarea hardware-ului computerului, există și o alegere a dispozitivului de pe care va avea loc încărcarea ulterioară. Acesta poate fi o dischetă, un hard disk, o resursă de rețea, un ROM încorporat sau orice alt dispozitiv (algoritmul de selectare a dispozitivului de pornire poate fi diferit și depinde de implementarea BIOS-ului). După selectarea unui dispozitiv de pornire, BIOS-ul transferă complet controlul tuturor încărcărilor ulterioare către acest dispozitiv.
În cazul în care dispozitivul are o singură partiție (cum ar fi o dischetă sau un boot de rețea, de exemplu), alegerea este clară și încărcarea continuă imediat de pe acel dispozitiv. Cu toate acestea, dacă dispozitivul conține mai multe partiții, fiecare dintre acestea putând fi bootabilă (ca, de exemplu, în cazul hard disk-urilor), atunci există o incertitudine: de la ce partiție să pornească. Pentru a rezolva ambiguitatea privind alegerea partiției, s-a propus eliminarea acestei probleme din jurisdicția BIOS-ului și transferarea acestei alegeri pe dispozitivul însuși. A apărut ideea de a folosi pentru aceasta un mic program înregistrat chiar pe media, care să facă această alegere. Așa s-a născut conceptul MBR.
Astfel, prezența potențială a mai multor partiții de boot, printre care este necesar să se facă o alegere, este un punct cheie în necesitatea apariției și dezvoltării MBR-ului. Pentru dispozitivele cu o singură partiție de pornire (sau unică), conceptul MBR este lipsit de sens și nu este utilizat.
Uneori, în MBR, pe lângă funcția principală (selectarea partiției), sunt incluse și alte funcții, de exemplu, autorizarea. Dar aceasta este deja o extensie și o completare la funcția și sarcina principală a MBR. Astfel de sisteme nu sunt utilizate pe scară largă.
Datorită faptului că alte sisteme folosesc soluții arhitecturale diferite (de la activarea hardware-ului până la pornirea sistemului de operare), conceptul MBR poate să nu se aplice acestora.
Nu există un standard aprobat pentru structura MBR, cu toate acestea, există „tradiții stabilite” la care aderă majoritatea MBR-urilor de la diferiți producători.
Cel mai comun format MBR este Windows . Înregistrarea de pornire începe cu numele sistemului de fișiere curent (de exemplu, FAT32 sau NTFS ). Următoarele conține informații despre cele patru partiții ale discului , un link către bootloader și semnătura 0x55AAh. Dacă nu există încărcător de pornire, de exemplu, în Windows XP , este afișat mesajul „NTLDR is missing/compressed” (în funcție de situație, bootloader-ul este eliminat sau comprimat). „Apăsați CTRL+ALT+DEL pentru a reporni.” De asemenea, dacă discul este ilizibil, mesajul „A apărut o eroare de citire a discului. Apăsați CTRL+ALT+DEL pentru a reporni”. În funcție de tipul de bootloader, sunt emise mesaje diferite.
Încărcătoarele de pornire, altele decât cele standard de încărcare Windows pot folosi tot spațiul dintre MBR și prima partiție (aproximativ 32 kB; sectoarele 1-62) în propriile scopuri. În astfel de cazuri, MBR-ul este înțeles ca întreg codul de pornire, iar pentru a evidenția primii 512 octeți, ei spun că sunt localizați în MBS (Master Boot Sector) - sectorul principal de boot.
Pentru sistemele de operare Microsoft , conceptele MBR și MBS sunt aceleași, deoarece întregul MBR este conținut în MBS, deși acest lucru nu este în întregime corect, deoarece MBR înseamnă date, iar MBS înseamnă sectorul fizic.
Selectarea unei partiții de boot și verificarea integrității MBR:
Sectorul de boot depinde de tipul de sistem de fișiere de pe partiția logică a discului și conține cod care găsește și încarcă sistemul de operare real pe acest tip de sistem de fișiere.
Părtinire | Lungime, octeți | Descriere | |
---|---|---|---|
0000h | 446 | Cod încărcător | |
01BEh | 16 | Sectiunea 1 | Tabel de partiții |
01CEh | 16 | Sectiunea 2 | |
01DEh | 16 | Secțiunea 3 | |
01EEh | 16 | Secțiunea 4 | |
01FEh | 2 | Semnătură (55h AAh) |
După finalizarea procedurii POST , codul bootloader -ului este scris în RAM la adresa fizică 0x7C00 (primii 446 de octeți din sectorul zero al discului), după care controlul este transferat acestuia. Sarcina acestui cod este să analizeze tabelul de partiții ale hard diskului , apoi să transfere controlul către al doilea cod de pornire, care poate fi localizat fie la începutul partiției active, fie pe o zonă specială a discului ( această zonă nu este ocupată de sisteme de fișiere și este de obicei un grup de sectoare # 1-# 62, partițiile de pe un disc încep de obicei la sectorul #63). Al doilea încărcător știe deja să citească cel puțin un sistem de fișiere, iar sarcina sa este să transfere controlul fișierelor din sistemul de fișiere al sistemului de operare pentru a porni sistemul de operare.
Exemple:
Tabelul de partiții stochează informații despre tipul de partiție și locația acesteia pe hard disk.
Ultimii doi octeți ai MBR sunt numiți semnătură. Valoarea acestor octeți va fi 55h AAh. Dacă nu este cazul, înregistrarea este considerată nevalidă.
Părtinire | Lungime | Descriere |
---|---|---|
00h | unu | Indicatorul de activitate al secțiunii |
01h | unu | Începutul secțiunii - cap |
02h | unu | Început secțiune - Sector (biții 0-5), Cilindru (biții 6, 7) |
03h | unu | Începutul secțiunii este un cilindru (biții mari 8, 9 sunt stocați în octetul cu numărul sectorului) |
04h | unu | Cod tip secțiune |
05h | unu | Sfârșitul secțiunii - cap |
06h | unu | Capătul secțiunii - Sector (biții 0-5), Cilindru (biții 6, 7) |
07h | unu | Sfârșitul secțiunii - cilindru (biții înalți 8, 9 sunt stocați în octetul cu numărul sectorului) |
08h | patru | Compensarea primului sector |
0Ch | patru | Numărul de sectoare de partiție |
Indicatorul de activitate al partiției indică dacă este posibil să porniți sistemul de operare din această partiție. Pentru încărcătoarele standard, poate lua următoarele valori:
Coordonatele de început și de sfârșit a secțiunii în format CHS (cilindru, cap, sector). CHS nu permite adresarea a mai mult de 7,8 GB de date, iar adresarea LBA este utilizată pentru a adresa partiții de peste 7,8 GB .
Codul sistemului de fișiere utilizat pe această partiție.
Codul | Tipul partiției |
---|---|
00h | Intrare goală (spațiu liber) |
01h | FAT-12 (dacă este o partiție logică sau partiția se află în primii 32 de megaocteți ai discului, în caz contrar se folosește codul 06h) |
02h | rădăcină XENIX |
03h | Xenix usr |
04h | FAT-16 până la 32 MB (dacă partiția este primară, atunci trebuie să fie în primii 32 MB fizici ai discului, altfel se folosește codul 06h) |
05h | Secțiune extinsă |
06h | FAT-16B, precum și FAT-16, care nu fac obiectul codului 04h și FAT-12, nu fac obiectul codului 01h |
07h | IFS, HPFS, NTFS , exFAT (și altele - tipul este determinat de conținutul înregistrării de pornire) |
08h | AIX |
09h | AIX bootabil |
0 Ah | OS/2 Boot Manager, OPUS |
0bh | FAT-32 |
0Ch | FAT-32X (FAT-32 folosind LBA) |
0Dh | Rezervat |
0Eh | FAT-16X (FAT-16 folosind LBA) (VFAT) |
0Fh | Secțiune LBA extinsă (la fel ca 05h, folosind LBA) [2] |
10h | OPUS |
11h | FAT ascuns (asemănător codului 01h) |
12h | Compaq, Secția Service |
14h | FAT ascuns (similar cu codul 04h) |
15h | Partiție extinsă ascunsă (asemănătoare codului 05h) |
16h | FAT ascuns (similar cu codul 06h) |
17h | Partiție ascunsă HPFS/NTFS/IFS/exFAT |
18h | AST SmartSleep |
19h | OFS1 |
1Bh | Partiție ascunsă FAT-32 (vezi 0Bh) |
1Ch | Partiție ascunsă FAT-32X (vezi 0Ch) |
1Eh | Partiție ascunsă FAT-16X (VFAT) (vezi 0Eh) |
1Fh | Partiție LBA extinsă ascunsă (vezi 0Fh) |
20h | OFS1 |
21h | FSo2 |
22h | Partiție extinsă FS02 |
24h | NEC DOS |
25h | Windows Mobile IMGFS |
27h | NTFS ascuns (partiție de recuperare a sistemului) |
28h | Rezervat pentru FAT-16+ |
29h | Rezervat pentru FAT-32+ |
2ah | AFS (AthFS) |
35h | JFS |
38h | THEOS 3.2 |
39h | Planul 9 |
3ah | TEOS 4 |
3bh | Secțiune extinsă THEOS 4 |
3 canale | Partition Magic, NetWare |
3Dh | Partiție NetWare ascunsă |
40h | Venix 80286, PICK R83 |
41h | Vechiul Linux/Minix, PPC PReP Boot |
42h | Vechiul schimb Linux, SFS, partiție pe un disc dinamic în Windows (Dynamic Disk) |
43h | Linux vechi |
4ah | ALFS |
4 canale | A2 (Aos) |
4Dh | QNX4.x |
4Eh | QNX4.x partea a doua |
4Fh | QNX4.x partea a treia |
50h | OnTrack DM (numai citire) |
51h | OnTrack DM6 (citiți și scrieți) |
52h | CP/M |
53h | OnTrack DM6 Aux3 |
54h | OnTrack DM6 DDO |
55h | Unitatea EZ |
56h | arc de aur |
56h | Novell VNDI |
5 canale | Priam Edisk |
61h | SpeedStor |
62h | GNU HURD |
63h | UNIX |
64h - 69h | NetWare |
77h | VNDI, M2FS, M2CS |
78h | XOSL |
7Fh | Acest cod este rezervat proiectelor de cercetare sau educaționale. |
80h | MINIX (vechi) |
81h | MINIX |
82h | Schimb Linux, Sun Solaris (vechi) |
83h | linux |
85h | Linux extins (extins) |
86h | Partiție FAT-16 a unei matrice stripe Windows NT |
87h | Partiție NTFS/HPFS a unei matrice stripe Windows NT |
8Eh | Partiție LVM |
93h | Amoeba, Linux ascuns (vezi codul 83h) |
94h | Amoeba BBT |
94h | ISO-9660 |
9Eh | ForthOS |
A5h | secțiunea de hibernare |
A5h | NetBSD (vechi), FreeBSD, BSD/386 |
A6h | OpenBSD |
A7h | Urmatorul pas |
A8h | Apple Darwin, Mac OS X UFS |
A9h | NetBSD |
AFh | Mac OS X HFS și HFS+, ShangOS |
B1h | QNX6.x |
B2h | QNX6.x |
B3h | QNX6.x |
B6h | Partiția principală Windows NT FAT-16 în oglindă |
B7h | Partiția master Windows NT în oglindă NTFS/HPFS |
BEh | Solaris 8 bootabil |
bfh | Solaris |
C2h | Linux ascuns |
C3h | Schimb Linux ascuns |
C6h | Partiția slave în oglindă Windows NT FAT-16 |
C7h | Partiție slave Windows NT NTFS în oglindă |
CDh | Depozitarea memoriei |
D8h | CP/M-86 |
DAh | Datele nu sunt un sistem de fișiere |
Dbh | CP/M-86 |
DDh | Memorie ascunsă |
DEh | Utilitarul Dell |
EBh | bfs |
ECH | SkyOS |
EDh | GPT hibrid |
EEh | GPT |
EFh | Partiția de sistem UEFI |
F7h | EFAT, SolidState |
Fbh | VMFS |
FCH | Schimbați VMFS |
FEh | LANstep, PS/2 IML |
FFh | XENIX BBT |
În cazul în care este utilizată o partiție extinsă, coordonatele începutului partiției sunt orientate către EBR .
Părtinire | Lungime | Descriere |
---|---|---|
1BEh | 16 | Indicator de secțiune |
1CEh | 16 | Indicator către următorul EBR |
1DEh | 32 | Neutilizat (trebuie completat cu zerouri) [3] |
1FEh | 2 | Semnătură (55h AAh) |
Formatul pointerului este similar cu MBR.
Coordonatele de început a secțiunii în coordonatele LBA. Permite adresarea a până la 2 TB de date.
Dacă MBR-ul a fost pierdut în vreun fel, atunci acesta poate fi restaurat cu utilități speciale (de exemplu, TestDisk ), care vor „viziona” întregul mediu de stocare și vor crea un tabel de partiții.
Un exemplu de cod pentru crearea unei copii de rezervă MBR pe sisteme de tip Unix pentru un disc sda:
dd if=/dev/sda of=mbr.bin bs=512 count=1Restaurarea bootloader-ului și a tabelului de partiții:
dd if=mbr.bin of=/dev/sda bs=512 count=1Restaurarea numai a bootloader-ului:
dd if=mbr.bin of=/dev/sda bs=446 count=1ale sistemelor de operare | Aspecte|||||
---|---|---|---|---|---|
| |||||
Tipuri |
| ||||
Nucleu |
| ||||
Managementul proceselor |
| ||||
Gestionarea și adresarea memoriei |
| ||||
Instrumente de încărcare și inițializare | |||||
coajă | |||||
Alte | |||||
Categorie Wikimedia Commons Wikibooks Wiktionar |