Sectorul de încărcare - Boot sector

Acest exemplu arată diferite componente ale GNU GRUB distribuite pe sectoare ale unui hard disk. Când GRUB este instalat pe un hard disk, boot.img este scris în sectorul de boot al acelui hard disk. boot.img are o dimensiune de numai 446 octeți.

Un sector de boot este sectorul unui dispozitiv de stocare a datelor persistent (de exemplu, hard disk , dischetă , disc optic etc.) care conține codul mașinii pentru a fi încărcat în memoria cu acces aleatoriu (RAM) și apoi executat de un sistem computerizat ' s firmware încorporat (de exemplu, BIOS - ul ).

De obicei, primul sector al hard disk-ului este sectorul de pornire, indiferent de dimensiunea sectorului (512 sau 4096 octeți) și aroma de partiționare (MBR sau GPT).

Scopul definirii unui anumit sector ca sector de boot este interoperabilitatea între diferite firmware-uri și diferite sisteme de operare.

Scopul încărcării în lanț mai întâi a unui firmware (de exemplu, BIOS-ul), apoi a unui anumit cod conținut în sectorul de încărcare și apoi, de exemplu, a unui sistem de operare, este flexibilitatea maximă.

PC-ul IBM și computerele compatibile

Pe un computer compatibil IBM PC , BIOS - ul selectează un dispozitiv de boot, apoi copiază primul sector de pe dispozitiv (care poate fi un MBR , VBR sau orice cod executabil), în memoria fizică la adresa de memorie 0x7C00. Pe alte sisteme, procesul poate fi destul de diferit.

Interfață Unified Extensible Firmware (UEFI)

UEFI (nu moștenire de boot prin CSM) nu se bazează pe sectoare de încărcare, încărcarea sistemului UEFI bootloader ( aplicație EFI fișier în disc USB sau în partiția de sistem EFI ) în mod direct. În plus, specificația UEFI conține, de asemenea, „boot sigur”, care, în principiu, dorește ca codul UEFI să fie semnat digital .

Deteriorarea sectorului de încărcare

În cazul în care un sector de încărcare primește daune fizice, hard diskul nu va mai putea fi pornit; dacă nu este utilizat cu un BIOS personalizat, care definește un sector nedeteriorat ca sector de boot. Cu toate acestea, deoarece primul sector conține în plus date referitoare la partiționarea hard diskului, hard diskul va deveni complet inutilizabil, cu excepția cazului în care este utilizat împreună cu software-ul personalizat.

Tabelele de partiții

Un disc poate fi partiționat în mai multe partiții și, pe sistemele convenționale, este de așteptat să fie. Există două definiții cu privire la modul de stocare a informațiilor referitoare la partiționare:

  • O înregistrare master boot (MBR) este primul sector al unui dispozitiv de stocare a datelor care a fost partiționat . Sectorul MBR poate conține cod pentru a localiza partiția activă și a invoca înregistrarea volumului de încărcare.
  • O înregistrare de încărcare în volum (VBR) este primul sector al unui dispozitiv de stocare a datelor care nu a fost partiționat sau primul sector al unei partiții individuale pe un dispozitiv de stocare a datelor care a fost partiționat. Poate conține cod pentru a încărca un sistem de operare (sau alt program independent) instalat pe acel dispozitiv sau în acea partiție.

Prezența unui încărcător de încărcare compatibil IBM PC pentru procesoare x86 în sectorul de încărcare este, prin convenție, indicată printr-o secvență hexazecimală de doi octeți 0x55 0xAA(numită semnătura sectorului de încărcare) la sfârșitul sectorului de încărcare (offsets 0x1FEși 0x1FF). Această semnătură indică prezența a cel puțin unui încărcător de boot fals care poate fi executat în siguranță, chiar dacă este posibil să nu poată încărca efectiv un sistem de operare. Nu indică un sistem de fișiere sau un sistem de operare anume (sau chiar prezența) , deși unele versiuni vechi ale DOS 3 s-au bazat pe acesta în procesul lor pentru a detecta suportul formatat FAT (versiunile mai noi nu). Codul de pornire pentru alte platforme sau procesoare nu ar trebui să utilizeze această semnătură, deoarece acest lucru poate duce la o blocare atunci când BIOS-ul trece executarea către sectorul de pornire presupunând că acesta conține cod executabil valid. Cu toate acestea, unele suporturi pentru alte platforme conțin în mod eronat semnătura, oricum, ceea ce face ca această verificare să nu fie 100% fiabilă în practică.

Semnătura este verificată de majoritatea BIOS-urilor de sistem, deoarece (cel puțin) IBM PC / AT (dar nu de IBM PC original și de alte mașini). Cu atât mai mult, este verificat și de majoritatea încărcătoarelor de încărcare MBR înainte de a trece controlul către sectorul de încărcare. Unele BIOS-uri (cum ar fi IBM PC / AT) efectuează verificarea numai pentru discurile fixe / unitățile amovibile, în timp ce pentru dischete și superflopii, este suficient să începeți cu un octet mai mare sau egal cu 06hși primele nouă cuvinte să nu conțină aceeași valoare , înainte ca sectorul de boot este acceptat ca fiind valabil, evitându -se astfel testul explicit pentru 0x55, 0xAApe dischete. Deoarece sectoarele de boot vechi (de exemplu, suporturi CP / M-86 și DOS foarte vechi) uneori nu prezintă această semnătură în ciuda faptului că pot fi pornite cu succes, verificarea poate fi dezactivată în unele medii. Dacă codul BIOS sau MBR nu detectează un sector de boot valid și, prin urmare, nu poate trece executarea codului sectorului de boot, va încerca următorul dispozitiv de boot din rând. Dacă toate nu reușesc, acesta va afișa de obicei un mesaj de eroare și va invoca INT 18h. Acest lucru va porni software-ul rezident opțional în ROM ( ROM BASIC ), va reporni sistemul prin INT 19h după confirmarea utilizatorului sau va determina sistemul să oprească procesul de bootstrapping până la următoarea pornire.

Sistemele care nu urmează designul descris mai sus sunt:

  • CD-ROM-urile au de obicei propria structură a sectoarelor de boot; pentru sistemele compatibile cu computerele IBM , acest lucru este supus specificațiilor El Torito .
  • Software- ul C128 sau C64 pe discurile Commodore DOS unde datele de pe Track 1, Sector 0 au început cu un număr magic corespunzător șirului „CBM”.
  • Computerele mainframe IBM plasează o cantitate mică de cod de pornire în prima și a doua pistă a primului cilindru al discului, iar directorul rădăcină, numit Cuprins volum , este, de asemenea, situat în locația fixă ​​a celei de-a treia piste a primei cilindrul discului.
  • Alte sisteme PC (care nu sunt compatibile cu IBM) pot avea diferite formate de sector de boot pe dispozitivele lor de pe disc.

Operațiune

Pe mașinile compatibile cu computerele IBM , BIOS nu cunoaște distincția dintre VBR și MBR și partiționarea. Firmware-ul încarcă și rulează pur și simplu primul sector al dispozitivului de stocare. Dacă dispozitivul este o dischetă sau o unitate flash USB , acesta va fi un VBR. Dacă dispozitivul este un hard disk, acesta va fi un MBR. Codul din MBR înțelege în general partiționarea discului și, la rândul său, este responsabil pentru încărcarea și rularea VBR a oricărei partiții primare care este setată să pornească ( partiția activă ). VBR încarcă apoi un bootloader în a doua etapă dintr-o altă locație de pe disc.

Mai mult, orice este stocat în primul sector al unei dischete, dispozitiv USB, hard disk sau orice alt dispozitiv de stocare bootabil , nu este necesar pentru a încărca imediat niciun cod bootstrap pentru un sistem de operare, dacă vreodată. BIOS-ul doar trece controlul la orice există acolo, atâta timp cât sectorul îndeplinește calificarea foarte simplă de a avea semnătura înregistrării de boot de 0x55, 0xAA în ultimii doi octeți. Acesta este motivul pentru care este ușor să înlocuiți codul de bootstrap obișnuit găsit într-un MBR cu încărcătoare mai complexe, chiar și mari administratori multifuncționali de boot (programe stocate în altă parte pe dispozitiv care pot rula fără un sistem de operare), permițând utilizatorilor o serie de opțiuni în ceea ce se întâmplă în continuare. Cu acest tip de libertate, abuzul apare adesea sub formă de viruși din sectorul de boot.

Virusii din sectorul de pornire

Deoarece codul din sectorul de boot este executat automat, sectoarele de boot au fost în mod istoric un vector de atac comun pentru virușii de computer .

Pentru a combate acest comportament, BIOS-ul sistemului include adesea o opțiune pentru a împiedica software-ul să scrie în primul sector al oricărui hard disk atașat; astfel ar putea proteja înregistrarea master boot care conține tabela de partiții de a fi suprascrisă accidental, dar nu și înregistrările de boot de volum din partițiile bootabile. În funcție de BIOS, încercările de a scrie în sectorul protejat pot fi blocate cu sau fără interacțiunea utilizatorului. Cu toate acestea, majoritatea BIOS-urilor vor afișa un mesaj pop-up care oferă utilizatorului șansa de a suprascrie setarea. Opțiunea BIOS este dezactivată în mod implicit, deoarece mesajul nu poate fi afișat corect în modul grafic și blocarea accesului la MBR poate cauza probleme cu programele de configurare a sistemului de operare sau cu accesul la disc, criptarea sau instrumentele de partiționare precum FDISK , care poate nu au fost scrise în fi conștienți de această posibilitate, determinându-i să avorteze fără grație și lăsând eventual partiționarea discului într-o stare inconsistentă.

De exemplu, malware-ul NotPetya încearcă să obțină privilegii administrative pe un sistem de operare și apoi va încerca să suprascrie sectorul de boot al unui computer. CIA a dezvoltat , de asemenea , malware care incercarile de a modifica sectorul de încărcare pentru a încărca drivere suplimentare pentru a fi utilizate de către alte tipuri de malware.

Vezi si

Note

  1. ^ Un utilitar FDISK scris pentru a fi la curent cu caracteristicile de protecție a sectorului de boot BIOS este FDISK R2.31 (și mai mare) al DR-DOS, care va detecta acest scenariu și va afișa mesaje interactive suplimentare pentru a ghida utilizatorul prin acesta. Spre deosebire de alteutilitare FDISK , DR-DOS FDISK nu este doar un instrument de partiționare, ci poate și formatarea partițiilor proaspăt create ca FAT12 , FAT16 sau FAT32 . Acest lucru reduce riscul formatării accidentale a volumelor greșite.

Referințe

linkuri externe