Ko izvēlēties - GPT vai MBR? Mēs izskaidrojam, kā standarti atšķiras. Windows instalēšana diskā, kas pārveidots no MBR uz GPT, nezaudējot datus nesistēmas nodalījumos Izveidojiet mbr nodalījumu

Pirms uzdodat jautājumu ar MBR saistītā pavedienā, lūdzu, izlasiet šo:

1. Kas ir MBR un kāpēc tas ir svarīgi datora darbībā?
Tulkojumā no angļu valodas MBR ir saīsinājums, kas nozīmē galvenais/galvenais sāknēšanas ieraksts vai galvenais sāknēšanas ieraksts. Šis ieraksts atrodas cietā diska pirmajā fiziskajā sektorā, un tam ir liela nozīme operētājsistēmas ielādēšanā vai, pareizāk sakot, izvēloties, no kura nodalījuma ielādēt operētājsistēmu. Tādējādi MBR satur informāciju par cietā diska nodalījumiem (sadaļu tabula). Kad dators tiek palaists, MBR tiek ielādēts BIOS atmiņā (Basic Input/Output System), kur tam tiek dota kontrole pār sistēmas ielādi vai, pareizāk sakot, izvēle, kuru nodalījumu aktivizēt. Tāpēc Acer sistēmā, lai izmantotu sistēmas atkopšanas sistēmu (eRecovery Management) no slēptā nodalījuma, datora sāknēšanas laikā (proti, kad parādās Acer logotips, kad POST) vienlaikus ir jānospiež taustiņi Alt-F10. Tiek veikta BIOS pārbaude). Šī taustiņu kombinācija ļauj MBR atlasīt pirmo nodalījumu (PQService) kā aktīvo nodalījumu. Kad dators sāk darboties normāli, otrais nodalījums paliek aktīvais nodalījums, kurā ir instalēta galvenā lietotāja operētājsistēma. Iepriekš redzamajā attēlā es mēģināju grafiski attēlot MBR darbības principu, kur var redzēt pirmo slēpto nodalījumu "PQService", otro nodalījumu ar instalēto sistēmu "C:" un trešo nodalījumu lietotāja datiem "D :".

Šeit ir parādīti diski ar trīs un četriem nodalījumiem (pēdējā gadījumā ir paslēpts ceturtais nodalījums ar Instant-On-Arcade "IOArcade", kas ļauj ielādēt multivides apvalku, neielādējot galveno operētājsistēmu).

2. Alt+F10 taustiņu kombinācija nedarbojas, kas man jādara?
Ja, nospiežot Alt+F10, nevarat palaist datoru no slēptā nodalījuma (ievadiet Acer eRecovery Management), tas nozīmē, ka oriģinālais Acer MBR ir jāaizstāj ar instalētās operētājsistēmas galveno sāknēšanas ierakstu. Lai instalētu sākotnējo MBR (no Acer) operētājsistēmā Windows XP, Vista, izmantojiet šo ielāpu (izpakojiet un palaidiet). Ja sistēma Windows 7 bija iepriekš instalēta, pēc izpakošanas palaidiet šo ielāpu. Pēc sistēmas restartēšanas mēģiniet vēlreiz nospiest Alt+F10.

3. Jūs esat izdzēsis slēpto(-s) nodalījumu(-us) un neplānojat izmantot Acer eRecovery Management. Ko darīt šajā gadījumā?
Pirmkārt, BIOS ir jāatspējo funkcija "D2D Recovery". Pēc tam varat pats instalēt operētājsistēmu vai izmantot atkopšanas diskus, kas tika piegādāti kopā ar datoru vai kurus izveidojāt, izmantojot programmu Acer eRecovery. Pēdējā gadījumā atkopšanas programma automātiski noteiks slēpta nodalījuma neesamību un instalēs sistēmu pirmajā nodalījumā, no kura pēc tam tiks palaists instalētā operētājsistēma.

Turklāt: lai atjaunotu Windows XP sāknēšanas ielādētāju (ja šī OS ir instalēta), izmantojiet šo utilītu. Esi uzmanīgs! Palaidiet failu tikai tad, ja ir instalēta sistēma Windows XP. Ja jums ir jāatjauno Windows Vista sāknēšanas ielādētājs, palaidiet šo utilītu.

Ja vēlaties labot MBR DOS vidē, utilīta mbrwrwin.exe nedarbosies. Izmantojiet šim nolūkam.

Mēs izsakām visus jautājumus šajā foruma tēmā:

Materiāls tika sagatavots speciāli vietnei http://site (autors – Gurjevs Deniss, GDenis)
e-pasts [aizsargāts ar e-pastu]
(materiāla modificēšana, kopēšana un izplatīšana tikai ar autora atļauju)

Viena no efektīvajām darbībām, lai novērstu Windows sāknēšanas problēmas, ir atjaunot Windows 10/7/8.1 sāknēšanas ierakstu, izmantojot jaunu UEFI un GPT nodalījumu vai BIOS ar MBR sadalīšanu. Viens no izplatītākajiem iemesliem, kāpēc galvenais sāknēšanas ieraksts var tikt bojāts, ir ļaunprātīgas programmatūras infekcija vai failu bojājums šajā sektorā. Nepareiza izslēgšana var izraisīt arī sāknēšanas ieraksta (MBR) bojājumu. Dažreiz problēmas rodas, ja ir instalēts Linux Grub un sistēma Windows to nevar noteikt. Dažos gadījumos jūs varat saņemt kļūdu Trūkst bootmgr vai BCD kad ieslēdzat datoru. Šādos gadījumos varat palaist sāknēšanas ielādes labošanu, lai novērstu šīs problēmas.

Kā atjaunot Windows 10 sāknēšanas ielādētāju

Jums jābūt gatavam, jo ​​jūsu dators netiks sāknēts uz darbvirsmas un papildu sāknēšanas opcijas var nebūt efektīvas. Tāpēc jums ir nepieciešama operētājsistēma Windows 10 ar tādu pašu bitu dziļumu (x32 vai x64), kuru gatavojaties labot, un vēlams to pašu versiju. Lai palaistu komandu uzvedni, no sāknējamā USB zibatmiņas diska ir jāielādē visas tālāk norādītās metodes. Atcerieties, ka pēc sāknēšanas ielādētāja atjaunošanas var parādīties dažas kļūdas, un jums tikai pāris reizes jārestartē dators, lai sāknēšanas ielādētājs pie tā pierastu.

Sāciet instalēt Windows 10 no sāknējama USB zibatmiņas diska un dodieties uz instalēšanas punktu. Pēc tam noklikšķiniet uz apakšas " Sistēmas atjaunošana", lai piekļūtu papildu sāknēšanas opcijām.

1. metode. Kad esat atradis papildu sāknēšanas opcijas, dodieties uz " " > "Papildu iespējas" > un atlasiet "". Pagaidiet, līdz process tiks pabeigts un Windows 10 sāknēšanas ielādei vajadzētu atkopties.

2. metode. Tajās pašās papildu sāknēšanas opcijās dodieties uz " Problēmu novēršana" > "Papildu iespējas" > un palaist " Komandrinda".


Pirmkārt, mēs pārliecināsimies, kurā vietējā diskā atrodas sistēma, kurā vēlamies atjaunot sāknēšanas ielādētāju. Lai to izdarītu, komandrindā palaidiet šādas trīs komandas, pēc katras nospiežot taustiņu Enter:

  1. diska daļa
  2. saraksta apjoms- parāda sadaļu sarakstu.
  3. Izeja- iziet no rīka darbam ar diskiem.

Manā gadījumā zemāk redzamais ekrānuzņēmums parāda, ka vietējais disks, kurā ir instalēta operētājsistēma Windows 10, nav “C”, bet gan “D”. Visticamāk, jums būs "C", taču esiet uzmanīgi, jums ir jānosaka, kur sistēma ir instalēta. Kad esat noskaidrojis, ar kādu burtu ir jūsu sistēma, ievadiet šo komandu, lai atjaunotu Windows 10 sāknēšanas ielādētāju:

  • bcdboot D:\windows

3. metode. Ja izmantojat Windows sistēmu ar jauno UEFI un GPT nodalījumu shēmu, jums jāatrod slēptais nodalījums ar FAT32 failu sistēmu (tas ir aptuveni 90-300 MB). Ja jums ir BIOS un MBR sadalīšana, failu sistēma būs NTFS (apmēram 500 MB). Manā gadījumā tas ir NTFS. Tas nozīmē, ka mēs palaižam komandrindu, izmantojot sāknējamu USB zibatmiņas disku, kā aprakstīts iepriekš, un ierakstām komandas:

  1. diska daļa- palaiž rīku darbam ar diskiem.
  2. saraksta apjoms- parāda sadaļu sarakstu.
  3. izvēlieties skaļumu 3- Izvēle paslēptas sējumi (manā gadījumā tas ir NTFS, iespējams, jums ir slēpts FAT32).
  4. formāts fs=ntfs vai formāts fs=fat32- atlasītā sējuma formatēšana (atkarībā no tā, kurš jums ir).
  5. piešķirt burtu=E- Mēs piešķiram tam jaunu burtu (es piešķīru to, kas jau bija).
  6. Izeja- iziet no diska nodalījuma rīka.
  7. bcdboot D:\Windows /s E: /f ALL- kopēt bootloader failus. (Manā gadījumā disks D: ir sējums, kurā atrodas pati Windows, E: ir burts, ko mēs piešķīrām slēptajam nodalījumam).
  8. diska daļa- palaiž atpakaļ diska rīku.
  9. saraksta apjoms- parādīt sadaļu sarakstu.
  10. izvēlieties skaļumu 3- Slēptā sējuma numurs, kuram mēs piešķīrām burtu.
  11. noņemt burtu=E- izdzēsiet burtu, lai nodalījums netiktu parādīts sistēmā, kad mēs pārstartējam.


4. metode. Šajā metodē mēs izmantosim rīku Bootrec.exe. Komandrindā vienu pēc otras ievadiet šādas komandas:

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

Izrakstieties un restartējiet sistēmu.


Dažos gadījumos jums būs jāpalaiž papildu komanda:

  • bootsect /nt60 SYS vai bootsect /nt60 ALL

Šajā sadaļā es jums parādīšu, kā izveidot savu vairāku sāknēšanas pārvaldnieku. Vairāku sāknēšanas pārvaldnieks ir kods, kas atrodas sāknēšanas sektorā, kas pēc lietotāja izvēles ielādē jebkuru no vairākām datorā instalētajām operētājsistēmām. Diskusijas laikā jūs iepazīsities ar INT 13h pārtraukumu, nodalījumu tabulu utt. Standarta sāknēšanas ielādētājs, ko lielākā daļa operētājsistēmu instalē pēc noklusējuma, ir pārāk primitīvs, lai to uztvertu nopietni, un trešo pušu izstrādātāju pielāgotie sāknēšanas ielādētāji parasti ir pārāk neveikli un neuzticami. Tāpēc rakstīsim paši! Kamēr mēs to rakstīsim, mēs iepazīsim Tao un Zen of assembler, uzzināsim, kā atkļūdot programmas bez atkļūdotāja, un tuvāk aplūkosim cietā diska zemā līmeņa saskarnes.

Interfeiss INT 13h

Varat pārvaldīt diskus gan caur I/O portiem, gan caur BIOS. Porti ir daudz jaudīgāki un interesantāki, taču BIOS ir daudz vieglāk programmējams, turklāt tā atbalsta lielu skaitu dažāda izmēra disku, abstrahējoties no katra konkrētā modeļa dizaina iezīmēm. Tāpēc mēs darbosimies caur to, vai precīzāk, caur pārtraukuma interfeisu INT 13h.

Funkcijas numurs tiek ievadīts AH reģistrā. Lasīšanas gadījumā tas ir vienāds ar divi. AL reģistrs ir atbildīgs par apstrādājamo sektoru skaitu. Tā kā mēs nolasīsim vienu sektoru katrai darbībai, mēs to ievietosim šeit. DH reģistrā tiek saglabāts galvas numurs, un DL diska numurs (80h ir pirmais cietais disks, 81h ir otrais utt.). CL reģistra vismazāk nozīmīgie pieci biti norāda sektora numuru, pārējie CL reģistra biti un astoņi CH reģistra biti norāda tā cilindra numuru, kuru vēlamies nolasīt. Reģistru pāris ES:BX norāda uz galamērķa bufera adresi. Tas arī viss, stingri ņemot. Pēc komandas INT 13h izpildes nolasītie dati nonāks buferī, un, ja rodas kļūda (piemēram, galva “paklup” uz BAD sektora), BIOS iestatīs pārnēsāšanas karogu, un mēs būsim spiesti. lai mēģinātu vēlreiz vai parādītu ekrānā skumju ziņojumu.

Šīs programmas montāžas valodas kods ir parādīts sarakstā 5.6.

Uzskaitījums 5.6. Kods, kas nolasa sāknēšanas sektoru vai paplašināto nodalījuma tabulu

MOV SI, 1BEh ; Dodieties uz pirmo sadaļu
MOV AX, CS ; ES iestatīšana
MOVES, AX
MOV BX, buf ; Bufera nobīde
...
read_all_partitions:
MOV AX, pumpurs ; Lasīt 1 sektoru no diska

MOV DH, ; Sākuma galvas numurs
MOV CX, ; Starta sektors ar cilindru INT 13h
JC kļūda; Lasīšanas kļūda
;Apstrādājiet lasīšanas sāknēšanas sektoru vai paplašināto nodalījuma tabulu
;===================================================================
;
CMP baits, 80h
JZ LOAD_BOOT ; Šis ir sāknēšanas sektors
; Mēs nododam tam kontroli
CMP baits, 05h
JZ LOAD_CHS_EXT ; Šī ir paplašināta nodalījuma tabula
; CHS formātā
CMP baits, 0Fh
JZ LOAD_LBA_EXT ; Šī ir paplašināta nodalījuma tabula
; LBA formātā
ADD SI, 10h ; Pāriesim pie nākamās sadaļas
CMP SI, 1EEh
JNA lasīt_visas_partīcijas ; Izlasiet visas sadaļas pa vienai
...buf rb 512 ; 512 baitu buferis

Sektora rakstīšana CHS režīmā notiek gandrīz tieši tāpat, tikai AH reģistrs ir nevis 02h, bet 03h. LBA režīmu ir daudz grūtāk izdomāt, taču mēs, tāpat kā īsti hakeri, to noteikti apgūsim.

Sektoru nolasa ar funkciju 42h(AH = 42h). DL reģistrā, tāpat kā iepriekš, ir diska numurs, bet DS:SI reģistru pāris norāda uz diska adreses paketi, kas ir tabulā aprakstītā formāta uzlabota struktūra. 5.4.

5.4. tabula. Adrešu pakešu formāts, ko izmanto sektoru lasīšanai un rakstīšanai LBA režīmā

Aizspriedums Tips Apraksts
00h BAITS Iepakojuma izmērs - 10h vai 18h
01h BAITS Lauks ir rezervēts, un tam ir jābūt nullei
02h VĀRDS Cik sektorus lasīt
04h DWORD 32 bitu galamērķa bufera adrese seg:offs formātā
08h QWORD Sākuma sektora numurs lasīšanai
10h QWORD Galamērķa bufera 64 bitu vienotā adrese. Izmanto tikai tad, ja 32 bitu adrese ir FFFF:FFFF

Kods, kas nolasa sektoru LBA režīmā, parasti izskatās kā parādīts sarakstā 5.7.

Uzskaitījums 5.7. Kods, kas nolasa sektoru no diska LBA režīmā

MOV DI, 1BEh ; Dodieties uz pirmo sadaļu
MOV AX, CS ; Uzstādīt...
MOV buf_seg ; ...segments
MOV EAX, ; Sadalījuma nobīde attiecībā pret
; sadaļas sākums
ADD EAX, EDI ; EDI jāsatur sektora numurs
; pašreizējais MBR
MOV ;
...
read_all_partitions:
MOV AN, 42h; Lasīt sektoru LBA režīmā
MOV DL, 80h ; Lasīt no pirmā diska
MOV SI, dap ; Adrešu pakešu nobīde INT 13h
JC kļūda; Lasīšanas kļūda
...
dap:
paketes_izmērs db 10h ; paketes izmērs 10h baiti
rezervēts db 00h ; "Stash" turpmākai paplašināšanai
N_SEC dw 01h ; Lasot vienu sektoru
buf_seg dw 00h ; Šeit tiks ievadīts galamērķa bufera segments
buf_off dw buf ; Galamērķa bufera nobīde
X_SEC dd 0 ; Šeit tiks ievadīts nolasāmā sektora numurs
dd 0; Tiešām neizmantota aste
; 64 bitu adrese
buf rb 512; 512 baitu buferis

Rakstīšana ir līdzīga lasīšanai, tikai AH reģistrā ir nevis 42h, bet 43h. AL reģistrs nosaka režīmu: ja bits 0 ir 1, BIOS neraksta, bet emulē to. 2. bits, kad tas ir iestatīts, iespējo pārbaudes ierakstīšanu. Ja AL reģistrs ir 0, tiek veikta noklusējuma parastā rakstīšana.

Tagad, kad esam kļuvuši apmierināti ar diska pārtraukumiem, pāriesim pie citu programmēšanas aspektu apspriešanas.

Bootloader koda izveide

Sāknēšanas ielādētājus vislabāk ieprogrammēt, izmantojot FASM. No montētāja viedokļa ielādētājs ir parasts binārs fails, kura maksimālais pieļaujamais izmērs ir 1BBh (443) baiti. Mazliet? Bet nesteigsimies ar secinājumiem. Katrs nodalījums vienmēr sākas no cilindra sākuma, kas nozīmē, ka starp MBR beigām un nodalījuma sākumu ir vismaz n brīvi sektori, kur n == sektori katrā celiņā. Gandrīz visiem mūsdienu cietajiem diskiem katrā celiņā ir 64 sektori, kas mums dod: 443 + 63*512 == 32 699 baiti jeb aptuveni 32 KB. Jā, šajā sējumā var ievietot pat grafisko interfeisu ar peli! Tomēr mēs to nedarīsim. Īsti hakeri strādā teksta režīmā ar komandrindu.

Kā jau minēts, BIOS ielādē MBR adresē 7C00h, tāpēc montāžas koda sākumā jābūt direktīvai ORG 7C00h un arī USE16, jo bootloader darbojas 16 bitu reālajā režīmā. Vēlāk, ja vēlaties, tas var pārslēgties uz aizsargātu režīmu, bet tas notiks vēlāk. Nekļūsim tādos džungļos.

Atklājot sāknēšanas nodalījumu (un to var noteikt pēc 80h karoga, kas atrodas nulles nobīdē no nodalījuma sākuma), sāknēšanas ielādētājam ir jānolasa šī nodalījuma pirmais sektors, ievietojot to atmiņā adresē 0000:7C00h, lai ir tieši virs sava ķermeņa. Bet tas vairs nav labi! Un, lai neizraisītu sistēmas avāriju, sāknēšanas ielādētājam iepriekš jāpārvieto korpuss uz citu adresi, kas parasti tiek darīts ar komandu MOVSB. Varat kopēt uz jebkuru no atmiņas adresēm - no 0080:0067h līdz 9FE00h. Atmiņai, kas atrodas zem 0080:0067h, labāk nepieskarties, jo šeit atrodas pārtraukumu vektori un BIOS sistēmas mainīgie, un ROM kartēšanas apgabals sākas no A000h un augstāk, tāpēc maksimālā pieejamā adrese ir A000h - 200h (sektora izmērs) = = 9FE00h.

Neaizmirstiet, ka nekad nevajadzētu pieskarties DL reģistram, jo ​​tajā ir sāknēšanas diska numurs. Dažos sāknēšanas ielādētājos ir kļūda, kas vienmēr tiek palaists no pirmā cietā diska, un tas ir laikā, kad BIOS ļauj mainīt sāknēšanas secību vairāk nekā 10 gadus, un tāpēc jebkurš disks var būt sāknējams.

Patiesībā FASM ir vienīgais man zināmais montētājs, kas tieši “sagremo” JMP 0000:7C00h tālsatiksmes zvanu komandu. Visi pārējie montieri padara to par izkropļotu: PUSH offset_of_target/PUSH segment_of_target/RETF . Šeit mēs nospiežam mērķa adreses segmentu un nobīdi uz steku un izpildām tālu RETF, kas mūs aizved uz vēlamo vietu. Varat arī izmantot pašmodificējošu kodu, saliekot JMP FAR komandu “manuāli” vai vienkārši ievietojot mērķa adresi tajā pašā segmentā ar avota adresi (piemēram, 0000:7C00h ? 0000:7E00h). Tomēr šīs pieejas ir nogurdinošas un nogurdinošas.

Kopumā mūsu iekrāvēja skelets izskatīsies kā parādīts sarakstā 5.8.

Uzskaitījums 5.8. Vienkārša sāknēšanas ielādētāja skelets, kas rakstīts FASM valodā

lietošana16
ORG 7C00h
CLD ; Kopēt no kreisās puses uz labo
; (pieaug adreses)
MOV SI,7C00h ; No kurienes kopēt
MOV DI,7E00h ; Kur kopēt
MOV CX, 200h ; Sektora garums
REP MOVSB; Kopēt
; // Atlasiet nodalījumu, kuru vēlamies ielādēt,
; // nolasa to atmiņā pēc adreses 0000:7C00h
; // (sk. 5.7. un 5.6. sarakstu)
JMP 0000:7C00h ; Vadības nodošana sāknēšanas sektoram

Ierakstiet sāknēšanas ielādētāju galvenajā sāknēšanas ierakstā

Izmantojot veco MS-DOS, bija viegli ierakstīt sāknēšanas ielādētāju MBR. Lai to izdarītu, vienkārši izvelciet INT 13h pārtraukumu, funkciju 03h (sektora rakstīšana). Bet operētājsistēmā Windows NT šī metode vairs nedarbojas, un jums ir jāizmanto funkcija CreateFile. Ja atveramā faila nosaukuma vietā norādām ierīces nosaukumu, piemēram, .PHYSICALDRIVE0 (pirmais fiziskais disks), varam brīvi lasīt un rakstīt tā sektorus, attiecīgi izsaucot ReadFile un WriteFile. Šādā gadījumā karoga dwCreationDisposition vērtībai ir jābūt iestatītai uz vērtību OPEN_EXISTING un karogam dwShareMode uz FILE_SHARE_WRITE vērtību. Jums būs nepieciešamas arī sistēmas administratora tiesības, pretējā gadījumā nekas nedarbosies.

Pabeigts CreateFile izsaukuma piemērs izskatās kā saraksts 5.9.

Uzskaitījums 5.9. Tiešās piekļuves atvēršana cietajam diskam operētājsistēmā Windows NT

XOR EAX, EAX
PUSH EAX ; hTemplateFile
PUSH dword FILE_ATTRIBUTE_NORMAL ; dwFlagsUnAttributes
PUSH dword OPEN_EXISTING ; dwCreationDisposition
PUSH EAX ; lpSecurityAttributes
PUSH dword FILE_SHARE_WRITE ; dwShareMode
PUSH dword (GENERIC_WRITE VAI GENERIC_READ) ; dwDesiredAccess
PUSH DEVICE_NAME ; Ierīces nosaukums
CALL CreateFile ; Ierīces atvēršana
INC EAX
PĀRBAUDE EAX,EAX
JZ kļūda
DEC EAX
...
DEVICE_NAME db ".PHYSICALDRIVE0",0
BUF RB 512; Buferis

Atverot fizisko disku un pārliecinājušies, ka šī darbība bija veiksmīga, mums buferī jānolasa sākotnējais MBR sektors, jāpārraksta pirmie 1BBh baiti, nekādā veidā nepieskaroties nodalījuma tabulai un 55h AAh parakstam (mēs nevēlamies disks, lai apturētu sāknēšanu, vai ne? Tagad atliek tikai uzrakstīt atjaunināto MBR kodu un aizvērt ierīces deskriptoru. Pēc pārstartēšanas visas izmaiņas stāsies spēkā.

Piezīme

Tiesa, pilnīgi iespējams, ka jūsu veiktās izmaiņas pat nedomās stāties spēkā. Iekrāvējs brutāli atriebjas par mazākajām dizaina kļūdām. Tāpēc, lai nezaudētu savu nodalījumu saturu, labāk vispirms vingrināties VMWare vai jebkurā citā datora emulatorā.

Operētājsistēmā Windows 9 x Protams, CreateFile triks nedarbojas. Bet tur jūs varat izmantot pārtraukumu simulāciju no DMPI vai izmantot ASPI draiveri. Abas metodes tika sīki aprakstītas manā grāmatā "Paņēmieni kompaktdisku aizsardzībai pret kopēšanu". Tomēr, lai gan tas runā par kompaktdiskiem, nevis HDD, cietie diski tiek ieprogrammēti tādā pašā veidā.

Pirms rakstīt savu bootloader, ieteicams izpētīt esošos nestandarta bootloader. Visi zemāk uzskaitītie sāknēšanas ielādētāji tiek izplatīti saskaņā ar GPL vai BSD licenci, tas ir, bez ierobežojumiem.

Ge2000.asm ir rūpīgi komentēts Stealth vīruss, kas sistēmas sāknēšanas ielādētāju aizstāj ar savu. Lai gan tas ir vīruss, tas nav bīstams un to var izmantot izglītības nolūkos.

Mbr.asm ir ārkārtīgi vienkāršs, bet pilnībā funkcionāls sāknēšanas ielādētājs ar atbalstu starpsienām, kuru lielums pārsniedz 8 GB.

Bootasm ir lielisks vairāku sāknēšanas pārvaldnieks ar detalizētiem komentāriem, pāriet aizsargātā režīmā, var sāknēt no disketes, kompaktdiska, zip diska, cietā diska utt. Tā atbalsta nodalījumus, kuru lielums pārsniedz 8 GB, parāda ielādes indikatoru un veic daudzas citas noderīgas lietas, kuras nenāktu par ļaunu iemācīties.

Bootloader koda atkļūdošana

Bootloader koda atkļūdošana ir neticami sarežģīta. Sāknēšanas ielādētājs iegūst kontroli ilgi pirms operētājsistēmas palaišanas, kad vēl nedarbojas neviens atkļūdotājs. Pirms dažiem gadiem tā bija milzīga problēma, un, izstrādājot “sarežģītus” iekrāvējus, bija vai nu tajos jāiebūvē integrēts mini atkļūdotājs, vai arī jāmeklē kļūdas manuāli, pētot sarakstus ar zīmuli rokā. Līdz ar emulatoru parādīšanos viss mainījās. Vienkārši palaidiet emulatoru, piemēram, BOCHS (5.5. att.), un jūs varat atkļūdot sāknēšanas ielādētāju tāpat kā jebkuru citu programmu!


Rīsi. 5.5. BOCHS emulatora izskats sāknēšanas sektora atkļūdošanas procesā

Bootloader programmēšana ir viena no nedaudzajām jomām, kurā montētāja izmantošana ir patiesi pamatota. Augsta līmeņa valodas tam ir pārāk abstrahētas no aparatūras. Turklāt tie nav pietiekami elastīgi. Tāpēc hakeriem patīk ķerties pie sāknēšanas ielādētājiem, pievienojot daudzas jaunas funkcijas, tostarp automātisko sāknēšanu no CD-ROM vai SCSI diskdziņiem, pretvīrusu, paroles aizsardzību ar datu šifrēšanu utt. Šeit tiešām ir kur izvērsties, un ir ar ko parādīt visas savas spējas. Tālākai lasīšanai es ieteiktu dažus ļoti interesantus avotus. Šeit tie ir:

? MBR un OS sāknēšanas ieraksti- daudz interesantu materiālu par MBR (angļu valodā): http://thestarman.narod.ru/asm/mbr/MBR_in_detail.htm;

? BOCHS- lielisks emulators ar iebūvētu atkļūdotāju, kas ievērojami vienkāršo sāknēšanas sektoru “nodošanas ekspluatācijā” procesu. Bezmaksas, izplatīts ar pirmkodu: http://bochs.sourceforge.net;

? http://www.koders.com(5.6. att.) - lieliska meklētājprogramma, kuras mērķis ir meklēt avota kodus, izmantojot atslēgvārdu MBR, tas atgriež milzīgu skaitu sāknēšanas programmu katrai gaumei;


Rīsi. 5.6. Meklējiet MBR sāknēšanas ielādes avotus Koders vietnē

? Ralfa Brauna pārtraukumu saraksts(5.7. att.) - slavenais Ralfa Brauna “Pārtraukumu saraksts”, kurā aprakstīti visi pārtraukumi, ieskaitot nedokumentētos (angļu valodā): http://www.pobox.com/~ralf;


Rīsi. 5.7. Skatiet Ralfa Brauna leģendāro "Pārtraukšanas sarakstu"

OpenBIOS ir "Open BIOS" projekts, kas tiek izplatīts avota kodā. Palīdz izprast dažus nepārprotamus sistēmas sāknēšanas ielādes apstrādes aspektus: http://www.openbios.info/docs/index.html.

Cieto disku formatēšana tiek veikta trīs soļos:

    zema līmeņa formatēšana (diska fiziskais izkārtojums cilindros, celiņos, sektoros);

    diska sadalīšana nodalījumos (loģiskās ierīces):

    katras sadaļas augsta līmeņa (loģiskais) formatējums.

Zema līmeņa formatēšanas stadijā procesors, izpildot formatēšanas programmu, pārmaiņus nosūta komandu “Meklēt” cietā diska kontrollerim, lai vispirms uzstādītu diskdziņa galviņas vajadzīgajā cilindrā, un pēc tam nosūta komandu “Format Track”. Izpildot komandu “Format track”, cietā diska kontrolleris, saņēmis “Index” impulsu (celiņa sākumu) no diska, ieraksta celiņa servisa formātu, kas sadala to sektoros. Katrs sektors satur datu bloku (512 baiti), ko ierāmē sektora pakalpojuma formāts (pakalpojuma formāta saturu un lielumu nosaka konkrētais ierīces izstrādātājs). Celiņu un sektoru servisa formāts ir nepieciešams cietā diska kontrollerim, izpildot komandas. Nolasot un atšifrējot servisa formāta laukus, kontrolieris diskā sektora iekšienē atrod vajadzīgo cilindru, virsmu, sektoru un datu bloku. Nākamajos formatēšanas posmos sistēmas informācija tiek ierakstīta vairāku nozaru datu blokos, kas nodrošina diska nodalījumu organizēšanu, operētājsistēmas automātisku ielādi un failu sistēmas atbalstu diskā.

Diska sadalīšanas nodalījumos posmā diska pirmā fiziskā sektora datu blokā (cilindrs 0, virsma 0, sektors 1) no adreses 1BEh tiek veidota nodalījumu tabula, kas sastāv no 4 sešpadsmit baitu rindām. Parasti sistēmas informāciju, kas formatēšanas procesa laikā ierakstīta šī sektora datu blokā, sauc par galveno sāknēšanas ierakstu (MBR).

No paša šī sektora datu bloka sākuma ir programma (IPL 1). Procesors pārslēdzas uz programmu IPL 1 pēc veiksmīgas POST un programmas “Bootloader” pabeigšanas, kuru izpildes procesors ielādē no diska MBR atmiņā un nodod vadību uz MBR sākumu (programmai IPL 1) , turpinot darbības, kas noved pie operētājsistēmas ielādes. Programma IPL 1 (sāknēšanas ielādētājs), kas atrodas MBR, meklē nodalījumu tabulas rindas, meklējot aktīvu nodalījumu, no kura var sāknēt operētājsistēmu. Ja nodalījuma tabulā nav aktīva nodalījuma, tiek parādīts kļūdas ziņojums. Ja vismaz vienā nodalījumā ir nepareiza etiķete vai ja vairāk nekā viens nodalījums ir atzīmēts kā aktīvs, tiek parādīts kļūdas ziņojums Nederīga nodalījuma tabula un sāknēšanas process tiek apturēts. Ja tiek atklāts aktīvs nodalījums, tiek analizēts šī nodalījuma sāknēšanas sektors. Ja tiek atrasts tikai viens aktīvs nodalījums, tad tā sāknēšanas sektora (BOOT) datu bloka saturs tiek nolasīts atmiņā adresē 0000:7C00 un vadība tiek pārsūtīta uz šo adresi, ja netiek nolasīts aktīvā nodalījuma sāknēšanas sektors piecos mēģinājumos tiek parādīts kļūdas ziņojums: Kļūda ielādējot operētājsistēmu un sistēma apstājas; tiek pārbaudīts aktīvā nodalījuma nolasītā sāknēšanas sektora paraksts un, ja tā pēdējie divi baiti neatbilst parakstam 55AAh, tiek parādīts kļūdas ziņojums: Trūkst operētājsistēmas un sistēma apstājas). Procesors nolasa JMP komandu adresē 0000:7С00, izpildot to, nodod vadību uz IPL 2 programmas sākumu, kas pārbauda, ​​vai nodalījums tiešām ir aktīvs: IPL 2 pārbauda divu saknes direktorijā esošo failu nosaukumus un paplašinājumus - tiem jābūt failiem IO.SYS un MSDOS.SYS (NTLDR operētājsistēmai Windows NT), ielādē tos un. utt.

Operētājsistēmas Windows 9x pamatā ir daudzi no tiem pašiem jēdzieniem kā DOS, taču tie ir tālāk un loģiski. Tie paši divi sistēmas faili IO.SYS un MSDOS.SYS, taču tagad visa sistēmas programma atrodas IO.SYS, un otrajā failā MSDOS.SYS ir ASCII teksts ar iestatījumiem, kas kontrolē sistēmas darbību sāknēšanas laikā. Himem.sys programmu ekvivalenti. Programma IO.SYS automātiski ielādē Ifshlp.sys un Setver.exe, kad sistēma tiek startēta. Tāpat kā iepriekš, varat izmantot Config.sys un Autoexec.bat failus, lai ielādētu atmiņā draiverus un pastāvīgās programmas, bet 32 ​​bitu ierīču draiveri, kas paredzēti īpaši operētājsistēmai Windows 9x, tagad tiek ielādēti, izmantojot ierakstus sistēmas reģistrā. Kad visi priekšdarbi ir paveikti, Win.com fails tiek palaists un Windows 9x sāknējas un nodrošina savas iespējas, izmantojot grafisko izvēlni.

Sistēmas reģistrs ir datu bāze, kurā Windows 9x glabā informāciju par visiem iestatījumiem, konfigurācijas iestatījumiem un parametriem, kas nepieciešami savu moduļu un atsevišķu lietojumprogrammu darbībai. Sistēmas reģistrs kopā veic Config.sys, Autoexec.bat un Windows 3.1 ini failu funkcijas. Jūsu datora diskā reģistrs tiek glabāts divos atsevišķos failos: System.dat un User.dat. Pirmajā no tiem ir visa veida aparatūras iestatījumi, bet otrajā ir dati par sistēmā strādājošajiem lietotājiem un viņu izmantotajām konfigurācijām. Katram lietotājam var būt savs User.dat fails, t.i. savu darba vidi, kuru viņš pielāgo savai gaumei un vajadzībām. Sistēmas reģistru var importēt, eksportēt, kā arī izveidot rezerves kopijas un, izmantojot tās, atjaunot saglabātos datus - vārdu sakot, tas ir diezgan spēcīgs mehānisms sistēmas parametru pārvaldīšanai un aizsardzībai pret zaudējumiem un bojājumiem.

3. tabula. MBR komponenti

Novads

Apraksts

IPL programma 1 (sāknēšanas ielādēšanas programma aizņem apgabalu no adreses 00h līdz 1BEh)

Kļūdu ziņojumu programmas kods:

    Nederīga nodalījuma tabula (nepareiza nodalījuma tabula).

    Kļūda, ielādējot operētājsistēmu (kļūda, ielādējot operētājsistēmu)

    Trūkst operētājsistēmas (nav operētājsistēmas).

Sadalījumu tabulas (4 rindas pa 16 baitiem katra = 64 baiti) aizņem zonu no adresēm 1BEh līdz 1FDh

1 rindiņa (16 baiti):

    Sāknēšanas karodziņš (80h - aktīvs / 00h - normāls nodalījums) - 1 baits

    Sadaļas sākuma fiziskais sektors (galva, sektors un cilindrs) - 3 baiti

    Sadalījuma veids -1 baits

    Nodalījuma fiziskā sektora beigu daļa (galva, sektors un cilindrs) - 3 baiti

    Sektoru skaits pirms sadaļas - 4 baiti

    Kopējais sektoru skaits šajā sadaļā ir 4 baiti

Pēdējie 2 baiti sektora datu blokā no adresēm 1FE līdz 1FF — beigu paraksts

55AA - iezīmē MBR beigas. Pārbaudīja sāknēšanas programma

MBR apgabals, kas tika mainīts FAT32, ir nodalījumu tabula. Tas, tāpat kā iepriekš, sastāv no četriem 16 baitu ierakstiem. Katrs ieraksts nosaka sadaļu. FAT32 ieviesa 2 jaunus nodalījumu veidus DOS32 (0B) un DOS32X (OS).

Jauna datora ar lielu cieto disku un modernu UEFI interfeisu īpašniekam izvēlēties kādu no GPT vai MBR standartiem var būt pavisam vienkārši.

Šādi parametri prasa pāreju uz modernāku standartu.

Tā kā, ja jums ir vairāk nekā viens dators, izvēle var būt par labu gandrīz novecojušam MBR - un tā var izrādīties vienīgā iespēja.

Saturs:

Ko nozīmē šie saīsinājumi?

Jebkurš cietais disks vai cietvielu disks ir jāsadala, pirms to izmanto operētājsistēmas, sistēmas un citas informācijas ierakstīšanai.

MBR standarts, kas apzīmē "galvenais sāknēšanas ieraksts", pārstāv vecais datu glabāšanas veids, GPT (vai "GUID nodalījumu tabula") ir jauns.

Abi ir nepieciešami arī, lai saglabātu informāciju par katra nodalījuma sākumu un beigām, pateicoties kuriem sistēma atpazīst sektoru atrašanās vietu un nosaka, vai šī diska daļa ir sāknējama vai nav.

Lai gan MBR tiek uzskatīts par uzticamu un vienkāršu, un atkopšana ir nepieciešama reti.

Standarta trūkumi ietver nespēja atbalstīt lielu skaitu nodalījumu ir neliels trūkums HDD līdz 500 GB lieliem, bet tas jau ir diezgan nopietns terabaitu vai pat 4 terabaitu modeļiem.

Ja bija nepieciešams izveidot vairāk nekā 4 nodalījumus, bija jāizmanto diezgan sarežģīta EBR tehnoloģija.

Otra problēma, kas saistīta ar cieto disku apjoma palielināšanu, ir nespēja strādāt ar nodalījumiem, kas lielāki par 2,2 TB.

Jaunā standarta priekšrocības un trūkumi

Uzlabotais GPT standarts, kas pakāpeniski aizstāj MBR, ir daļa no UEFI tehnoloģijas, kas, savukārt, aizstāj novecojušo BIOS saskarni.

Katrai sadaļai ir savs unikāls identifikators– ļoti gara rakstzīmju virkne. GPT priekšrocības salīdzinājumā ar novecojušo standartu var saukt:

  • nav ierobežojumu sadaļas apjomam. Precīzāk, maksimālā vērtība joprojām pastāv - taču to nebūs iespējams sasniegt ātrāk kā pēc vairākiem gadu desmitiem;
  • neierobežots sadaļu skaits– līdz 264 kopumā, līdz 128 operētājsistēmai Windows.

Diskā, kas atbalsta MBR standartu, nodalījumi un sāknēšanas dati atrodas tajā pašā vietā. Ja šī diska daļa ir bojāta, datora lietotājs saskaras ar vairākām problēmām.

Vēl viena atšķirība starp GPT ir cikliskās dublēšanas koda glabāšana, kas ļauj kontrolēt datu drošību.

Informācijas bojājums liek nekavējoties mēģināt to atjaunot.

Izmantojot MBR, jūs varat uzzināt par problēmu pēc tam, kad sistēma ir pārtraukusi sāknēšanu un tās nodalījumi ir pazuduši.

Starp standarta trūkumiem ir vērts atzīmēt iepriekšējo tehnoloģiju atbalsta trūkumu - . Un, lai gan operētājsistēma ar novecojušu saskarni to atpazīst, tās ielādes iespējamība ir minimāla. Turklāt, izmantojot šo opciju, nevar piešķirt nosaukumus visiem diskiem, kā arī nodalījumiem, un datu atkopšana ne vienmēr ir pieejama dublēto tabulu skaita un atrašanās vietas ierobežojumu dēļ.

Saderība

Mēģinot konfigurēt GPT disku, izmantojot tikai MBR tehnoloģijas, jūs nekur nenovedīsit– tādējādi galvenā sāknēšanas ieraksta aizsargājošā versija novērš nejaušu pārrakstīšanu un sadalīšanu saskaņā ar veco standartu.

Windows sistēmas sāknējas no diskiem, kas atzīmēti, izmantojot GPT tehnoloģiju, tikai ierīcēs, kas atbalsta UEFI interfeisu - tas ir, klēpjdatoros un personālajos datoros ar Windows no Vista līdz 10.

Ja mātesplates programmaparatūra satur , nodalījumi tiks nolasīti, bet sāknēšana, visticamāk, nenotiks.

Lai gan šīs pašas operētājsistēmas spēj strādāt ar GPT diskiem kā informācijas krātuvi.

Jums vajadzētu zināt: GPT standartu atbalsta arī citas operētājsistēmas, tostarp Linux. Un Apple datoros šī tehnoloģija aizstāja veco APT nodalījumu tabulu.


Standartu salīdzinājums

Lai novērtētu abu standartu līdzības un atšķirības, to darbības iespējas, diskus un sāknēšanas interfeisu, ir vērts izveidot nelielu salīdzināšanas tabulu.

Tas ievērojami atvieglo lēmuma pieņemšanu kādu nodalījuma standartu izmantot savam datoram.

Tabula 1. MBR un GPT salīdzinošās īpašības
Standarta MBR GPT
Darbs ar programmaparatūru Ar BIOS un UEFITikai ar UEFI
Windows atbalsts Visas versijas, sākot no pašas pirmāsTikai 64 bitu Windows 7 un Vista versijas, visi Windows 8 un 10 varianti
Lasi un raksti Jebkuras platformasVisas Windows operētājsistēmas no Vista un jaunākas versijas + XP Professional 64-bit
Sadalījumu skaits vienā diskā Ne vairāk kā 4Līdz 264
Maksimālais nodalījuma izmērs 2,2 TB9,4 x 109 TB
Iebūvēts multibooter Nav klātĒst

Problēmas darbā ar jauno standartu un to risinājumi

Divu standartu esamība var radīt zināmas problēmas. It īpaši, ja dators neļauj ielādēt ar citu metodi, izņemot cietā diska izmantošanu.

Situāciju var labot, pārejot uz, kas neļauj strādāt ar jauno standartu - un, mēģinot palaist, ekrānā parādās kļūda, kas norāda uz GPT nodalījuma stila esamību.

Problēmas risināšana nav tik sarežģīta - lai to izdarītu, jums būs nepieciešams parasts sāknēšanas disks ar Windows OS un rīkojieties šādi:

  • Sāciet sāknēšanu no diska;
  • nokļūt tur līdz sadaļa ir atlasīta, kur parādās problēma;
  • Palaidiet konsoli(vienlaikus nospiediet Shift un F10);
  • Sāc ar īpašu utilītu, ievadot komandu diskpart.

Pēc programmas palaišanas jums jāievada “list disk”, kas novedīs pie numurētu disku saraksta, kas tiks parādīts ekrānā.

Tagad jums vienkārši jāievada "tīrs" komandrindā, notīrot nevajadzīgo informāciju, un pāriet uz standartu konvertēšanu.

Lai GPT disks tiktu konvertēts uz novecojušu formātu, jums jāievada komanda convert mbr, kas ļauj strādāt ar disku un instalēt uz tā jebkuru platformu.

Tā pati utilīta nodrošina darbu ar starpsienām.

Piemēram, ievadot komandu "izveidot nodalījumu primārais izmērs = X" izveido X GB lielu nodalījumu, “format fs=ntfs label=”Sistēma” ātri” veic formatēšanu NTFS, un "aktīvs" ļauj nodalījumam kļūt aktīvam.

secinājumus

Izlemjot, kuru standartu izmantot, GPT vai MBR, ir jānosaka, kurš sāknēšanas interfeiss tiek izmantots un kāda izmēra cietais disks ir datorā.

Ja jums ir BIOS programmaparatūra, darbs ar GPT nebūs iespējams. Mūsdienīgākam datoram, kas aprīkots ar, gluži pretēji, nevajadzētu izvēlēties MBR.

Salīdzinoši jaunajās pēdējos gados izlaistajās mātesplatēs jau ir uzstādīts UEFI interfeiss, kas nozīmē, ka ar GPT problēmu nebūs.

Tomēr disku izmēri nedaudz palielināties– retais pircējs izvēlas datorus ar cietajiem diskiem, kas lielāki par 2 TB un turklāt nepieciešami 2,2 terabaitu nodalījumi.

Šī dēļ Pagaidām vidusmēra lietotājam nav īpašu iemeslu izvēlēties šo standartu– bet serverim tas būs lielisks risinājums.

Video: