Ką rinktis – GPT ar MBR? Mes paaiškiname, kuo skiriasi standartai. „Windows“ diegimas diske, konvertuotame iš MBR į GPT, neprarandant duomenų nesisteminiuose skaidiniuose Sukurti mbr skaidinį

Prieš užduodami klausimą su MBR susijusioje gijoje, perskaitykite toliau pateiktą informaciją:

1. Kas yra MBR ir kodėl jis svarbus dirbant kompiuteriu?
Išvertus iš anglų kalbos, MBR yra santrumpa, reiškianti Main/Master Boot Record arba Main Boot Record. Šis įrašas yra pirmame fiziniame kietojo disko sektoriuje ir atlieka svarbų vaidmenį įkeliant operacinę sistemą, tiksliau, pasirenkant, iš kurio skaidinio įkelti operacinę sistemą. Taigi MBR yra informacijos apie standžiojo disko skaidinius (skirstinių lentelę). Kai kompiuteris paleidžiamas, MBR įkeliamas į BIOS atmintį (Basic Input/Output System), kur jam suteikiama sistemos įkėlimo kontrolė, tiksliau – pasirinkimas, kurį skaidinį suaktyvinti. Štai kodėl „Acer“ sistemoje, norėdami naudoti sistemos atkūrimo sistemą („eRecovery Management“) iš paslėpto skaidinio, vienu metu turite paspausti Alt-F10 klavišus, kai kompiuteris paleidžiamas (būtent, kai pasirodo Acer logotipas, kai POST Atliekamas BIOS testas). Šis klavišų derinys leidžia MBR pasirinkti pirmąjį skaidinį (PQService) kaip aktyvų skaidinį. Kai kompiuteris paleidžiamas įprastai, antrasis skaidinys lieka aktyviuoju skaidiniu, kuriame įdiegta pagrindinė vartotojo operacinė sistema. Aukščiau esančiame paveikslėlyje pabandžiau grafiškai pavaizduoti MBR veikimo principą, kur galite pamatyti pirmąjį paslėptą skaidinį „PQService“, antrąjį skaidinį su įdiegta sistema „C:“ ir trečią skaidinį vartotojo duomenims „D :".

Čia pateikiami diskai su trimis ir keturiais skaidiniais (pastaruoju atveju yra paslėptas ketvirtasis skaidinys su Instant-On-Arcade "IOArcade", kuris leidžia įkelti multimedijos apvalkalą neįkeliant pagrindinės operacinės sistemos).

2. Alt+F10 klavišų kombinacija neveikia, ką daryti?
Jei paspausdami Alt + F10 negalite paleisti kompiuterio iš paslėpto skaidinio (įveskite Acer eRecovery Management), tai reiškia, kad originalus Acer MBR pakeistas pagrindiniu įdiegtos operacinės sistemos įkrovos įrašu. Norėdami įdiegti originalų MBR (iš Acer) sistemoje Windows XP, Vista, naudokite šį pataisą (išpakuokite ir paleiskite). Jei „Windows 7“ buvo iš anksto įdiegta, išpakavus paleiskite šią pataisą. Kai sistema paleidžiama iš naujo, pabandykite dar kartą paspausti Alt + F10.

3. Ištrynėte paslėptą skaidinį (-ius) ir neketinate naudoti „Acer eRecovery Management“. Ką tokiu atveju daryti?
Pirmiausia turite išjungti „D2D atkūrimo“ funkciją BIOS. Po to galite patys įdiegti operacinę sistemą arba naudoti atkūrimo diskus, kuriuos gavote kartu su kompiuteriu arba sukūrėte naudodami Acer eRecovery programą. Pastaruoju atveju atkūrimo programa automatiškai aptiks paslėpto skaidinio nebuvimą ir įdiegs sistemą pirmame skaidinyje, iš kurio vėliau bus paleista įdiegta operacinė sistema.

Be to: norėdami atkurti Windows XP įkrovos įkroviklį (jei ši OS yra įdiegta), naudokite šią priemonę. Būk atsargus! Paleiskite failą tik tuo atveju, jei įdiegta Windows XP. Jei reikia atkurti Windows Vista įkrovos įkroviklį, paleiskite šią priemonę.

Jei norite pataisyti MBR DOS aplinkoje, mbrwrwin.exe programa neveiks. Naudokite šiam tikslui.

Visus klausimus išsakome šioje forumo temoje:

Medžiaga buvo parengta specialiai http://site (autorius – Guryev Denis, GDenis)
paštu [apsaugotas el. paštas]
(medžiagos keitimas, kopijavimas ir platinimas tik gavus autoriaus leidimą)

Vienas iš veiksmingų „Windows“ įkrovos problemų šalinimo veiksmų yra atkurti „Windows 10/7/8.1“ įkrovos įrašą naudojant naują UEFI ir GPT skaidymą arba BIOS su MBR skaidymu. Viena iš dažniausių priežasčių, kodėl pagrindinis įkrovos įrašas gali būti sugadintas, yra kenkėjiškų programų užkrėtimas arba failų sugadinimas tame sektoriuje. Netinkamas išjungimas taip pat gali sukelti įkrovos įrašo (MBR) sugadinimą. Kartais problemų iškyla įdiegus „Linux Grub“, o „Windows“ negali to aptikti. Kai kuriais atvejais galite gauti klaidą Bootmgr trūksta arba BCD kai įjungiate kompiuterį. Tokiais atvejais galite paleisti įkrovos įkrovos taisymą, kad išspręstumėte šias problemas.

Kaip atkurti Windows 10 įkrovos tvarkyklę

Turėtumėte būti pasirengę, nes jūsų kompiuteris nebus paleistas iš darbalaukio ir papildomos įkrovos parinktys gali būti neveiksmingos. Todėl jums reikia „Windows 10“ su tuo pačiu bitų gyliu (x32 arba x64), kurį ketinate taisyti, ir, pageidautina, tos pačios versijos. Kad paleistumėte komandų eilutę, turite paleisti visus toliau nurodytus metodus iš įkrovos USB atmintinės. Atminkite, kad atkūrus įkrovos tvarkyklę gali atsirasti klaidų ir jums tereikia kelis kartus iš naujo paleisti kompiuterį, kad įkrovos įkroviklis prie jo priprastų.

Pradėkite diegti „Windows 10“ iš įkrovos USB atmintinės ir eikite į diegimo tašką. Tada spustelėkite " Sistemos atkūrimo“, kad patektumėte į papildomas įkrovos parinktis.

1 būdas. Kai būsite pasirinkę išplėstines įkrovos parinktis, eikite į " " > "Papildomos parinktys“ > ir pasirinkite „“. Palaukite, kol procesas bus baigtas ir „Windows 10“ įkrovos įkroviklis turėtų atsigauti.

2 metodas. Tose pačiose išplėstinėse įkrovos parinktyse eikite į " Problemų sprendimas" > "Papildomos parinktys" > ir paleiskite " Komandinė eilutė".


Pirmiausia įsitikinsime, kuriame vietiniame diske yra sistema, kurioje norime atkurti įkrovos įkroviklį. Norėdami tai padaryti, komandų eilutėje paleiskite šias tris komandas, po kiekvienos paspausdami Enter:

  1. disko dalis
  2. sąrašo apimtis- rodo skyrių sąrašą.
  3. išeiti- išeiti iš įrankio darbui su diskais.

Mano atveju, toliau pateikta ekrano kopija rodo, kad vietinis diskas, kuriame įdiegta „Windows 10“, yra ne „C“, o „D“. Greičiausiai turėsite „C“, bet būkite atsargūs, turite nustatyti, kur įdiegėte sistemą. Nustatę, kokia raidė yra jūsų sistemoje, įveskite šią komandą, kad atkurtumėte „Windows 10“ įkrovos įkroviklį:

  • bcdboot D:\windows

3 būdas. Jei naudojate „Windows“ sistemą su naujuoju UEFI ir GPT skaidinių schema, tuomet turite rasti paslėptą skaidinį su FAT32 failų sistema (ji yra maždaug 90–300 MB). Jei turite BIOS ir MBR skaidymą, failų sistema bus NTFS (apie 500 MB). Mano atveju tai yra NTFS. Tai reiškia, kad paleidžiame komandų eilutę per įkrovos USB atmintinę, kaip aprašyta aukščiau, ir parašome komandas:

  1. disko dalis- paleidžiamas įrankis darbui su diskais.
  2. sąrašo apimtis- rodo skyrių sąrašą.
  3. pasirinkite garsumą 3- Pasirinkimas paslėptas tomai (mano atveju tai NTFS, galbūt turite paslėptą FAT32).
  4. formatas fs=ntfs arba formatas fs=fat32- pasirinkto tomo formatavimas (priklausomai nuo to, kurį turite).
  5. priskirti raidę=E- Tam priskiriame naują raidę (priskyriau tai, kas jau buvo).
  6. išeiti- išeiti iš diskų įrankio.
  7. bcdboot D:\Windows /s E: /f ALL- nukopijuokite įkrovos įkrovos failus. (Mano atveju diskas D: yra tomas, kuriame yra pati „Windows“, E: yra raidė, kurią priskyrėme paslėptam skaidiniui).
  8. disko dalis- vėl paleidžiamas disko įrankis.
  9. sąrašo apimtis- Rodyti skyrių sąrašą.
  10. pasirinkite garsumą 3- Paslėpto tomo, kuriam priskyrėme raidę, numeris.
  11. pašalinti raidę=E- ištrinkite raidę, kad skaidinys nebūtų rodomas sistemoje, kai paleidžiame iš naujo.


4 būdas. Šiuo metodu naudosime įrankį Bootrec.exe. Į komandų eilutę vieną po kitos įveskite šias komandas:

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

Atsijunkite ir iš naujo paleiskite sistemą.


Kai kuriais atvejais turėsite paleisti papildomą komandą:

  • bootsect /nt60 SYS arba bootsect /nt60 ALL

Šiame skyriuje parodysiu, kaip sukurti savo kelių įkrovų tvarkyklę. Multiboot manager yra kodas, esantis įkrovos sektoriuje, kuris vartotojo pasirinkimu įkelia bet kurią iš kelių kompiuteryje įdiegtų operacinių sistemų. Diskusijos metu susipažinsite su INT 13h pertraukimu, skaidinių lentele ir kt. Standartinis įkrovos įkroviklis, kurį dauguma operacinių sistemų įdiegia pagal numatytuosius nustatymus, yra per daug primityvus, kad į jį būtų žiūrima rimtai, o pasirinktiniai trečiųjų šalių kūrėjų įkrovos įkrovikliai paprastai yra pernelyg sudėtingi ir nepatikimi. Taigi rašykime savo! Ją rašydami susipažinsime su Tao ir Zen of assembler, išmoksime derinti programas be derintojo ir atidžiau pažvelgsime į žemo lygio kietojo disko sąsajas.

Sąsaja INT 13h

Diskus galite tvarkyti per I/O prievadus ir per BIOS. Prievadai yra daug galingesni ir įdomesni, tačiau BIOS yra daug lengviau programuojamas, be to, ji palaiko daugybę skirtingų dydžių diskų, abstrahuojančių nuo kiekvieno konkretaus modelio dizaino ypatybių. Todėl veiksime per ją, tiksliau, per pertraukimo sąsają INT 13h.

Funkcijos numeris įvedamas į AH registrą. Skaitymo atveju jis lygus dviem. AL registras yra atsakingas už apdorojamų sektorių skaičių. Kadangi kiekvienai operacijai skaitysime po vieną sektorių, vieną įdėsime čia. DH registre saugomas galvos numeris, o DL registre saugomas disko numeris (80h yra pirmasis kietasis diskas, 81h yra antrasis ir tt). Mažiausiai reikšmingi penki CL registro bitai nurodo sektoriaus numerį, likę CL registro bitai ir aštuoni CH registro bitai nurodo cilindro, kurį norime nuskaityti, numerį. Registrų pora ES:BX nurodo paskirties buferio adresą. Tai viskas, griežtai tariant. Įvykdžius komandą INT 13h, nuskaityti duomenys atsidurs buferyje, o jei įvyks klaida (pavyzdžiui, galva „užkliūva“ ant BAD sektoriaus), BIOS nustatys nešiojimo vėliavėlę, ir mes būsime priversti. bandyti dar kartą arba ekrane parodyti liūdną pranešimą.

Šios programos surinkimo kalbos kodas parodytas 5.6 sąraše.

Sąrašas 5.6. Kodas, nuskaitantis įkrovos sektorių arba išplėstinę skaidinio lentelę

MOV SI, 1BEh ; Eikite į pirmą skyrių
MOV AX, CS ; ES nustatymas
MOVES, AX
MOV BX, buf ; Buferio poslinkis
...
read_all_partitions:
MOV AX, pumpuras ; Skaityti 1 sektorių iš disko

MOV DH, ; Pradinis galvos numeris
MOV CX, ; Starto sektorius su cilindru INT 13h
JC klaida; Skaitymo klaida
;Apdorokite skaitymo įkrovos sektorių arba išplėstinę skaidinio lentelę
;===================================================================
;
CMP baitas, 80 val
JZ LOAD_BOOT ; Tai yra įkrovos sektorius
; Jai perduodame valdymą
CMP baitas, 05 val
JZ LOAD_CHS_EXT ; Tai išplėstinė skaidinių lentelė
; CHS formatu
CMP baitas, 0Fh
JZ LOAD_LBA_EXT ; Tai išplėstinė skaidinių lentelė
; LBA formatu
PRIDĖTI SI, 10h ; Pereikime prie kito skyriaus
CMP SI, 1EEh
JNA read_all_partitions ; Skaitykite visas dalis po vieną
...buf rb 512 ; 512 baitų buferis

Sektorių rašymas CHS režimu vyksta beveik lygiai taip pat, tik AH registras yra ne 02h, o 03h. LBA režimą išsiaiškinti yra daug sunkiau, bet mes, kaip tikri įsilaužėliai, tikrai jį įvaldysime.

Sektorių nuskaito funkcija 42h(AH = 42h). DL registre, kaip ir anksčiau, yra disko numeris, tačiau DS:SI registrų pora nurodo disko adreso paketą, kuris yra išplėstinė lentelėje aprašyto formato struktūra. 5.4.

5.4 lentelė. Adreso paketo formatas, naudojamas sektoriams skaityti ir rašyti LBA režimu

Šališkumas Tipas apibūdinimas
00h BAITAS Pakuotės dydis - 10h arba 18h
01h BAITAS Laukas yra rezervuotas ir turi būti nulis
02h ŽODIS Kiek sektorių skaityti
04h DWORD 32 bitų paskirties buferio adresas seg:offs formatu
08h QWORD Pradinis sektoriaus numeris skaitymui
10h QWORD 64 bitų vienodas paskirties buferio adresas. Naudojamas tik tuo atveju, jei 32 bitų adresas yra FFFF:FFFF

Kodas, nuskaitantis sektorių LBA režimu, paprastai atrodo taip, kaip parodyta 5.7 sąraše.

Sąrašas 5.7. Kodas, nuskaitantis sektorių iš disko LBA režimu

MOV DI, 1BEh ; Eikite į pirmą skyrių
MOV AX, CS ; Nustatoma...
MOV buf_seg ; ...segmentas
MOV EAX, ; Perskirstymo poslinkis, palyginti su
; skyriaus pradžia
PRIDĖTI EAX, EDI ; EDI turi būti sektoriaus numeris
; dabartinis MBR
MOV ;
...
read_all_partitions:
MOV AN, 42 val.; Skaityti sektorių LBA režimu
MOV DL, 80h ; Skaityti iš pirmo disko
MOV SI, dap ; Adreso paketo poslinkis INT 13h
JC klaida; Skaitymo klaida
...
dap:
paketo_dydis db 10h ; paketo dydis 10h baitų
rezervuota db 00h ; „Stash“ būsimoms plėtrai
N_SEC dw 01h ; Vieno sektoriaus skaitymas
buf_seg dw 00h ; Čia bus įvestas paskirties buferio segmentas
buf_off dw buf ; Paskirties buferio poslinkis
X_SEC dd 0 ; Čia bus įvestas skaitomas sektoriaus numeris
dd 0; Tikrai nenaudota uodega
; 64 bitų adresas
buf rb 512; 512 baitų buferis

Rašymas panašus į skaitymą, tik AH registre yra ne 42h, o 43h. AL registras nustato režimą: jei bitas 0 yra 1, BIOS ne rašo, o emuliuoja. 2 bitas, kai nustatytas, įgalina tikrinimo įrašymą. Jei AL registras yra 0, atliekamas numatytasis normalus rašymas.

Dabar, kai jau įpratome disko pertraukimus, pereikime prie kitų programavimo aspektų aptarimo.

Įkrovos įkrovos kodo kūrimas

Įkrovos įkroviklius geriausia programuoti naudojant FASM. Asamblerio požiūriu įkroviklis yra paprastas dvejetainis failas, kurio didžiausias leistinas dydis yra 1BBh (443) baitai. Truputį? Tačiau neskubėkime daryti išvadų. Kiekvienas skirsnis visada prasideda nuo cilindro pradžios, o tai reiškia, kad tarp MBR pabaigos ir skaidinio pradžios yra bent n laisvų sektorių, kur n == sektoriai takelyje . Beveik visi šiuolaikiniai standieji diskai turi 64 sektorius viename takelyje, o tai mums suteikia: 443 + 63*512 == 32 699 baitai arba maždaug 32 KB. Taip, į šį tomą netgi galite pritaikyti grafinę sąsają su pele! Tačiau mes to nedarysime. Tikri įsilaužėliai dirba teksto režimu su komandine eilute.

Kaip jau minėta, BIOS įkelia MBR adresu 7C00h, todėl surinkimo kodo pradžioje turėtų būti direktyva ORG 7C00h, taip pat USE16, nes įkrovos įkroviklis veikia 16 bitų realiu režimu. Vėliau, jei pageidaujama, jis gali persijungti į apsaugotą režimą, bet tai įvyks vėliau. Į tokias džiungles nepakliūkime.

Aptikusi įkrovos skaidinį (ir tai galima aptikti pagal 80h vėliavėlę, esančią nuliniu poslinkiu nuo skaidinio pradžios), įkrovos įkroviklis turi nuskaityti pirmąjį šio skaidinio sektorių, įkeldamas jį į atmintį adresu 0000:7C00h, kad yra tiksliai ant savo kūno. Bet tai jau nėra gerai! Ir kad nesukeltų sistemos gedimo, įkrovos įkroviklis turi iš anksto perkelti savo kūną į kitą adresą, o tai paprastai daroma su MOVSB ​​komanda. Galite kopijuoti į bet kurį atminties adresą – nuo ​​0080:0067h iki 9FE00h. Geriau neliesti atminties, esančios žemiau 0080:0067h, nes čia yra pertraukimų vektoriai ir BIOS sistemos kintamieji, o ROM atvaizdavimo sritis prasideda nuo A000h ir aukščiau, todėl maksimalus pasiekiamas adresas yra A000h - 200h (sektoriaus dydis) = = 9FE00h.

Nepamirškite, kad niekada neturėtumėte liesti DL registro, nes jame yra įkrovos disko numeris. Kai kuriuose įkrovos įkrovikliuose yra klaida, kuri visada paleidžiama iš pirmojo standžiojo disko, ir tai yra tuo metu, kai BIOS leidžia keisti įkrovos tvarką daugiau nei 10 metų, todėl bet kurį diską galima paleisti.

Tiesą sakant, FASM yra vienintelis man žinomas surinkėjas, kuris tiesiogiai „suvirškina“ JMP 0000:7C00h tolimojo skambučio komandą. Visi kiti surinkėjai daro jį iškreiptą maždaug taip: PUSH offset_of_target/PUSH segment_of_target/RETF . Čia mes įstumiame tikslinio adreso segmentą ir poslinkį į krūvą ir vykdome tolimą RETF, kuris nukelia mus į norimą vietą. Taip pat galite naudoti savaime besikeičiantį kodą surinkdami JMP FAR komandą „rankiniu būdu“ arba tiesiog įdėdami tikslinį adresą į tą patį segmentą kaip ir šaltinio adresas (pavyzdžiui, 0000:7C00h ? 0000:7E00h). Tačiau šie metodai yra varginantys ir varginantys.

Apskritai, mūsų krautuvo skeletas atrodys taip, kaip parodyta 5.8 sąraše.

Sąrašas 5.8. Paprasto įkrovos įkroviklio skeletas, parašytas FASM

naudojimas 16
ORG 7C00h
CLD ; Kopijuoti iš kairės į dešinę
; (didėja adresai)
MOV SI,7C00h ; Iš kur kopijuoti
MOV DI,7E00h ; Kur kopijuoti
MOV CX, 200h ; Sektoriaus ilgis
REP MOVSB; Kopijuoti
; // Pasirinkite skaidinį, kurį norime įkelti,
; // nuskaitykite jį į atmintį adresu 0000:7C00h
; // (žr. 5.7 ir 5.6 sąrašus)
JMP 0000:7C00h ; Valdymas perkeliamas į įkrovos sektorių

Įrašykite įkrovos įkroviklį į pagrindinį įkrovos įrašą

Naudojant seną MS-DOS, buvo lengva įrašyti įkrovos įkroviklį į MBR. Norėdami tai padaryti, tiesiog patraukite INT 13h pertraukimą, funkciją 03h (sektoriaus rašymas). Tačiau naudojant „Windows NT“ ši technika nebeveikia, ir jūs turite naudoti „CreateFile“ funkciją. Jei vietoj atidaromo failo pavadinimo nurodome įrenginio pavadinimą, pavyzdžiui, .PHYSICALDRIVE0 (pirmasis fizinis diskas), galime laisvai skaityti ir rašyti jo sektorius, atitinkamai iškvietę ReadFile ir WriteFile. Tokiu atveju dwCreationDisposition vėliavėlė turi būti nustatyta į OPEN_EXISTING reikšmę, o vėliavėlė dwShareMode – į FILE_SHARE_WRITE reikšmę. Taip pat reikės sistemos administratoriaus teisių, kitaip niekas neveiks.

Užbaigtas „CreateFile“ iškvietimo pavyzdys atrodo kaip 5.9 sąrašas.

Sąrašas 5.9. Tiesioginės prieigos prie standžiojo disko atidarymas naudojant „Windows NT“.

XOR EAX, EAX
PUSH EAX ; hTemplateFile
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 ; Įrenginio pavadinimas
SKAMBINTI CreateFile ; Įrenginio atidarymas
INC EAX
TESTAS EAX,EAX
JZ klaida
DEC EAX
...
DEVICE_NAME db ".PHYSICALDRIVE0",0
BUF RB 512; Buferis

Atidarę fizinį diską ir įsitikinę, kad ši operacija buvo sėkminga, turime perskaityti originalų MBR sektorių į buferį, perrašyti pirmuosius 1BBh baitus, jokiu būdu neliesdami skaidinių lentelės ir 55h AAh parašo (mes nenorime diskas, kad sustabdytų paleidimą, tiesa? Dabar belieka įrašyti atnaujintą MBR kodą į vietą ir uždaryti įrenginio aprašą. Po perkrovimo visi pakeitimai įsigalios.

Pastaba

Tiesa, visai gali būti, kad jūsų atlikti pakeitimai net negalvos įsigalioti. Krautuvas žiauriai keršija už menkiausias dizaino klaidas. Todėl, kad neprarastumėte skaidinių turinio, geriau pirmiausia pasitreniruoti su VMWare ar bet kuriuo kitu kompiuterio emuliatoriumi.

Pagal Windows 9 xŽinoma, „CreateFile“ triukas neveikia. Bet ten galite naudoti pertraukų modeliavimą iš DMPI arba naudoti ASPI tvarkyklę. Abu metodai buvo išsamiai aprašyti mano knygoje „Kompaktinių diskų apsaugos nuo kopijavimo metodai“. Tačiau, nors kalbama apie kompaktinius diskus, o ne HDD, kietieji diskai programuojami taip pat.

Prieš rašant savo įkrovos tvarkyklę, rekomenduojama išstudijuoti esamas nestandartines įkrovos tvarkykles. Visi toliau išvardyti atsisiuntimo įrenginiai yra platinami pagal GPL arba BSD licenciją, tai yra, be apribojimų.

Ge2000.asm yra kruopščiai komentuojamas slaptas virusas, kuris pakeičia sistemos įkrovos programą savo. Nors tai virusas, jis nėra pavojingas ir gali būti naudojamas edukaciniais tikslais.

Mbr.asm yra labai paprasta, bet visiškai veikianti įkrovos programa, palaikanti skaidinius, kurių dydis didesnis nei 8 GB.

„Bootasm“ yra puiki kelių įkrovų tvarkyklė su išsamiais komentarais, pereina į apsaugotą režimą, gali paleisti iš diskelio, kompaktinio disko, ZIP disko, standžiojo disko ir kt. Jis palaiko skaidinius, kurių dydis didesnis nei 8 GB, rodo įkėlimo indikatorių ir atlieka daug kitų naudingų dalykų, kurių nepakenktų išmokti.

Įkrovos įkrovos kodo derinimas

Derinti įkrovos įkrovos kodą yra neįtikėtinai sunku. Įkrovos įkroviklis įgyja kontrolę dar gerokai prieš operacinės sistemos paleidimą, kai dar neveikia derinimo priemonės. Prieš kelerius metus tai buvo didžiulė problema, o kuriant „rafinuotus“ krautuvus, reikėjo į juos arba statyti integruotą mini derintuvą, arba ieškoti klaidų rankiniu būdu, su pieštuku rankoje tyrinėjant sąrašus. Atsiradus emuliatoriams viskas pasikeitė. Tiesiog paleiskite emuliatorių, pvz., BOCHS (5.5 pav.), ir galėsite derinti įkrovos įkroviklį kaip ir bet kurią kitą programą!


Ryžiai. 5.5. BOCHS emuliatoriaus išvaizda derinant įkrovos sektorių

Bootloader programavimas yra viena iš nedaugelio sričių, kuriose asemblerio naudojimas yra tikrai pagrįstas. Aukšto lygio kalbos tam yra per daug abstrahuotos nuo aparatinės įrangos. Be to, jie nėra pakankamai lankstūs. Štai kodėl įsilaužėliai mėgsta dirbti su įkrovos įkrovikliais, pridedant daug naujų funkcijų, įskaitant automatinį paleidimą iš CD-ROM arba SCSI diskų, antivirusinę, slaptažodžio apsaugą su duomenų šifravimu ir kt. Čia tikrai yra kur plėstis ir yra kuo pademonstruoti visas savo galimybes. Tolimesniam skaitymui rekomenduočiau keletą labai įdomių šaltinių. Jie yra čia:

? MBR ir OS įkrovos įrašai- daug įdomios medžiagos apie MBR (anglų kalba): http://thestarman.narod.ru/asm/mbr/MBR_in_detail.htm;

? BOCHS- puikus emuliatorius su įmontuotu derintuvu, kuris labai supaprastina įkrovos sektorių „paleidimo“ procesą. Nemokamas, platinamas su šaltinio kodu: http://bochs.sourceforge.net;

? http://www.koders.com(5.6 pav.) - puiki paieškos sistema, skirta ieškoti šaltinio kodų, naudojant raktinį žodį MBR, pateikia daugybę įkrovos programų kiekvienam skoniui;


Ryžiai. 5.6. Koders svetainėje ieškokite MBR įkrovos šaltinių

? Ralph Brown pertraukimų sąrašas(5.7 pav.) - garsusis Ralpho Browno „Pertraukimų sąrašas“, kuriame aprašomi visi pertraukimai, įskaitant ir nedokumentuotus (anglų kalba): http://www.pobox.com/~ralf;


Ryžiai. 5.7. Peržiūrėkite legendinį Ralpho Browno „Pertraukimų sąrašą“

OpenBIOS yra „Open BIOS“ projektas, platinamas šaltinio kodu. Padeda suprasti kai kuriuos neakivaizdžius sistemos įkrovos įkrovos apdorojimo aspektus: http://www.openbios.info/docs/index.html.

Kietojo disko formatavimas atliekamas trimis etapais:

    žemo lygio formatavimas (fizinis disko išdėstymas į cilindrus, takelius, sektorius);

    disko skaidymas į skaidinius (loginiai įrenginiai):

    aukšto lygio (loginis) kiekvieno skyriaus formatavimas.

Žemo lygio formatavimo etape procesorius, vykdydamas formatavimo programą, pakaitomis siunčia komandą „Ieškoti“ į standžiojo disko valdiklį pirmiausia, kad būtų sumontuotos disko galvutės norimame cilindre, o tada siunčia komandą „Format Track“. Vykdydamas komandą „Format track“, kietojo disko valdiklis, gavęs iš disko impulsą „Indeksas“ (takelio pradžia), įrašo takelio aptarnavimo formatą, kuris suskaido jį į sektorius. Kiekviename sektoriuje yra duomenų blokas (512 baitų), įrėmintas pagal sektoriaus paslaugų formatą (paslaugos formato turinį ir dydį nustato konkretus įrenginio kūrėjas). Takelių ir sektorių aptarnavimo formato reikalauja standžiojo disko valdiklis, vykdydamas komandas. Nuskaitydamas ir iššifruodamas paslaugos formato laukus, valdiklis disko viduje suranda reikiamą cilindrą, paviršių, sektorių ir duomenų bloką. Kituose formatavimo etapuose sistemos informacija įrašoma į daugelio sektorių duomenų blokus, o tai užtikrina disko skaidinių organizavimą, automatinį operacinės sistemos įkėlimą ir failų sistemos palaikymą diske.

Disko skaidymo į skaidinius etape pirmojo fizinio disko sektoriaus duomenų bloke (cilindras 0, paviršius 0, sektorius 1) iš adreso 1BEh sudaroma skirsnių lentelė, susidedanti iš 4 šešiolikos baitų eilučių. Paprastai sistemos informacija, įrašyta į šio sektoriaus duomenų bloką formatavimo proceso metu, vadinama pagrindiniu įkrovos įrašu (MBR).

Nuo pat šio sektoriaus duomenų bloko pradžios yra programa (IPL 1). Procesorius persijungia į IPL 1 programą sėkmingai užbaigus POST ir programą „Bootloader“, kurią vykdydamas procesorius įkelia iš disko į MBR atmintį ir perduoda valdymą MBR pradžiai (į IPL 1 programą). , tęsiant veiksmus, vedančius į operacinės sistemos įkėlimą. MBR esanti IPL 1 (boot loader) programa peržiūri skaidinių lentelės eilutes, ieškodama aktyvaus skaidinio, iš kurio operacinė sistema galėtų paleisti. Jei skaidinių lentelėje nėra aktyvaus skaidinio, rodomas klaidos pranešimas. Jei bent viename skaidinyje yra neteisinga etiketė arba jei daugiau nei vienas skaidinys pažymėtas kaip aktyvus, rodomas klaidos pranešimas Netinkama skaidinio lentelė ir įkrovos procesas sustabdomas. Jei aptinkamas aktyvus skaidinys, analizuojamas to skaidinio įkrovos sektorius. Jei randamas tik vienas aktyvus skaidinys, jo įkrovos sektoriaus (BOOT) duomenų bloko turinys nuskaitomas į atmintį adresu 0000:7C00 ir valdymas perduodamas šiuo adresu, jei aktyvaus skaidinio įkrovos sektorius nenuskaitomas penkiais bandymais rodomas klaidos pranešimas: Klaida įkeliant operacinę sistemą ir sistema sustoja; patikrinamas aktyvaus skaidinio nuskaityto įkrovos sektoriaus parašas ir jei paskutiniai du jo baitai neatitinka parašo 55AAh, rodomas klaidos pranešimas: Trūksta operacinės sistemos ir sistema sustoja). Procesorius nuskaito JMP komandą adresu 0000:7С00, ją vykdydamas, perkelia valdymą į IPL 2 programos pradžią, kuri patikrina, ar skaidinys tikrai aktyvus: IPL 2 patikrina dviejų šakniniame kataloge esančių failų pavadinimus ir plėtinius - tai turėtų būti failai IO.SYS ir MSDOS.SYS (NTLDR Windows NT), įkelia juos ir. ir tt

„Windows 9x“ yra pagrįsta daugeliu tų pačių sąvokų kaip ir DOS, tačiau šias sąvokas perkelia toliau ir logiškai. Tie patys du sistemos failai IO.SYS ir MSDOS.SYS, tačiau dabar visa sistemos programa yra IO.SYS, o antrajame faile MSDOS.SYS yra ASCII tekstas su nustatymais, kurie valdo sistemos elgesį paleidžiant. Himem.sys programų atitikmenys. „Ifshlp.sys“ ir „Setver.exe“ automatiškai įkeliami IO.SYS programos, kai sistema paleidžiama. Kaip ir anksčiau, galite naudoti Config.sys ir Autoexec.bat failus norėdami įkelti tvarkykles ir nuolatines programas į atmintį, tačiau 32 bitų įrenginių tvarkyklės, sukurtos specialiai Windows 9x, dabar įkeliamos pagal įrašus sistemos registre. Atlikus visus parengiamuosius darbus, Win.com failas paleidžiamas ir Windows 9x paleidžiama bei pateikiamos jos galimybės per grafinį meniu.

Sistemos registras yra duomenų bazė, kurioje Windows 9x saugo informaciją apie visus nustatymus, konfigūracijos parametrus ir parametrus, reikalingus jos modulių ir atskirų programų veikimui. Sistemos registras kartu atlieka Config.sys, Autoexec.bat ir Windows 3.1 ini failų funkcijas. Jūsų kompiuterio diske registras saugomas dviejuose atskiruose failuose: System.dat ir User.dat. Pirmajame iš jų yra visų rūšių techninės įrangos nustatymai, o antrajame – duomenys apie sistemoje dirbančius vartotojus ir jų naudojamas konfigūracijas. Kiekvienas vartotojas gali turėti savo User.dat failą, t.y. savo darbo aplinką, kurią jis pritaiko pagal savo skonį ir poreikius. Sistemos registrą galima importuoti, eksportuoti, taip pat kurti atsargines kopijas ir jas naudojant atkurti išsaugotus duomenis – žodžiu, tai gana galingas sistemos parametrų valdymo ir apsaugos nuo praradimo ir sugadinimo mechanizmas.

3 lentelė. MBR komponentai

Regionas

apibūdinimas

IPL programa 1 (įkrovos programa užima sritį nuo adreso 00h iki 1BEh)

Klaidų pranešimų programos kodas:

    Neteisinga skaidinių lentelė (neteisinga skaidinių lentelė).

    Klaida įkeliant operacinę sistemą (klaida įkeliant operacinę sistemą)

    Trūksta operacinės sistemos (nėra operacinės sistemos).

Pasiskirstymo lentelės (4 eilutės po 16 baitų = 64 baitai) užima zoną nuo adresų 1BEh iki 1FDh

1 eilutė (16 baitų):

    Įkrovos vėliavėlė (80h - aktyvus / 00h - normalus skaidinys) - 1 baitas

    Pradinis fizinis skaidinio sektorius (galva, sektorius ir cilindras) - 3 baitai

    Skirsnio tipas -1 baitas

    Fizinio skaidinio sektoriaus pabaiga (galva, sektorius ir cilindras) - 3 baitai

    Sektorių skaičius prieš sekciją – 4 baitai

    Bendras sektorių skaičius šioje sekcijoje yra 4 baitai

Paskutiniai 2 baitai sektoriaus duomenų bloke nuo adresų 1FE iki 1FF – baigiamasis parašas

55AA – žymi MBR pabaigą. Patikrinta įkrovos įkrovos programa

MBR sritis, kuri pasikeitė FAT32, yra skaidinių lentelė. Jį, kaip ir anksčiau, sudaro keturi 16 baitų įrašai. Kiekvienas įrašas apibrėžia skyrių. FAT32 pristatė 2 naujus skaidinių tipus DOS32 (0B) ir DOS32X (OS).

Naujo kompiuterio su dideliu kietuoju disku ir modernia UEFI sąsaja savininkui gali būti gana paprasta pasirinkti vieną iš GPT arba MBR standartų.

Tokie parametrai reikalauja perėjimo prie modernesnio standarto.

Tuo tarpu, jei turite daugiau nei vieną kompiuterį, galite pasirinkti beveik pasenusį MBR – ir tai gali pasirodyti vienintelė galimybė.

Turinys:

Ką reiškia šie sutrumpinimai?

Prieš naudojant operacinei sistemai, sistemai ir kitai informacijai įrašyti, bet koks standusis diskas arba kietojo kūno diskas turi būti padalintas į skaidinius.

MBR standartas, kuris reiškia „Pagrindinis įkrovos įrašas“, atstovauja senas duomenų saugojimo būdas, GPT (arba „GUID skaidinių lentelė“) yra nauja.

Abu jie taip pat būtini norint saugoti informaciją apie kiekvieno skaidinio pradžią ir pabaigą, kurių dėka sistema atpažįsta sektorių vietą ir nustato, ar ši disko dalis yra paleidžiama, ar ne.

Nors MBR laikomas patikimu ir paprastu, o atkūrimas reikalingas retai.

Standarto trūkumai apima nesugebėjimas palaikyti didelio skaičiaus skaidinių yra nedidelis trūkumas iki 500 GB talpos HDD, tačiau terabaitų ar net 4 terabaitų modeliams jau gana rimtas.

Jei reikėjo sukurti daugiau nei 4 skaidinius, reikėjo naudoti gana sudėtingą EBR technologiją.

Antroji problema, susijusi su standžiųjų diskų tūrio didinimu, yra nesugebėjimas dirbti su didesniais nei 2,2 TB skaidiniais.

Naujojo standarto privalumai ir trūkumai

Patobulintas GPT standartas, kuris palaipsniui pakeičia MBR, yra UEFI technologijos dalis, kuri savo ruožtu pakeičia pasenusią BIOS sąsają.

Kiekvienas skyrius turi savo unikalus identifikatorius– labai ilga simbolių virtinė. GPT pranašumu, palyginti su pasenusiu standartu, galima pavadinti:

  • jokių apribojimų sekcijos tūriui. Tiksliau, maksimali vertė vis dar egzistuoja – tačiau jos pasiekti nepavyks anksčiau nei po kelių dešimtmečių;
  • neribotas sekcijų skaičius– iki 264 apskritai, iki 128 Windows OS.

Diske, kuris palaiko MBR standartą, skaidinio ir įkrovos duomenys yra toje pačioje vietoje. Jei ši disko dalis yra pažeista, kompiuterio vartotojas susiduria su daugybe problemų.

Kitas skirtumas tarp GPT yra ciklinio atleidimo kodo saugojimas, leidžiantis kontroliuoti duomenų saugumą.

Sugadinus informaciją, nedelsiant bandoma ją atkurti.

Naudodami MBR galite sužinoti apie problemą po to, kai sistema nustoja paleisti ir išnyksta jos skaidiniai.

Tarp standarto trūkumų verta paminėti ankstesnių technologijų palaikymo trūkumą - . Ir nors operacinė sistema su pasenusia sąsaja ją atpažįsta, tikimybė ją įkelti yra minimali. Be to, naudojant šią parinktį, negalite priskirti pavadinimų visiems diskams, taip pat skaidiniams, o duomenų atkūrimas ne visada pasiekiamas dėl pasikartojančių lentelių skaičiaus ir vietos apribojimų.

Suderinamumas

Bandydami sukonfigūruoti GPT diską naudodami tik MBR technologijas, niekur nepasieksite– taigi, apsauginė pagrindinio įkrovos įrašo versija apsaugo nuo atsitiktinio perrašymo ir skaidymo pagal seną standartą.

„Windows“ sistemos paleidžiamos iš diskų, pažymėtų naudojant GPT technologiją, tik įrenginiuose, kurie palaiko UEFI sąsają, ty nešiojamuosiuose ir asmeniniuose kompiuteriuose su „Windows“ nuo Vista iki 10.

Jei pagrindinės plokštės programinėje įrangoje yra , skaidiniai bus nuskaityti, bet greičiausiai paleidimas neįvyks.

Nors tos pačios operacinės sistemos gali dirbti su GPT diskais kaip informacijos saugykla.

Turėtumėte žinoti: GPT standartą palaiko ir kitos operacinės sistemos, įskaitant Linux. O Apple kompiuteriuose ši technologija pakeitė senąją APT skaidinių lentelę.


Standartų palyginimas

Norint įvertinti šių dviejų standartų panašumus ir skirtumus, jų veikimo galimybes, diskus ir įkrovos sąsają, verta sukurti nedidelę palyginimo lentelę.

Taip apsispręsti daug lengviau kokį skaidinio standartą naudoti savo kompiuteryje.

Lentelė 1. Lyginamosios MBR ir GPT charakteristikos
Standartinis MBR GPT
Darbas su programine įranga Su BIOS ir UEFITik su UEFI
Windows palaikymas Visos versijos, pradedant nuo pirmosTik 64 bitų Windows 7 ir Vista versijos, visi Windows 8 ir 10 variantai
Skaityti ir rašyti Bet kokios platformosVisos Windows operacinės sistemos nuo Vista ir naujesnės + XP Professional 64 bitų
Viename diske esančių skaidinių skaičius Ne daugiau kaip 4Iki 264
Maksimalus pertvaros dydis 2,2 TB9,4 x 109 TB
Integruotas daugiafunkcis įkroviklis NėraValgyk

Darbo su naujuoju standartu problemos ir jų sprendimai

Dviejų standartų egzistavimas gali sukelti tam tikrų problemų. Ypač jei kompiuteris neleidžia įkelti jokiu kitu būdu, išskyrus naudojant standųjį diską.

Situaciją galima ištaisyti pereinant prie, o tai neleidžia dirbti su nauju standartu - ir bandant paleisti ekrane pasirodo klaida, nurodanti, kad yra GPT skaidinio stilius.

Išspręsti problemą nėra taip sunku - norėdami tai padaryti, turėsite pasiimti įprastą įkrovos diską su Windows OS ir atlikite toliau nurodytus veiksmus:

  • Pradėkite paleisti iš disko;
  • nusigauti ten kol bus pasirinkta sekcija, kur iškyla problema;
  • Paleiskite konsolę(vienu metu paspauskite Shift ir F10);
  • Pradėti su specialia programa, įvesdami komandą diskpart.

Paleidus programą, turėtumėte įvesti „list disk“, ir ekrane pasirodys sunumeruotų diskų sąrašas.

Dabar tiesiog komandinėje eilutėje reikia įvesti „clean“, išvalyti nereikalingą informaciją ir pereiti prie standartų konvertavimo.

Kad GPT diskas būtų konvertuotas į seną formatą, turėtumėte įvesti komandą convert mbr, kuri leidžia dirbti su disku ir įdiegti jame bet kokią platformą.

Ta pati programa teikia darbą su pertvaromis.

Pavyzdžiui, įvedus komandą "sukurti skaidinį pirminis dydis = X" sukuria X GB dydžio skaidinį, „format fs=ntfs label=“greita sistema“ atlieka formatavimą į NTFS, o „aktyvus“ leidžia skaidiniui tapti aktyviam.

išvadas

Sprendžiant, kurį standartą naudoti, GPT ar MBR, turėtumėte nustatyti, kuri įkrovos sąsaja naudojama ir kokio dydžio kietasis diskas yra kompiuteryje.

Jei turite BIOS programinę įrangą, dirbti su GPT bus neįmanoma. Priešingai, modernesniam kompiuteriui neturėtumėte rinktis MBR.

Palyginti naujose pastaraisiais metais išleistose pagrindinėse plokštėse jau įdiegta UEFI sąsaja, vadinasi, problemų su GPT nekils.

Tačiau disko dydžiai šiek tiek padidinti– retas pirkėjas renkasi kompiuterius su didesniu nei 2 TB HDD ir, be to, reikia 2,2 terabaito skaidinių.

Dėl to Paprastam vartotojui kol kas ypatingų priežasčių rinktis šį standartą nėra– bet serveriui tai bus puikus pasirinkimas.

Vaizdo įrašas: