Master boot record ( eng. master boot record, MBR ) er koden og data, der er nødvendige for den efterfølgende opstart af operativsystemet og placeret i de første fysiske sektorer (oftest i de allerførste) på en harddisk eller anden lagerenhed . Brugt fra 1983 (startende med PC DOS 2.0) indtil den udbredte vedtagelse af UEFI og GPT- ordningen i 2010'erne.
MBR'en indeholder et lille stykke eksekverbar kode , en diskpartitionstabel og en speciel signatur .
MBR-funktionen er en "overgang" til den del af harddisken, hvorfra "yderligere kode" skal udføres (normalt for at starte OS). På "MBR-stadiet" vælges en diskpartition, OS-koden indlæses (opstår på senere stadier af algoritmen).
I processen med at starte computeren efter afslutningen af den indledende test ( Power-on-selvtest - POST), indlæser Basic Input/Output System (BIOS) "MBR-koden" i RAM (på IBM PC'en , normalt fra kl. adresse 0000: 7c00) og overfører kontrol til den i MBR boot-kode.
Under opstartsprocessen af en x86 -computer behandles BIOS'en altid først . På dette stadium er der, udover at teste og initialisere computerhardwaren, også et valg af den enhed, hvorfra yderligere indlæsning vil finde sted. Dette kan være en diskette, harddisk, netværksressource, indbygget ROM eller enhver anden enhed (algoritmen til valg af opstartsenhed kan være anderledes og afhænger af BIOS-implementeringen). Efter at have valgt en bootenhed, overfører BIOS'en fuldstændig kontrol over al yderligere indlæsning til denne enhed.
Hvis enheden kun har én partition (som f.eks. en diskette eller netværksopstart), er valget klart, og opstarten fortsætter med det samme fra den pågældende enhed. Men hvis enheden indeholder flere partitioner, som hver potentielt kan være bootbare (som f.eks. i tilfælde af harddiske), så er der usikkerhed: fra hvilken partition der skal startes. For at løse tvetydigheden vedrørende valget af partition blev det foreslået at fjerne dette problem fra BIOS'ens jurisdiktion og overføre dette valg til selve enheden. Ideen opstod til at bruge et lille program optaget på selve mediet, som ville træffe dette valg. Sådan blev MBR-konceptet født.
Således er den potentielle tilstedeværelse af flere boot-partitioner, blandt hvilke det er nødvendigt at træffe et valg, et nøglepunkt i behovet for udseendet og udviklingen af MBR. For enheder med en enkelt (eller unik) boot-partition er MBR-konceptet meningsløst og bruges ikke.
Nogle gange er der i MBR'en, udover hovedfunktionen (partitionsvalg), også andre funktioner inkluderet, for eksempel autorisation. Men dette er allerede en udvidelse og tilføjelse til MBR'ens hovedfunktion og opgave. Sådanne systemer er ikke udbredt.
På grund af det faktum, at andre systemer bruger forskellige arkitektoniske løsninger (fra aktivering af hardwaren til opstart af OS), gælder MBR-konceptet muligvis ikke for dem.
Der er ingen godkendt standard for MBR-strukturen, dog er der "etablerede traditioner", som de fleste MBR'er fra forskellige producenter overholder.
Det mest almindelige MBR-format er Windows . Opstartsrecorden starter med navnet på det aktuelle filsystem (for eksempel FAT32 eller NTFS ). Det følgende indeholder information om de fire partitioner på disken , et link til bootloaderen og signaturen 0x55AAh. Hvis der ikke er nogen bootloader, for eksempel i Windows XP , vises meddelelsen "NTLDR mangler / komprimeret" (afhængigt af situationen fjernes eller komprimeres bootloaderen). "Tryk på CTRL+ALT+DEL for at genstarte." Hvis disken er ulæselig, vises meddelelsen "Der opstod en disklæsningsfejl. Tryk på CTRL+ALT+DEL for at genstarte". Afhængigt af typen af bootloader udsendes forskellige meddelelser.
Andre bootloadere end standard Windows bootloadere kan bruge al pladsen mellem MBR'en og den første partition (ca. 32 kB; 1.-62. sektorer) til deres egne formål. I sådanne tilfælde forstås MBR som hele opstartskoden, og for at fremhæve de første 512 bytes siger de, at de er placeret i MBS (Master Boot Sector) - hovedopstartssektoren.
For Microsoft -operativsystemer er begreberne MBR og MBS de samme, da hele MBR er indeholdt i MBS, selvom dette ikke er helt korrekt, da MBR betyder data, og MBS betyder den fysiske sektor.
Valg af en boot-partition og kontrol af MBR'ens integritet:
Opstartssektoren afhænger af typen af filsystem på den logiske partition på disken og indeholder kode, der finder og indlæser det faktiske operativsystem på denne type filsystem.
Partiskhed | Længde, bytes | Beskrivelse | |
---|---|---|---|
0000 timer | 446 | Loader kode | |
01BEh | 16 | Afsnit 1 | Skillebord |
01CEh | 16 | Afsnit 2 | |
01DEh | 16 | Afsnit 3 | |
01 EEh | 16 | Afsnit 4 | |
01FEh | 2 | Signatur (55t AAh) |
Efter at POST -proceduren er afsluttet, skrives bootloader -koden til RAM'en på den fysiske adresse 0x7C00 (de første 446 bytes fra diskens nul-sektor), hvorefter kontrol overføres til den. Opgaven med denne kode er at analysere harddiskpartitionstabellen og derefter overføre kontrollen til den anden opstartskode, som kan være placeret enten i begyndelsen af den aktive partition eller på et særligt område på disken ( dette område er ikke optaget af filsystemer og er normalt en gruppe af sektorer #1-#62, partitioner på en disk starter normalt ved sektor #63). Den anden loader ved allerede, hvordan man læser mindst et filsystem, og dens opgave er at overføre kontrol til filer fra OS-filsystemet for at starte OS.
Eksempler:
Partitionstabellen gemmer oplysninger om typen af partition og dens placering på harddisken.
De sidste to bytes af MBR kaldes signaturen. Værdien af disse bytes skal være 55h AAh. Hvis dette ikke er tilfældet, anses indtastningen for ugyldig.
Partiskhed | Længde | Beskrivelse |
---|---|---|
00h | en | Sektionsaktivitetsindikator |
01h | en | Begyndelse af afsnit - hoved |
02h | en | Sektionsstart - Sektor (bit 0-5), Cylinder (bit 6, 7) |
03h | en | Begyndelsen af sektionen er en cylinder (høje bits 8, 9 er gemt i sektornummerbyten) |
04h | en | Sektionstypekode |
05h | en | Afslutning af afsnit - hoved |
06h | en | Sektion End - Sektor (bit 0-5), Cylinder (bit 6, 7) |
07h | en | Slut på sektion - cylinder (høje bits 8, 9 er gemt i sektornummerbyten) |
08h | fire | Offset af den første sektor |
0Ch | fire | Antal partitionssektorer |
Partitionsaktivitetsflaget angiver, om det er muligt at starte operativsystemet fra denne partition. For standardlæssere kan den have følgende værdier:
Sektions start- og slutkoordinater i CHS -format (cylinder, hoved, sektor). CHS tillader ikke adressering af mere end 7,8 GB data, og LBA -adressering bruges til at adressere partitioner ud over 7,8 GB .
Kode for det filsystem, der bruges på denne partition.
Koden | Partitionstype |
---|---|
00h | Tom adgang (fri plads) |
01h | FAT-12 (hvis det er en logisk partition, eller partitionen er placeret i de første 32 megabyte på disken, ellers bruges kode 06h) |
02h | XENIX rod |
03h | Xenix usr |
04h | FAT-16 op til 32 MB (hvis partitionen er primær, skal den være i de første fysiske 32 MB på disken, ellers bruges kode 06h) |
05h | Udvidet afsnit |
06h | FAT-16B, samt FAT-16, ikke underlagt kode 04h og FAT-12, ikke underlagt kode 01h |
07h | IFS, HPFS, NTFS , exFAT (og nogle andre - typen bestemmes af indholdet af boot record) |
08h | AIX |
09h | AIX bootbar |
0 Ah | OS/2 Boot Manager, OPUS |
0bh | FAT-32 |
0Ch | FAT-32X (FAT-32 ved hjælp af LBA) |
0Dh | Reserveret |
0Eh | FAT-16X (FAT-16 ved hjælp af LBA) (VFAT) |
0Fh | Udvidet LBA-sektion (samme som 05h, ved hjælp af LBA) [2] |
10 timer | OPUS |
11 timer | Skjult FAT (ligner kode 01h) |
12 timer | Compaq, Service Sektion |
14 timer | Skjult FAT (ligner kode 04h) |
15 timer | Skjult udvidet partition (ligner kode 05h) |
16 timer | Skjult FAT (ligner kode 06h) |
17 timer | Skjult HPFS/NTFS/IFS/exFAT-partition |
18 timer | AST SmartSleep |
19 timer | OFS1 |
1Bh | Skjult FAT-32 partition (se 0Bh) |
1 Ch | Skjult partition FAT-32X (se 0Ch) |
1 Eh | FAT-16X Hidden Partition (VFAT) (se 0Eh) |
1Fh | Skjult udvidet LBA-partition (se 0Fh) |
20 timer | OFS1 |
21 timer | FSo2 |
22 timer | Udvidet partition FS02 |
24 timer | NEC DOS |
25 timer | Windows Mobile IMGFS |
27 timer | Skjult NTFS (System Recovery Partition) |
28 timer | Reserveret til FAT-16+ |
29 timer | Reserveret til FAT-32+ |
2 ah | AFS (AthFS) |
35 timer | JFS |
38 timer | THEOS 3.2 |
39 timer | Plan 9 |
3 ah | THEOS 4 |
3bh | Udvidet afsnit THEOS 4 |
3 ch | Partition Magic, NetWare |
3Dh | Skjult NetWare-partition |
40 timer | Venix 80286, VÆLG R83 |
41 timer | Gammel Linux/Minix, PPC PReP Boot |
42 timer | Gammel Linux swap, SFS, partition på en dynamisk disk i Windows (Dynamic Disk) |
43 timer | Gammel Linux |
4 ah | ALFS |
4 ch | A2 (Aos) |
4Dh | QNX4.x |
4 Eh | QNX4.x 2. del |
4Fh | QNX4.x 3. del |
50 timer | OnTrack DM (skrivebeskyttet) |
51 timer | OnTrack DM6 (læs og skriv) |
52 timer | CP/M |
53 timer | OnTrack DM6 Aux3 |
54 timer | OnTrack DM6 DDO |
55 timer | EZ drev |
56 timer | gylden sløjfe |
56 timer | Novell VNDI |
5 ch | Priam Edisk |
61 timer | SpeedStor |
62 timer | GNU HURD |
63 timer | UNIX |
64-69 timer | NetWare |
77 timer | VNDI, M2FS, M2CS |
78 timer | XOSL |
7Fh | Denne kode er forbeholdt forsknings- eller uddannelsesprojekter. |
80 timer | MINIX (gammel) |
81 timer | MINIX |
82 timer | Linux swap, Sun Solaris (gammel) |
83 timer | linux |
85 timer | Linux udvidet (udvidet) |
86 timer | FAT-16-partition af et Windows NT-stribearray |
87 timer | NTFS/HPFS-partition af et Windows NT-stribearray |
8 Eh | LVM partition |
93 timer | Amøbe, skjult Linux (se kode 83h) |
94 timer | Amøbe BBT |
94 timer | ISO-9660 |
9 Eh | Forth OS |
A5h | dvale sektion |
A5h | NetBSD (gammel), FreeBSD, BSD/386 |
A6h | OpenBSD |
A7h | Næste skridt |
A8h | Apple Darwin, Mac OS X UFS |
A9h | NetBSD |
AFh | Mac OS X HFS og HFS+, ShangOS |
B1h | QNX6.x |
B2h | QNX6.x |
B3h | QNX6.x |
B6h | Spejlet FAT-16 Windows NT-masterpartition |
B7h | Spejlet NTFS/HPFS Windows NT-masterpartition |
BEh | Solaris 8 kan startes |
bfh | Solaris |
C2h | Skjult Linux |
C3h | Skjult Linux Swap |
C6h | Windows NT FAT-16 spejlet slavepartition |
C7h | Spejlet Windows NT NTFS slave partition |
CDh | Hukommelsesdump |
D8h | CP/M-86 |
DAh | Data er ikke et filsystem |
Dbh | CP/M-86 |
DDh | Skjult hukommelsesdump |
DEh | Dell Utility |
EBh | bfs |
ECH | SkyOS |
EDh | Hybrid GPT |
EEh | GPT |
EFh | UEFI-systempartition |
F7h | EFAT, SolidState |
Fbh | VMFS |
FCh | Byt VMFS |
FEh | LANstep, PS/2 IML |
FFh | XENIX BBT |
Hvis der bruges en udvidet partition, peger koordinaterne for begyndelsen af partitionen på EBR .
Partiskhed | Længde | Beskrivelse |
---|---|---|
1BEh | 16 | Sektionsmarkør |
1CEh | 16 | Pointer til næste EBR |
1DEh | 32 | Ikke brugt (skal udfyldes med nuller) [3] |
1FEh | 2 | Signatur (55t AAh) |
Pointerformatet ligner MBR.
Sektionsstartkoordinater i LBA-koordinater. Tillader adressering af op til 2 TB data.
Hvis MBR'en gik tabt på nogen måde, kan den gendannes med specielle hjælpeprogrammer (for eksempel TestDisk ), som vil "se" hele lagermediet og oprette en partitionstabel.
Et eksempel på kode til oprettelse af en MBR-sikkerhedskopi på unix-lignende systemer til en sda-disk:
dd if=/dev/sda of=mbr.bin bs=512 count=1Gendannelse af bootloader og partitionstabellen:
dd if=mbr.bin of=/dev/sda bs=512 count=1Gendan kun bootloaderen:
dd if=mbr.bin of=/dev/sda bs=446 count=1af operativsystemer | Aspekter|||||
---|---|---|---|---|---|
| |||||
Typer |
| ||||
Nucleus |
| ||||
Procesledelse _ |
| ||||
Hukommelseshåndtering og adressering | |||||
Indlæsnings- og initialiseringsværktøjer | |||||
skal | |||||
Andet | |||||
Kategori Wikimedia Commons Wikibooks Wiktionary |