Vad ska man välja - GPT eller MBR? Vi förklarar hur standarderna skiljer sig åt. Installera Windows på en disk som konverterats från MBR till GPT utan att förlora data på icke-systempartitioner Gör en mbr-partition

Innan du ställer en fråga i en MBR-relaterad tråd, läs följande:

1. Vad är MBR och varför är det viktigt vid datordrift?
Översatt från engelska är MBR en förkortning som betyder Main/Master Boot Record eller Main Boot Record. Denna post ligger i den första fysiska sektorn av hårddisken och spelar en stor roll för att ladda operativsystemet, eller snarare, välja vilken partition som operativsystemet ska laddas från. Således innehåller MBR information om hårddiskpartitionerna (partitionstabellen). När datorn startar laddas MBR i BIOS-minnet (Basic Input/Output System), där den ges kontroll över systemladdningen, eller snarare valet av vilken partition som ska aktiveras. Det är därför på ett Acer-system, för att kunna använda systemåterställningssystemet (eRecovery Management) från en dold partition, måste du samtidigt trycka på Alt-F10-tangenterna när datorn startar (nämligen när Acer-logotypen visas, när POST BIOS-test utförs). Denna tangentkombination tillåter MBR att välja den första partitionen (PQService) som aktiv partition. När datorn startar normalt förblir den andra partitionen den aktiva partitionen, på vilken huvudanvändarens operativsystem är installerat. I ovanstående figur försökte jag grafiskt skildra MBR:s funktionsprincip, där du kan se den första dolda partitionen "PQService", den andra partitionen med det installerade systemet "C:" och den tredje partitionen för användardata "D :".

Diskar med tre och fyra partitioner presenteras här (i det senare fallet finns det en dold fjärde partition med Instant-On-Arcade "IOArcade", som låter dig ladda multimediaskalet utan att ladda huvudoperativsystemet).

2. Tangentkombinationen Alt+F10 fungerar inte, vad ska jag göra?
Om du, när du trycker på Alt+F10, inte kan starta datorn från en dold partition (gå in i Acer eRecovery Management), betyder det att du byter ut den ursprungliga Acer MBR med huvudstartregistret för det operativsystem du installerade. För att installera den ursprungliga MBR (från Acer) på Windows XP, Vista, använd denna patch (packa upp och kör). Om Windows 7 var förinstallerat kör du den här patchen efter uppackning. När systemet har startat om, försök att trycka på Alt+F10 igen.

3. Du har tagit bort de dolda partitionerna och tänker inte använda Acer eRecovery Management. Vad ska man göra i det här fallet?
Först måste du inaktivera funktionen "D2D Recovery" i BIOS. Efter detta kan du installera operativsystemet själv eller använda återställningsskivorna som följde med din dator eller som du skapade med Acer eRecovery-programmet. I det senare fallet kommer återställningsprogrammet automatiskt att upptäcka frånvaron av en dold partition och installera systemet på den första partitionen, från vilken det installerade operativsystemet sedan kommer att starta.

Dessutom: för att återställa starthanteraren för Windows XP (om detta operativsystem är installerat), använd det här verktyget. Var försiktig! Kör filen endast om du har Windows XP installerat. Om du behöver återställa starthanteraren för Windows Vista, kör det här verktyget.

Om du vill reparera MBR i en DOS-miljö fungerar inte verktyget mbrwrwin.exe. Använd för detta ändamål.

Vi uttrycker alla frågor i detta forumämne:

Materialet förbereddes specifikt för http://site (författare – Guryev Denis, GDenis)
e-post [e-postskyddad]
(ändring av material, kopiering och distribution endast med tillstånd från författaren)

Ett av de effektiva stegen för att felsöka Windows-startproblem är att återställa startregistret för Windows 10/7/8.1 med en ny UEFI- och GPT-partitionering eller BIOS med MBR-partitionering. En av de vanligaste anledningarna till att Master Boot Record kan bli skadad är på grund av skadlig programvara eller filkorruption i den sektorn. En felaktig avstängning kan också leda till korruption av boot record (MBR). Ibland uppstår problem när Linux Grub är installerat och Windows inte kan upptäcka det. I vissa fall kan du få ett felmeddelande Bootmgr saknas eller BCD när du slår på datorn. I sådana fall kan du köra bootloader-reparation för att åtgärda dessa problem.

Hur man återställer Windows 10 bootloader

Du bör vara förberedd eftersom din dator inte kommer att starta från ditt skrivbord och ytterligare startalternativ kanske inte är effektiva. Därför behöver du Windows 10 med samma bitdjup (x32 eller x64) som du ska reparera, och gärna samma version. Du måste starta upp i alla följande metoder från en startbar USB-flashenhet för att starta kommandotolken. Kom ihåg att efter att ha återställt starthanteraren kan vissa fel dyka upp och du behöver bara starta om datorn ett par gånger för att starthanteraren ska vänja sig vid det.

Börja installera Windows 10 från ett startbart USB-minne och gå till installationsplatsen. Klicka sedan på botten " Systemåterställning" för att komma till ytterligare startalternativ.

Metod 1. När du är i de avancerade startalternativen, gå till " " > "Extra tillval" > och välj "". Vänta tills processen är klar och starthanteraren för Windows 10 bör återställas.

Metod 2. I samma avancerade startalternativ, gå till " Felsökning" > "Extra tillval" > och kör " Kommandorad".


Först kommer vi att se till på vilken lokal enhet systemet som vi vill återställa starthanteraren finns på. För att göra detta, kör följande tre kommandon på kommandoraden och tryck på Enter efter varje:

  1. diskdel
  2. listvolym- visar en lista med avsnitt.
  3. utgång- lämna verktyget för att arbeta med diskar.

I mitt fall visar skärmdumpen nedan att den lokala disken som Windows 10 är installerad på inte är "C", utan "D". Du kommer med största sannolikhet att ha ett "C", men var försiktig, du måste bestämma var du har systemet installerat. När du har bestämt vilken bokstav ditt system är under, skriv in följande kommando för att återställa Windows 10 bootloader:

  • bcdboot D:\windows

Metod 3. Om du använder ett Windows-system med det nya UEFI- och GPT-partitionsschemat måste du hitta en dold partition med FAT32-filsystemet (det är ungefär 90-300 MB). Om du har en BIOS- och MBR-partitionering kommer filsystemet att vara NTFS (cirka 500 MB). I mitt fall är det NTFS. Det betyder att vi startar kommandoraden via en startbar USB-flashenhet, som beskrivs ovan, och skriver kommandona:

  1. diskdel- lanserar ett verktyg för att arbeta med diskar.
  2. listvolym- visar en lista med avsnitt.
  3. välj volym 3- Val dold volymer (i mitt fall är det NTFS, du kan ha en dold FAT32).
  4. format fs=ntfs eller format fs=fat32- formatera den valda volymen (beroende på vilken du har).
  5. tilldela bokstaven=E– Vi tilldelar det en ny bokstav (jag tilldelade det som redan var).
  6. utgång- lämna discpart-verktyget.
  7. bcdboot D:\Windows /s E: /f ALLA- kopiera bootloader-filerna. (I mitt fall är enhet D: volymen där själva Windows finns, E: är bokstaven som vi tilldelade den dolda partitionen).
  8. diskdel- startar tillbaka skivverktyget.
  9. listvolym- visa en lista med sektioner.
  10. välj volym 3- Numret på den dolda volym som vi tilldelade en bokstav.
  11. ta bort bokstaven=E- radera bokstaven så att partitionen inte visas i systemet när vi startar om.


Metod 4. I den här metoden kommer vi att använda verktyget Bootrec.exe. Skriv in följande kommandon efter varandra på kommandoraden:

  1. bootrec /RebuildBcd
  2. bootrec /fixMbr
  3. bootrec/fixboot

Logga ut och starta om ditt system.


I vissa fall måste du köra ytterligare ett kommando:

  • bootsect /nt60 SYS eller bootsect /nt60 ALLA

I det här avsnittet ska jag visa dig hur du skriver din egen multiboot-hanterare. Multiboot-hanteraren är en kod som finns i startsektorn som, efter användarens val, laddar vilket som helst av flera operativsystem installerade på datorn. Under diskussionen kommer du att bli bekant med INT 13h-avbrottet, partitionstabellen, etc. Standardstarthanteraren som de flesta operativsystem installerar som standard är för primitiv för att tas på allvar, och anpassade starthanterare från tredjepartsutvecklare är vanligtvis för klumpiga och opålitliga. Så låt oss skriva vårt eget! Medan vi skriver det kommer vi att lära känna Tao och Zen i assembler, lära oss att felsöka program utan en debugger och ta en närmare titt på hårddiskens lågnivågränssnitt.

Gränssnitt INT 13h

Du kan hantera diskar både via I/O-portar och via BIOS. Portarna är mycket mer kraftfulla och intressanta, men BIOS är mycket lättare att programmera, och det stöder också ett stort antal enheter i olika storlekar, som abstraherar från designfunktionerna för varje specifik modell. Därför kommer vi att agera genom det, eller mer exakt, genom avbrottsgränssnittet INT 13h.

Funktionsnumret läggs in i AH-registret. När det gäller läsning är det lika med två. AL-registret ansvarar för antalet sektorer som behandlas. Eftersom vi ska läsa en sektor per operation lägger vi en här. DH-registret lagrar huvudnumret och DL-registret lagrar enhetsnumret (80h är den första hårddisken, 81h är den andra, etc.). De minst signifikanta fem bitarna i CL-registret anger sektornumret, de återstående bitarna i CL-registret och de åtta bitarna i CH-registret anger numret på cylindern vi vill läsa. Registerparet ES:BX pekar på adressen till destinationsbufferten. Det är allt, faktiskt. Efter att ha utfört INT 13h-kommandot hamnar läsdata i bufferten, och om ett fel inträffar (till exempel huvudet "snubblar" på BAD-sektorn), kommer BIOS att ställa in bärflaggan, och vi kommer att tvingas för att antingen försöka igen eller visa ett sorgligt meddelande på skärmen.

Assembly språkkoden för detta program visas i Listing 5.6.

Lista 5.6. Kod som läser startsektorn eller utökad partitionstabell

MOV SI, 1BEh ; Gå till första avsnittet
MOV AXE, CS ; Konfigurera ES
MOV ES, AX
MOV BX, buf ; Buffertförskjutning
...
read_all_partitions:
MOV AXE, knopp ; Läs 1 sektor från disk

MOV DH, ; Starthuvudnummer
MOV CX, ; Startsektor med cylinder INT 13h
JC-fel; Läsfel
;Bearbeta lässtartsektorn eller den utökade partitionstabellen
;===================================================================
;
CMP-byte, 80h
JZ LOAD_BOOT ; Det här är startsektorn
; Vi överför kontrollen till den
CMP byte, 05h
JZ LOAD_CHS_EXT ; Detta är en utökad partitionstabell
; i CHS-format
CMP-byte, 0Fh
JZ LOAD_LBA_EXT ; Detta är en utökad partitionstabell
; i LBA-format
ADD SI, 10h; Låt oss gå vidare till nästa avsnitt
CMP SI, 1EEh
JNA read_all_partitions ; Läs alla avsnitt en efter en
...buff rb 512 ; 512 byte buffert

Att skriva en sektor i CHS-läge sker nästan exakt på samma sätt, bara AH-registret är inte 02h, utan 03h. LBA-läget är mycket svårare att lista ut, men vi, precis som riktiga hackare, kommer definitivt att bemästra det.

Sektorn läses av funktionen 42h(AH = 42h). DL-registret innehåller som tidigare enhetsnumret, men DS:SI-registerparet pekar på diskadresspaketet, som är en avancerad struktur av formatet som beskrivs i Tabell. 5.4.

Tabell 5.4. Adresspaketformat som används för att läsa och skriva sektorer i LBA-läge

Partiskhet Typ Beskrivning
00h BYTE Paketstorlek - 10h eller 18h
01h BYTE Fältet är reserverat och måste vara noll
02h ORD Hur många sektorer att läsa
04h DWORD 32-bitars destinationsbuffertadress i seg:offs-format
08h QWORD Startsektornummer för avläsning
10h QWORD Den platta 64-bitarsadressen för destinationsbufferten. Används endast om 32-bitars adressen är FFFF:FFFF

Koden som läser en sektor i LBA-läge ser i allmänhet ut som den som visas i Listing 5.7.

Lista 5.7. Kod som läser en sektor från en disk i LBA-läge

MOV DI, 1BEh ; Gå till första avsnittet
MOV AXE, CS ; Konfigurerar...
MOV buf_seg ; ...segmentet
MOV EAX, ; Partitionsförskjutning i förhållande till
; början av avsnittet
ADD EAX, EDI ; EDI måste innehålla sektornummer
; nuvarande MBR
MOV ;
...
read_all_partitions:
MOV AN, 42h; Läs sektor i LBA-läge
MOV DL, 80h; Läs från första skivan
MOV SI, dap ; Adresspaketförskjutning INT 13h
JC-fel; Läsfel
...
dap:
paketstorlek db 10h ; paketstorlek 10h byte
reserverad db 00h ; "Stash" för framtida expansioner
N_SEC dw 01h ; Läser en sektor
buf_seg dw 00h ; Destinationsbuffertsegmentet kommer att anges här
buff_off dw buf ; Destinationsbuffertoffset
X_SEC dd 0 ; Sektornumret som ska läsas kommer att anges här
dd 0 ; Riktigt oanvänd svans
; 64-bitars adress
buff rb 512; 512 byte buffert

Att skriva liknar läsning, bara AH-registret innehåller inte 42h, utan 43h. AL-registret bestämmer läget: om bit 0 är 1 skriver BIOS inte utan emulerar det. Bit 2, när den är inställd, möjliggör kontrollinspelning. Om AL-registret är 0, utförs den normala normalskrivningen.

Nu när vi har blivit bekväma med diskavbrott, låt oss gå vidare till att diskutera andra aspekter av programmering.

Skapar starthanterarens kod

Bootloaders programmeras bäst med FASM. Ur assemblerns synvinkel är laddaren en vanlig binär fil, vars maximalt tillåtna storlek är 1BBh (443) byte. Lite? Men låt oss inte dra några slutsatser. Varje partition börjar alltid från början av cylindern, vilket innebär att mellan slutet av MBR och början av partitionen finns det minst n fria sektorer, där n == sektorer per spår . Nästan alla moderna hårddiskar har 64 sektorer per spår, vilket ger oss: 443 + 63*512 == 32 699 byte eller ungefär 32 KB. Ja, du kan till och med passa ett grafiskt gränssnitt med en mus i den här volymen! Vi kommer dock inte att göra detta. Riktiga hackare arbetar i textläge med kommandoraden.

Som redan nämnts laddar BIOS MBR på adress 7C00h, så i början av monteringskoden bör det finnas ett direktiv ORG 7C00h, och även USE16, eftersom bootloadern körs i 16-bitars realläge. Senare, om så önskas, kan den byta till skyddat läge, men det kommer att ske senare. Låt oss inte hamna i en sådan djungel.

Efter att ha upptäckt en startpartition (och denna kan detekteras av 80h-flaggan, placerad vid nollförskjutning från början av partitionen), måste starthanteraren läsa den första sektorn av denna partition och placera den i minnet på adressen 0000:7C00h, att är, precis ovanpå sin egen kropp. Men det här är inte bra längre! Och för att inte orsaka en systemkrasch måste bootloadern flytta sin kropp till en annan adress i förväg, vilket vanligtvis görs med MOVSB-kommandot. Du kan kopiera till någon av minnesadresserna - från 0080:0067h till 9FE00h. Det är bättre att inte röra minnet som ligger under 0080:0067h, eftersom avbrottsvektorer och BIOS-systemvariabler finns här, och ROM-mappningsområdet börjar från A000h och uppåt, så den maximala tillgängliga adressen är A000h - 200h (sektorstorlek) = = 9FE00h.

Glöm inte att du aldrig ska röra vid DL-registret, eftersom det innehåller startenhetens nummer. Vissa bootloaders innehåller en bugg som alltid startar från den första hårddisken, och detta är medan BIOS har tillåtit dig att ändra startordningen i mer än 10 år, och därför kan vilken enhet som helst vara startbar.

I själva verket är FASM den enda assembler som jag känner till som "smälter" JMP 0000:7C00h långdistansanropskommandot direkt. Alla andra assemblerare gör det perverterat ungefär så här: PUSH offset_of_target/PUSH segment_of_target/RETF . Här trycker vi segmentet och offset av måladressen till stacken och kör en långt RETF som tar oss till önskad plats. Du kan också använda självmodifierande kod genom att sätta ihop kommandot JMP FAR "manuellt", eller helt enkelt placera måladressen i samma segment som källadressen (till exempel 0000:7C00h ? 0000:7E00h). Men dessa tillvägagångssätt är tråkiga och tråkiga.

I allmänhet kommer skelettet på vår lastare att se ut som det som visas i Lista 5.8.

Notering 5.8. Skelett av en enkel bootloader skriven i FASM

användning16
ORG 7C00h
CLD ; Kopiera från vänster till höger
; (ökning av adresser)
MOV SI,7C00h ; Var man kopierar från
MOV DI,7E00h ; Vart ska man kopiera
MOV CX,200h ; Sektorlängd
REP MOVSB; Kopiera
; // Välj den partition vi vill ladda,
; // läs in det i minnet på adressen 0000:7C00h
; // (se listorna 5.7 och 5.6)
JMP 0000:7C00h ; Överför kontrollen till bootsektorn

Skriv starthanteraren till huvudstartposten

Under gamla MS-DOS var det lätt att skriva din bootloader till MBR. För att göra detta, dra bara i INT 13h-avbrottet, funktion 03h (sektorskrivning). Men under Windows NT fungerar inte denna teknik längre, och du måste tillgripa CreateFile-funktionen. Om vi ​​istället för namnet på filen som ska öppnas anger namnet på enheten, till exempel .PHYSICALDRIVE0 (den första fysiska disken), kan vi fritt läsa och skriva dess sektorer genom att anropa ReadFile respektive WriteFile. I det här fallet måste flaggan dwCreationDisposition sättas till värdet OPEN_EXISTING och flaggan dwShareMode till värdet FILE_SHARE_WRITE. Du behöver också systemadministratörsrättigheter, annars fungerar ingenting.

Ett färdigt exempel på ett CreateFile-anrop ser ut som Listing 5.9.

Notering 5.9. Öppnar direktåtkomst till hårddisken under Windows NT

XOR EAX,EAX
PUSH EAX ; hMallfil
PUSH dword FILE_ATTRIBUTE_NORMAL ; dwFlagsAndAttributes
PUSH dword OPEN_EXISTING ; dwCreationDisposition
PUSH EAX ; lpSecurityAttributes
PUSH dword FILE_SHARE_WRITE ; dwShareMode
PUSH dword (GENERIC_WRITE OR GENERIC_READ) ; dwDesiredAccess
PUSH DEVICE_NAME ; Enhetsnamn
CALL CreateFile ; Öppnar enheten
INC EAX
TEST EAX,EAX
JZ-fel
DEC EAX
...
DEVICE_NAME db ".PHYSICALDRIVE0",0
BUF RB 512; Buffert

Efter att ha öppnat den fysiska disken och sett till att den här operationen lyckades, måste vi läsa in den ursprungliga MBR-sektorn i bufferten, skriva över de första 1BBh-bytena, utan att på något sätt röra partitionstabellen och 55h AAh-signaturen (vi vill inte disken för att sluta starta, eller hur? ). Nu återstår bara att skriva den uppdaterade MBR-koden på plats och stänga enhetsbeskrivningen. Efter en omstart träder alla ändringar i kraft.

Notera

Det är sant att det är mycket möjligt att de ändringar du gjort inte ens kommer att tänka på att träda i kraft. Lastaren tar brutal revansch för de minsta designfel. Därför, för att inte förlora innehållet i dina partitioner, är det bättre att först öva på VMWare eller någon annan PC-emulator.

Under Windows 9 x Naturligtvis fungerar CreateFile-tricket inte. Men där kan du använda avbrottssimulering från DMPI eller använda ASPI-drivrutinen. Båda metoderna beskrevs i detalj i min bok "Techniques for Protecting CDs from Copying". Men även om det talar om cd-skivor och inte hårddiskar, är hårddiskar programmerade på samma sätt.

Innan du skriver din egen bootloader, rekommenderas det att studera befintliga bootloaders som inte är standard. Alla bootloaders som listas nedan distribueras under GPL- eller BSD-licensen, det vill säga utan begränsningar.

Ge2000.asm är ett noggrant kommenterat Stealth-virus som ersätter systemstarthanteraren med sin egen. Även om det är ett virus är det inte farligt och kan användas i utbildningssyfte.

Mbr.asm är en extremt enkel men fullt fungerande bootloader med stöd för partitioner över 8 GB.

Bootasm är en utmärkt multiboot-hanterare med detaljerade kommentarer, går in i skyddat läge, kan starta från en diskett, CD, zip-disk, hårddisk, etc. Den stöder partitioner över 8 GB, visar en laddningsindikator och gör många andra användbara saker som det inte skulle skada att lära sig.

Felsökning av bootloader-kod

Att felsöka bootloader-kod är otroligt svårt. Bootloadern får kontroll långt innan operativsystemet startar, när inga debuggers ännu körs. För några år sedan var detta ett stort problem, och när man utvecklade "sofistikerade" laddare var man tvungen att antingen bygga in en integrerad mini-debugger i dem eller leta efter fel manuellt, studera listorna med en penna i handen. Med tillkomsten av emulatorer förändrades allt. Kör bara en emulator som BOCHS (Fig. 5.5), så kan du felsöka bootloadern som vilket annat program som helst!


Ris. 5.5. BOCHS-emulatorns utseende i färd med att felsöka bootsektorn

Bootloader-programmering är ett av få områden där användningen av assembler verkligen är motiverad. Språk på hög nivå är för abstraherade från hårdvara för detta. Dessutom är de inte tillräckligt flexibla. Det är därför hackare älskar att mixtra med bootloaders, lägga till många nya funktioner, inklusive automatisk uppstart från CD-ROM- eller SCSI-enheter, antivirus, lösenordsskydd med datakryptering, etc. Det finns verkligen utrymme att expandera här, och det finns något att visa upp alla dina förmågor. För vidare läsning rekommenderar jag några mycket intressanta källor. Här är de:

? MBR och OS Boot Records- mycket intressant material om MBR (på engelska): http://thestarman.narod.ru/asm/mbr/MBR_in_detail.htm;

? BOCHS- en utmärkt emulator med en inbyggd debugger, vilket avsevärt förenklar processen med att "driftsätta" startsektorer. Gratis, distribuerad med källkod: http://bochs.sourceforge.net;

? http://www.koders.com(Fig. 5.6) - en utmärkt sökmotor som syftar till att söka efter källkoder, med hjälp av nyckelordet MBR returnerar den ett stort antal bootloaders för alla smaker;


Ris. 5.6. Sök efter MBR-starthanterare på Koders webbplats

? Ralph Browns avbrottslista(Fig. 5.7) - den berömda "Avbrottslistan" av Ralph Brown, som beskriver alla avbrott, inklusive odokumenterade (på engelska): http://www.pobox.com/~ralf;


Ris. 5.7. Se Ralph Browns legendariska "Interrupt List"

OpenBIOS är ett "Open BIOS"-projekt distribuerat i källkod. Hjälper till att förstå några icke-uppenbara aspekter av systemstarthanterarens bearbetning: http://www.openbios.info/docs/index.html.

Formatering av hårddiskar görs i tre steg:

    lågnivåformatering (fysisk layout av disken i cylindrar, spår, sektorer);

    partitionera disken i partitioner (logiska enheter):

    högnivå (logisk) formatering av varje avsnitt.

På lågnivåformateringsstadiet skickar processorn, som kör formateringsprogrammet, växelvis kommandot "Sök" till hårddiskkontrollern först för att installera enhetshuvudena på den önskade cylindern och skickar sedan kommandot "Formatera spår". När kommandot "Formatera spår" utförs, registrerar hårddiskstyrenheten, efter att ha fått en "Index"-impuls (början av spåret) från enheten, spårets serviceformat, vilket delar upp det i sektorer. Varje sektor innehåller ett datablock (512 byte), inramat av sektorns tjänstformat (innehållet och storleken på tjänsteformatet bestäms av enhetens specifika utvecklare). Tjänsteformatet för spår och sektorer krävs av hårddiskstyrenheten när kommandon utförs. Genom att läsa och dekryptera fälten i tjänsteformatet hittar styrenheten den önskade cylindern, ytan, sektorn och datablocket inuti sektorn på disken. I nästa steg av formateringen skrivs systeminformation in i datablock i ett antal sektorer, vilket säkerställer organisationen av partitioner på disken, automatisk laddning av operativsystemet och stöd för filsystemet på disken.

Vid partitioneringen av disken i partitioner, i datablocket för den första fysiska sektorn av disken (cylinder 0, yta 0, sektor 1), bildas en partitionstabell från adressen 1BEh, bestående av 4 sexton-byte-linjer. Vanligtvis kallas systeminformationen som skrivs till datablocket för denna sektor under formateringsprocessen Master Boot Record (MBR).

Från början av datablocket för denna sektor finns ett program (IPL 1). Processorn växlar till IPL 1-programmet efter framgångsrikt slutförande av POST och "Bootloader"-programmet, varvid processorn laddar från disken till MBR-minnet och överför kontrollen till början av MBR (till IPL 1-programmet) , fortsätter de åtgärder som leder till att operativsystemet laddas. Programmet IPL 1 (boot loader) som finns i MBR letar igenom partitionstabellens rader på jakt efter en aktiv partition från vilken operativsystemet kan starta. Om det inte finns någon aktiv partition i partitionstabellen visas ett felmeddelande. Om minst en partition innehåller en felaktig etikett, eller om mer än en partition är markerad som aktiv, visas felmeddelandet Ogiltig partitionstabell och startprocessen stoppas. Om en aktiv partition upptäcks, analyseras startsektorn för denna partition. Om endast en aktiv partition hittas läses innehållet i datablocket för dess startsektor (BOOT) in i minnet på adress 0000:7C00 och kontrollen överförs till denna adress; om startsektorn för den aktiva partitionen inte läses efter fem försök visas ett felmeddelande: Fel vid laddning av operativsystem och systemet stannar; signaturen för lässtartsektorn för den aktiva partitionen kontrolleras och om dess sista två bytes inte motsvarar signaturen 55AAh, visas ett felmeddelande: Operativsystem saknas och systemet stannar). Processorn läser JMP-kommandot på adress 0000:7С00, exekverar det, överför kontrollen till början av IPL 2-programmet, som kontrollerar om partitionen verkligen är aktiv: IPL 2 kontrollerar namnen och tilläggen av två filer i rotkatalogen - dessa bör vara filerna IO.SYS och MSDOS.SYS (NTLDR för Windows NT), laddar dem och. etc.

Windows 9x bygger på många av samma koncept som DOS, men tar dessa koncept längre och logiskt. Samma två systemfiler IO.SYS och MSDOS.SYS, men nu finns hela systemprogrammet i IO.SYS, och den andra filen MSDOS.SYS innehåller ASCII-text med inställningar som styr systemets beteende vid uppstart. Motsvarigheter till Himem.sys-program. Ifshlp.sys och Setver.exe laddas automatiskt av IO.SYS-programmet när systemet startar. Som tidigare kan du använda filerna Config.sys och Autoexec.bat för att ladda drivrutiner och inbyggda program till minnet, men 32-bitars enhetsdrivrutiner, som är designade specifikt för Windows 9x, laddas nu av poster i systemregistret. När allt förarbete är klart, startas Win.com-filen och Windows 9x startar och tillhandahåller sina funktioner via en grafisk meny.

Systemregistret är en databas i vilken Windows 9x lagrar information om alla inställningar, konfigurationsinställningar och parametrar som är nödvändiga för driften av sina egna moduler och individuella applikationer. Systemregistret utför funktionerna för Config.sys, Autoexec.bat och Windows 3.1 ini-filer tillsammans. På din dators disk lagras registret i två separata filer: System.dat och User.dat. Den första av dem innehåller alla typer av hårdvaruinställningar, och den andra innehåller data om användarna som arbetar i systemet och de konfigurationer de använder. Varje användare kan ha sin egen User.dat-fil, d.v.s. sin egen arbetsmiljö, som han skräddarsyr efter sin smak och behov. Systemregistret kan importeras, exporteras, samt skapa säkerhetskopior och, med hjälp av dem, återställa sparade data - med ett ord, detta är en ganska kraftfull mekanism för att hantera systemparametrar och skydda dem från förlust och skada.

Tabell 3. MBR-komponenter

Område

Beskrivning

IPL-program 1 (bootloader-programmet upptar området från adress 00h till 1BEh)

Programkod för felmeddelanden:

    Ogiltig partitionstabell (felaktig partitionstabell).

    Fel vid laddning av operativsystem (fel vid laddning av operativsystem)

    Saknar operativsystem (inget operativsystem).

Partitionstabellerna (4 rader med 16 byte vardera = 64 byte) upptar zonen från adresserna 1BEh till 1FDh

1 rad (16 byte):

    Startflagga (80h - aktiv / 00h - normal partition) - 1 byte

    Startande fysiska sektor av partitionen (huvud, sektor och cylinder) - 3 byte

    Partitionstyp -1 byte

    Avslutande fysisk sektor för partitionen (huvud, sektor och cylinder) - 3 byte

    Antal sektorer som föregår avsnittet - 4 byte

    Det totala antalet sektorer i detta avsnitt är 4 byte

De sista 2 byten i sektordatablocket från adresserna 1FE till 1FF - Slutsignatur

55AA - markerar slutet på MBR. Kontrolleras av bootloader-programmet

Området för MBR som ändrades i FAT32 är partitionstabellen. Den består liksom tidigare av fyra 16-byte-poster. Varje post definierar ett avsnitt. FAT32 introducerade 2 nya typer av partitioner DOS32 (0B) och DOS32X (OS).

Att välja en av GPT- eller MBR-standarderna kan vara ganska enkelt för ägaren av en ny dator med en stor hårddisk och ett modernt UEFI-gränssnitt.

Sådana parametrar kräver en övergång till en modernare standard.

Medan om du har mer än en dator kan valet göras till förmån för en nästan föråldrad MBR - och det kan visa sig vara det enda alternativet.

Innehåll:

Vad betyder dessa förkortningar?

Alla hårddiskar eller solid-state-enheter måste partitioneras innan de används för att spela in operativsystem, system och annan information.

MBR-standard, som står för "master boot record", representerar gammalt sätt att lagra data, GPT (eller "GUID-partitionstabell") är nytt.

Båda är också nödvändiga för att lagra information om början och slutet av varje partition, tack vare vilket systemet känner igen platsen för sektorer och avgör om denna del av disken är startbar eller inte.

Även om MBR anses pålitligt och enkelt – och återställning krävs sällan.

Nackdelarna med standarden inkluderar oförmågan att stödja ett stort antal partitioner är en liten nackdel för hårddiskar upp till 500 GB i storlek, men är redan ganska allvarlig för terabyte eller till och med 4 terabyte modeller.

Om det var nödvändigt att skapa mer än 4 partitioner var det nödvändigt att använda ganska komplex EBR-teknik.

Det andra problemet med att öka volymen på hårddiskar är oförmågan att arbeta med partitioner större än 2,2 TB.

För- och nackdelar med den nya standarden

Den förbättrade GPT-standarden, som gradvis ersätter MBR, är en del av UEFI-tekniken, som i sin tur ersätter det föråldrade BIOS-gränssnittet.

Varje sektion har sin egen unik identifierare– en mycket lång rad tecken. Fördelen med GPT jämfört med den föråldrade standarden kan kallas:

  • inga begränsningar för avsnittets volym. Närmare bestämt existerar maxvärdet fortfarande - men det kommer inte att vara möjligt att uppnå det tidigare än om flera decennier;
  • obegränsat antal sektioner– upp till 264 i allmänhet, upp till 128 för Windows OS.

På en disk som stöder MBR-standarden finns partitions- och startdata på samma plats. Om denna del av enheten är skadad, står PC-användaren inför ett antal problem.

En annan skillnad mellan GPT är lagringen av cyklisk redundanskod, som låter dig kontrollera datasäkerheten.

Skador på information leder till ett omedelbart försök att återställa den.

När du använder MBR kan du ta reda på problemet efter att systemet har slutat starta och dess partitioner har försvunnit.

Bland nackdelarna med standarden är det värt att notera bristen på stöd för tidigare tekniker - . Och även om ett operativsystem med ett föråldrat gränssnitt känner igen det, är sannolikheten att det laddas minimal. Dessutom, när du använder det här alternativet, kan du inte tilldela namn till alla diskar, såväl som partitioner, och dataåterställning är inte alltid tillgänglig på grund av begränsningar i antalet och placeringen av duplicerade tabeller.

Kompatibilitet

Om du försöker konfigurera en GPT-disk med MBR-teknik kommer du ingenstans– sålunda förhindrar den skyddande versionen av huvudstartposten oavsiktlig överskrivning och partitionering enligt den gamla standarden.

Windows-system startar från diskar markerade med GPT-teknik endast på enheter som stöder UEFI-gränssnittet - det vill säga på bärbara datorer och datorer med Windows från Vista till 10.

Om moderkortets firmware innehåller , kommer partitionerna att läsas, men uppstart kommer troligen inte att ske.

Även om samma operativsystem kan arbeta med GPT-diskar som informationslagring.

Du borde veta: GPT-standarden stöds även av andra operativsystem, inklusive Linux. Och på Apple-datorer ersatte denna teknik den gamla APT-partitionstabellen.


Jämförelse av standarder

För att bedöma likheterna och skillnaderna mellan de två standarderna, deras driftskapacitet, enheter och startgränssnitt är det värt att skapa en liten jämförelsetabell.

Det gör det mycket lättare att bestämma sig vilken partitionsstandard du ska använda för din dator.

Tabell 1. Jämförande egenskaper hos MBR och GPT
Standard MBR GPT
Arbeta med firmware Med BIOS och UEFIEndast med UEFI
Windows-stöd Alla versioner, från den allra förstaEndast 64-bitarsversioner av Windows 7 och Vista, alla varianter av Windows 8 och 10
Läsa och skriva Alla plattformarAlla Windows-operativsystem från Vista och högre + XP Professional 64-bitars
Antal partitioner på en disk Inte mer än 4Upp till 264
Maximal partitionsstorlek 2,2 TB9,4 x 109 TB
Inbyggd multibooter FrånvarandeÄta

Problem med att arbeta med den nya standarden och deras lösningar

Förekomsten av två standarder kan leda till vissa problem. Speciellt om datorn inte tillåter laddning med någon annan metod än att använda hårddisken.

Situationen kan korrigeras genom att flytta till, vilket inte tillåter att arbeta med den nya standarden - och när du försöker starta upp visas ett fel på skärmen som indikerar närvaron av en GPT-partitionsstil.

Att lösa problemet är inte så svårt - för att göra detta måste du ta en vanlig startskiva med Windows OS och gör följande:

  • Börja starta från disk;
  • ta dig dit tills avsnittet är valt, där problemet uppstår;
  • Starta konsolen(tryck på Shift och F10 samtidigt);
  • Komma igång med ett speciellt verktyg genom att ange kommandot diskpart.

Efter att programmet har startat ska du skriva "list disk", vilket kommer att leda till en lista med numrerade diskar som visas på skärmen.

Nu behöver du bara ange "ren" på kommandoraden, rensa onödig information och fortsätta med att konvertera standarder.

För att en GPT-disk ska kunna konverteras till ett föråldrat format bör du ange kommandot convert mbr, som låter dig arbeta med disken och installera valfri plattform på den.

Samma verktyg ger arbete med partitioner.

Till exempel, ange kommandot "skapa partition primär storlek = X" skapar en partition på X GB i storlek, "format fs=ntfs label="System" snabbt" utför formatering till NTFS, och "aktiv" låter partitionen bli aktiv.

Slutsatser

När du bestämmer vilken standard du ska använda, GPT eller MBR, bör du bestämma vilket startgränssnitt som används och vilken storlek hårddisken är på datorn.

Om du har BIOS-firmware kommer det att vara omöjligt att arbeta med GPT. För en modernare dator utrustad med, tvärtom, bör du inte välja MBR.

Relativt nya moderkort som släppts de senaste åren har redan ett UEFI-gränssnitt installerat, vilket innebär att det inte kommer att bli några problem med GPT.

Dock diskstorlekar öka något– få köpare väljer datorer med en hårddisk större än 2 TB och behöver dessutom 2,2 terabyte partitioner.

På grund av detta Det finns inga särskilda skäl för den genomsnittliga användaren att välja denna standard ännu– men för en server kommer det att vara ett utmärkt alternativ.

Video: