Herstel de nulsector. Hoe slechte sectoren op een harde schijf herstellen met behulp van het Victoria-programma? De harde schijf controleren op slechte sectoren. Scannen met standaardtools

Als Windows niet wordt geladen wanneer u uw computer aanzet en het proces vastloopt op een zwart scherm, is de opstartrecord (MBR) van uw harde schijf mogelijk beschadigd.

Externe manifestaties

Wanneer er een fout op het scherm verschijnt, verdwijnen de twijfels.

Er kan ook andere informatie over een storing van de HDD-bootloader worden weergegeven.

De tekstinformatie kan variëren afhankelijk van de classificatie van de fout. Maar als het woord boot wordt genoemd, is het duidelijk dat er een probleem is met het laden.

Op deze pagina leest u hoe u de MBR kunt herstellen.

Redenen

Let op de veelvoorkomende oorzaken van fouten in de opstartsector van de harde schijf.

Twee soorten bootloader

Oudere systemen vóór Windows XP gebruikten de NT Loader (NTLDR). In Windows 7, Vista en daaropvolgende versies van het besturingssysteem werden UEFI en EFI gebruikt. Daarom worden oude en nieuwe systemen meestal niet op dezelfde pc geïnstalleerd. Anders overschrijft NTLDR UEFI.

Software van derden

Fouten in de opstartsector van de harde schijf kunnen optreden bij het gebruik van zelfs populaire programma's voor de harde schijfpartitie. Dit overkwam mij met Acronis. Dit gebeurt omdat dergelijke software de stuurprogramma's voor het laden van schijven vervangt door eigen stuurprogramma's. Dit kan de originele MBR-vermelding beschadigen. Daarom is het beter om de ingebouwde methoden te gebruiken voor het partitioneren van uw harde schijf vanuit Windows.

Virussen

Virussen veroorzaken soms grote schade aan de MBR. Controleer daarom, nadat u het opstarten van de harde schijf hebt hersteld, uw computer met antivirusprogramma's.

Als u zeker weet dat de oorzaak virussen zijn, reinig uw pc dan voordat u de MBR repareert. Voor dit doel zijn er hulpprogramma's van bekende antivirusbedrijven, bijvoorbeeld Kaspersky Rescue Disk. Ze worden gratis verstrekt op officiële websites met gebruiksinstructies.

Al deze programma's zijn opgenomen in het softwarepakket voor een cd of dvd, waarmee u vanaf een cd kunt opstarten en virussen op de harde schijf kunt vinden en verwijderen.

Windows 7 opstartherstel

Sectorreparatie wordt uitgevoerd vanaf een cd of USB-flashstation met het installatiepakket van het besturingssysteem.

  1. Plaats eerst de dvd in het station of flashstation in de USB-connector met de Windows-distributie.
  2. Vervolgens moet u het opstarten vanaf deze apparaten toestaan. Dit gebeurt in de BIOS-instellingen.

Downloadbronnen wijzigen

Technologie van de volgende orde:


Zorg ervoor dat u bij het afsluiten op F10 drukt, anders worden de wijzigingen niet opgeslagen!

Werken vanaf een CD of flash-apparaat

Ga in de volgende volgorde te werk:

  1. Na het opnieuw opstarten verschijnt onderaan de volgende melding: “Press any key...”. Hierbij wordt u gevraagd een willekeurige toets in te drukken. Klik. Anders gaat het niet lukken. Als de inscriptie al is verdwenen, herhaal dan alles vanaf het begin. Om dit te doen, drukt u tegelijkertijd op drie toetsen: Ctrl+Alt+Del. Hierdoor wordt de computer opnieuw opgestart.
  2. Wanneer u opstart vanaf de dvd of het flashstation, verschijnt het Windows-installatievenster. Selecteer linksonder “Systeemherstel”.
  3. U wordt gevraagd om netwerkmogelijkheden aan te sluiten, talen of een stationsletter te selecteren. Je verandert niets en komt bij de keuze van de systemen.
  4. Selecteer het gewenste Windows en vink het vakje aan naast “Gebruik herstelhulpmiddelen...”.
  5. Als het vereiste systeem niet bestaat, zou dit moeten verschijnen wanneer u op “Stuurprogramma’s downloaden” klikt.
  6. Ga verder met de knop “Volgende”.
  7. Selecteer in het volgende venster “Opstartherstel” en de MBR kan automatisch worden gereanimeerd.
  8. Als de sector niet werkt, druk dan op “Command Line”.
  9. Roep op de opdrachtregel het hulpprogramma Bootrec aan en schrijf ernaar om de MBR te repareren: bootrec/fixmbr. Je beëindigt elke opdracht met de Enter-toets.
  10. Maak vervolgens een nieuwe opstartsector: bootrec/ fixboot. Om het programma af te sluiten, typt u Uitgang en vergeet niet op Enter te drukken.

Als de oplossingen niet hebben geholpen

Er is nog een MBR-reanimatiecommando - bootsect /NT60 SYS. Probeer daarna opnieuw op te starten.

Als de poging mislukt, schrijft u als volgt op de opdrachtregel: bootsect/rebuildbcd. Er wordt gezocht naar besturingssystemen die op de pc zijn geïnstalleerd.

Probeer nu opnieuw in te loggen op Windows. Houd er rekening mee dat er nu nog één systeem in de lijst staat. Probeer ze allemaal in te voeren. Het zou moeten werken!

Niet-standaard manier

Als alle sectorherstelopties niet helpen, wordt aanbevolen Windows opnieuw te installeren. En hoe graag je het soms ook wilt doen! Is het niet waar?

Dat dacht ik ook en besloot een ander klein systeem in de buurt te zetten. Wat betekent "klein"? Dit is een bootloader-systeem. Het is leeg: ik heb er geen stuurprogramma's of mijn programma's op geïnstalleerd, omdat ik er niet in werk. Maar hij wordt geladen!

Ik heb bereikt wat ik nodig had: er verscheen een werkend opstartgebied op de harde schijf. Nu log ik normaal in op het oude systeem. Het nadeel is dat ik ongeveer 14 GB schijfruimte verloor. Als u niet bang bent, kunt u deze methode gebruiken!

Hoe repareer ik een sector in Windows 8-10 en Vista?

Voor Vista en latere versies van Windows zijn dezelfde methoden geschikt als voor de "zeven", alleen het ontwerp is anders. In de "acht" is hij bijvoorbeeld zo.

Maar de punten blijven hetzelfde. Daarom zullen we ze niet beschrijven. Gebruik de hierboven beschreven instructies voor Windows 7.

Op Windows XP

In de "experimentsector" is het principe van reanimatie van de sector vergelijkbaar. Maar de ingang is een beetje anders. Nu zul je het zien:

  1. Na het opstarten vanaf de cd worden systeembestanden naar de harde schijf gekopieerd.
  2. Vervolgens verschijnt het actieselectievenster.

Slechte sectoren zijn te vinden op bijna alle harde schijven. Vooral degenen die lange tijd actief worden gebruikt. Soms loopt het probleem uit de hand en verandert het in een echte ramp, waarbij alle gegevens op de harde schijf in alle partities worden vernietigd. Om dit te voorkomen, leest u hoe u slechte sectoren van de harde schijf thuis kunt repareren.

Wat zijn slechte sectoren en waarom verschijnen ze?

Je kunt je een slecht blok voorstellen als een boek waarvan het laatste hoofdstuk is uitgescheurd. Je kunt het tot een bepaald punt lezen. Maar zodra er een gat in de pagina's zit, kun je het lezen niet uitlezen. HDD werkt op dezelfde manier. De magneetkop leest informatie binnen het spoor, maar komt op sommige plekken een beschadigd oppervlak of een leeg stukje informatie tegen, waardoor het onmogelijk is om de informatie volledig te extraheren.

Bijna alle harde schijven hebben kapotte partities. Het kunnen er een of meerdere zijn, en in de meeste gevallen is het niet eng. Maar na verloop van tijd zijn het er steeds meer en wordt het steeds moeilijker om informatie op de harde schijf te beheren. Dergelijke gebieden kunnen worden geïdentificeerd door de harde schijf te scannen op slechte sectoren met behulp van speciale hulpprogramma's.

Er kunnen veel redenen zijn voor het verschijnen van slechte sectoren:

  • impact van de schijf of gebruik in onjuiste omstandigheden;
  • de opname onderbreken door de stroom uit te schakelen;
  • oververhitting en temperatuurschommelingen;
  • natuurlijke slijtage van de koppen en schrijfschijf;
  • producten van lage kwaliteit.

Hier kunt u slechte sectoren verdelen in niet-herstelbare en herstelbare sectoren. De eerste zijn die veroorzaakt door schokken of oververhitting. Ze worden één keer vernietigd en kunnen niet worden hersteld, en informatie verdwijnt in de regel voor altijd. Het tweede type slechte sectoren treedt op als gevolg van een onderbreking in het opnameproces. Ze kunnen worden hersteld door eenvoudigweg de schijf te herschrijven.

Na verloop van tijd kunnen de schrijf- en leessnelheden afnemen. En na een lichte val van uw laptop kan het zijn dat de schijf helemaal niet meer werkt. Alles zou echt slecht zijn als het niet mogelijk zou zijn om op de een of andere manier slechte blokken te regenereren. Feit is dat harde schijven een bepaald reservegebied hebben, wat een potentieel groter volume betekent dan op de bon staat vermeld. U kunt de extra ruimte gebruiken om de inhoud van beschadigde gebieden ernaar over te brengen. Hoe u op deze manier slechte sectoren van een harde schijf kunt herstellen, wordt hieronder aangegeven.

Het gevaar is nabij

U kunt het probleem niet alleen opmerken na een defect aan de harde schijf, maar ook in de beginfase. U moet op uw hoede zijn voor de volgende symptomen:

  • De schrijf-/leessnelheid van de schijf is gedaald;
  • er is een ongebruikelijk geluid hoorbaar bij toegang tot de HDD;
  • begon oververhit te raken;
  • onderworpen aan mechanische spanning;
  • Het systeem crasht vaak en bij het opstarten wordt chkdsk zonder toestemming uitgevoerd.

In de regel geven deze redenen het begin van het einde van uw harde schijf aan. Om te voorkomen dat gegevens verloren gaan, zou de eerste goede oplossing een back-up zijn. Breng alle benodigde bestanden over naar een andere computer, flashstation, schijf en stel, indien mogelijk, synchronisatie met de cloud in.

De meeste moderne harde schijven controleren zelf op slechte sectoren, zonder tussenkomst van de gebruiker. Dit is zowel goed als slecht, omdat je de eliminatie van slechte blokken niet kunt beïnvloeden en niet kunt leren hoe ze op systeempartities verschijnen.

Wanneer scannen?

U kunt uw harde schijf met een bepaalde frequentie scannen op fouten, die afhankelijk is van de gebruiksfrequentie van de computer en individueel wordt berekend. Sommige mensen voeren eens per maand gepland computeronderhoud uit, anderen eens in de zes maanden.

Om dit te doen, kunt u systeemhulpprogramma's of programma's gebruiken om slechte sectoren van de harde schijf te herstellen. Er moet onmiddellijk een scan worden uitgevoerd nadat de hierboven genoemde problemen zijn gedetecteerd.

Scannen met standaardtools

Vanaf Windows 8 kan het systeem zelf schijven volgens een schema scannen en daardoor de werking van de harde schijf verlengen. U kunt een scanschema instellen via: “Mijn Computer” / “Beheer” (er verschijnt een tabblad in het hoofdmenu wanneer de sectie actief is). In Windows kunt u uw harde schijf controleren op slechte sectoren met het standaardprogramma chkdsk. Het hulpprogramma kan op verschillende manieren worden gestart:

Het werk is niet fundamenteel anders, dus laten we de eerste optie bekijken:

  1. Open de opdrachtprompt als beheerder. Klik met de rechtermuisknop op het Start-menupictogram of gewoon in de linkerbenedenhoek van Windows 8 en selecteer "Opdrachtprompt (Admin)" in de lijst.
  2. Als u een niet-systeemstation wilt scannen, voert u de opdracht in met de toetsen chkdsk /f /r om de hele schijf in één keer te scannen en te repareren, en chkdsk D: /f /r om alleen partitie D of een andere bestaande schijf te repareren . Bovendien kunt u de toets /x invoeren om het volume uit te schakelen dat tijdens de scan wordt gescand. Als u een werkende schijf diagnosticeert, zal het programma u vragen opnieuw op te starten om het werk te voltooien zonder in te loggen.
  3. Als chkdsk fouten vindt in de gebruikte partities, zal het aanbieden om opnieuw op te starten en de sectoren te repareren voordat het systeem opstart.

Om alle opties weer te geven, typt u help chkdsk. Er verschijnt een lijst met alle beschikbare toetsen met uitleg. U kunt naar eigen goeddunken elke combinatie gebruiken, zolang u maar de essentie begrijpt van wat er gebeurt en de mogelijke gevolgen. Aan het einde van de scan worden alle gegevens over de operatie in het log weergegeven.

Programma's van derden

Naast de ingebouwde chkdsk kunt u programma's van derden gebruiken om slechte sectoren op uw harde schijf te repareren. Er is veel software die beschadigde partities kan herstellen.

Onder de populaire gratis software zou ik Victoria willen benadrukken. Dit programma voor het herstellen van slechte sectoren van een harde schijf is bekend en was ooit erg populair onder reparateurs. Het Victoria-programma kan zowel in venster- als in DOS-modus werken, waardoor het zelfs op dode systemen kan worden gebruikt om informatie te herstellen.

Victoria-interface

Het programma is perfect voor het herstellen van slechte sectoren van een harde schijf. Victoria is meer bedoeld voor ervaren gebruikers, omdat het vrijwel geen interface bevat en zelfs geen lokalisatietool bevat. Maar dit belet niet dat het correct werkt met hardware en bestandssystemen.

Er zijn behoorlijk wat instellingen, schakelaars en verschillende cijfers, en als je het programma voor de eerste keer opent, kan het lastig zijn om te navigeren. Maar laten we, door de onderstaande stappen te volgen, leren hoe u slechte sectoren op uw harde schijf kunt repareren.

Testen en analyse

Op het tabblad Smart van dit programma kunt u snel de algemene toestand van de schijf beoordelen. De score wordt toegekend op basis van een analyse van de verschillende waarden in de tabel. Daar kunt u ook de status van elke parameter afzonderlijk bekijken.

Voor eenvoudig testen gaat u naar het tabblad Tests. Er zijn nogal wat instellingen in elke sectie, dus voor de eerste analyse kun je alles op de standaard laten staan. Klik op de Start-knop en wacht tot het testen is voltooid. Een volledige controle van de harde schijf op slechte sectoren duurt lang. Daarom kunt u het testen veilig een nacht laten staan ​​en naar bed gaan.

Bovendien bevat het venster een snelheidsgrafiek of een kleurenweergave van sectoren. U kunt de weergave wijzigen met behulp van het selectievakje Raster naast de timer.

Sectoren corrigeren

Als u geen tijd heeft om op verschillende controles te wachten, kunt u na beoordeling van de toestand onmiddellijk beginnen met het behandelen van slechte sectoren van de harde schijf. Victoria gebruikt de Remap-methode om blokken te herschrijven. Het wijst slechte blokken opnieuw toe aan normale blokken uit de vrije schijfruimte. Om slechte sectoren te repareren, doe je het volgende:

Tijdens de scan toont het logboek alle gevonden fouten en een rapport over de genomen maatregelen. Het geeft ook aan in welk deel van de schijf de problemen zijn gedetecteerd.

Hoe trimmen?

Vaak overheersen slechte partities aan het begin of einde van de schijf. De gedachte komt meteen in me op: “Wat als we de ruimte met slechte sectoren niet gebruiken?” Ja, het kan worden afgesneden en niet meer worden gebruikt. U kunt als volgt ontdekken welke partitie van schijfruimte u het beste kunt afsnijden:


U mag alleen met de systeemschijf in de DOS-modus werken totdat het besturingssysteem is geladen. Terwijl de back-up wordt gemaakt of hersteld, kan deze rechtstreeks vanuit Windows worden gemarkeerd. Deze methode is goed voor grote harde schijven. Maar het helpt niet specifiek om kapotte partities op de harde schijf te herstellen, zoals gebeurt tijdens het opnieuw toewijzen.

Preventie

Om te voorkomen dat de harde schijf in uw handen ‘doodgaat’, is het raadzaam enkele preventieve maatregelen te nemen. Afhankelijk van het type apparatuur.

Als u een laptop heeft:

  • probeer hem niet te slaan;
  • Schud niet te veel, vooral niet tijdens werkuren;
  • Niet blootstellen aan trillingen of temperatuurveranderingen.

Als u een desktopcomputer heeft:

  • plaats de systeemunit niet op een vochtige plaats;
  • zorg ervoor dat componenten niet oververhit raken;
  • hoewel de HDD zelf is afgedicht, kan het bord beschadigd raken door een laag stof, dus verwijder deze;
  • Installeer extra koeling op de harde schijf als de computer actief wordt gebruikt of als de harde schijf zichzelf niet kan koelen.

Defragmentatie is een nuttige preventieve maatregel voor alle harde schijven. Er zijn veel programma's, zowel intern als extern, om dit uit te voeren.

Nu weet u hoe u slechte sectoren op uw harde schijf kunt repareren en misschien zelfs waardevolle informatie erop kunt opslaan als er zich problemen voordoen.

Hoe geavanceerd het besturingssysteem ook is, het is onmogelijk om op te starten zonder twee sectoren op de harde schijf die de code bevatten die nodig is om welk besturingssysteem dan ook te laten draaien. De eerste sector heet Master Boot Record (MBR); deze bevindt zich altijd op het adres: sector 1/cilinder 0/head1 en is de allereerste sector van de harde schijf. De tweede belangrijkste sector is de Bootsector, gelegen in de eerste sector van elk volume.

Hoofdopstartrecord

Master Boot Record is de belangrijkste schijfstructuur; deze sector wordt gemaakt wanneer een schijf wordt gepartitioneerd. De MBR-sector bevat een kleine code die de Master Boot Code wordt genoemd, evenals de schijfhandtekening en partitietabel. Aan het einde van de MBR-sector bevindt zich een structuur van twee bytes die het einde van de sector aangeeft. Het heeft een waarde van 0x55AA. Een schijfhandtekening is een uniek nummer dat zich op offset 0x01B8 bevindt en waarmee het besturingssysteem deze schijf op unieke wijze kan identificeren.

De code in de MBR-sector doet het volgende:

  • zoekt naar de actieve partitie in de partitietabel;
  • zoekt naar de startsector van de actieve partitie;
  • laadt een kopie van de opstartsector van de actieve partitie in het geheugen;
  • draagt ​​de controle over naar uitvoerbare code vanuit de opstartsector.
Als deze functies om de een of andere reden niet worden voltooid, wordt een van de volgende systeemfoutmeldingen weergegeven:
  • Ongeldige partitietabel;
  • Ontbrekend besturingssysteem.
Merk op dat er geen concept van MBR bestaat voor diskettes. De opstartsector is de eerste sector op de schijf. Onthoud ook dat elke harde schijf een MBR-sector bevat, maar de opstartcode wordt alleen gebruikt op schijven met een actieve primaire partitie.

Partitie tabel

Een partitietabel is een structuur van 64 bytes die wordt gebruikt om het type en de locatie van partities op een harde schijf te bepalen. De inhoud van deze structuur is uniform en onafhankelijk van het besturingssysteem. Informatie over elke partitie neemt 16 bytes in beslag. Er kunnen dus niet meer dan vier partities op de schijf staan.

Elke partitie-informatie begint op een specifieke offset vanaf het begin van de sector, zoals weergegeven in tafel 1.

Offset

| |

Betekenis

|

Beschrijving

0x01BE| 1 byte| 0x80| Opstartindicator - Geeft aan of het volume een actieve partitie is. Kan de volgende waarden hebben: 00 - niet gebruikt voor laden; 80 - actieve sectie
0x01BF| 1 byte| 0x01| Startend hoofd
0x01C0| 6 bit| 0x01| Startsector - bits 0-5 worden gebruikt. Bits 6 en 7 worden gebruikt door het volgende veld
0x01C1| 10 bits| 0x00| Startcilinder - 10-bits getal met maximale waarde 1023
0x01C2| 1 byte| 0x07| Systeem-ID - bepaalt het volumetype
0x01C3| 1 byte| 0xFE| Einde hoofd
0x01C4| 6 bit| 0xBF| Eindsector - bits 0-5 worden gebruikt. Bits 6 en 7 worden gebruikt door het volgende veld
0x01C5| 10 bits| 0x09| Eindcilinder - 10-bits getal met maximale waarde 1023
0x01C6| Dubbel woord| 0x3F000000| Relatieve sectoren - offset vanaf het begin van de schijf tot het begin van het volume, uitgedrukt in het aantal sectoren
0x01CA| Dubbel woord| 0x4BF57F00| Totaal Sectoren - het aantal sectoren in dit volume


Nu we hebben bekeken hoe een partitierecord werkt, gaan we enkele velden in dat record eens nader bekijken.

Veld Opstartindicator

Het eerste element van de partitietabel, het veld Boot Indicator, geeft aan of het volume een actieve partitie is. We herinneren u eraan dat alleen de primaire schijfpartitie actief kan zijn. Het is mogelijk om verschillende besturingssystemen en verschillende bestandssystemen op verschillende volumes te installeren. Met behulp van hulpprogramma's zoals FDISK (MS-DOS), Schijfbeheer (Windows 2000) of hulpprogramma's van derden kunt u de primaire partitie activeren en de juiste waarde voor dit veld instellen.

Systeem-ID-veld

Dit veld bevat de systeem-ID en geeft aan welk bestandssysteem - FAT16, FAT32 of NTFS - is gebruikt om het volume te formatteren, en stelt u ook in staat enkele kenmerken van het bestandssysteem te achterhalen. Bovendien geeft dit veld aan of er een uitgebreide partitie op de schijf aanwezig is. Mogelijke waarden voor het veld Systeem-ID worden weergegeven in tafel 3.

Partitietype

|

Uitleg

0x01| Primaire partitie of logische schijf FAT12. Volume heeft minder dan 32.680 sectoren
0x04| FAT16-partitie of logische schijf. Het volume heeft 32.680 tot 65.535 sectoren, of een grootte van 16 tot 33 MB
0x05| Geavanceerde sectie
0x06| BIGDOS FAT16 partitie of logische schijf. Grootte van 33 MB tot 4 GB
0x07| NTFS-partitie of logische schijf. Installeerbaar bestandssysteem
0x0B| FAT32-partitie of logische schijf
0x0C| FAT32-partitie of logische schijf met BIOS INT 13h-extensies
0x0E |BIGDOS FAT16 partitie of logische schijf met BIOS INT 13h-extensies
0x0F| Uitgebreide partitie met behulp van BIOS INT 13h-extensies
0x12| EISA-sectie
0x42 |Dynamisch schijfvolume (Windows 2000)


Houd er rekening mee dat alleen volumes met een systeem-ID-veld van 0x01, 0x04, 0x05 of 0x06 toegankelijk zijn onder MS-DOS. Maar volumes met een ander systeem-ID voor dit veld kunnen worden verwijderd met behulp van het FDISK-hulpprogramma.

Cilinder-, kop- en sectorvelden

De velden Startcilinder, Eindcilinder, Startkop, Eindkop, Startsector en Eindsector (algemeen bekend als CHS) zijn aanvullende partitietabelelementen. De opstartcode gebruikt de waarden van deze velden om de opstartsector te vinden en in te schakelen. De Start-CHS-velden van inactieve partities verwijzen naar de opstartsectoren van de primaire partities en de uitgebreide opstartsector van de eerste logische schijfeenheid in de uitgebreide partitie.

Op rijst. 2 toont het Master Boot Record (met code, partitietabel en handtekening) en opstartsectoren voor een schijf met vier partities.


rijst. 2
Het veld Eindcilinder in de partitietabel heeft een grootte van 10 bits en stelt u in staat cilinders te beschrijven met nummers van 0 tot 1023. De velden Startkop en Eindkop hebben een grootte van 1 bit en kunnen kopnummers van 0 tot 255 bevatten. Omdat de velden Beginsector en Eindsector elk 6 bits beslaan, kunnen ze waarden van 0 tot 63 bevatten. Omdat de sectornummering begint bij 1 (en niet bij 0, zoals bij andere velden), is het maximale aantal sectoren op een spoor is 63.

Bij formattering op laag niveau worden alle schijven ingesteld op een standaard sectorgrootte van 512 bytes, zodat de maximale schijfgrootte die in de partitietabel wordt beschreven, als volgt kan worden berekend:

Code:

Maximale grootte = Sectorgrootte x Aantal cilinders x Aantal koppen x x Aantal sectoren per spoor.

Met behulp van de maximaal toegestane waarden van deze hoeveelheden verkrijgen we:

Code:

512 x 1024 x 256 x 63 (of 512 x 224) = = 8.455.716.864 bytes of 7,8 GB.

Zonder het gebruik van INT 13h-extensies, bekend als Logical Block Addressing (LBA), kan de grootte van de actieve primaire partitie daarom niet groter zijn dan 7,8 GB, ongeacht het gebruikte bestandssysteem.

De maximale volumegrootte onder FAT16 is afhankelijk van de schijfgeometrie en de maximale waarden in de partitietabel. Mogelijke waarden met en zonder LBA worden weergegeven in tafel 4. Het aantal cilinders bedraagt ​​in beide gevallen 1024 (0-1023). In het geval dat de primaire partitie of het logische apparaat een gebied buiten cilinder 1023 in beslag neemt, hebben alle velden van de partitietabel de maximaal toegestane waarden.

LBA-modus

|

Aantal hoofden

|

Sectoren/spoor

|

Max. partitiegrootte

Verboden| 64| 32| 1 GB
Toegestaan| 255| 63| 4 GB


Om de hierboven beschreven beperking van 7,8 GB te omzeilen, negeert Windows 2000 de veldwaarden Beginsector en Eindsector en gebruikt in plaats daarvan de veldwaarden Relatieve Sectoren en Totale Sectoren.

De velden Relatieve sectoren en Totale sectoren

Het veld Relatieve sectoren bevat de afstand vanaf het begin van de schijf tot het begin van het volume, uitgedrukt in het aantal sectoren. Het veld Totaal sectoren geeft het totale aantal sectoren in het volume aan.

Met behulp van de waarden van deze twee velden (die samen een 32-bits getal vormen) krijgen we 8 extra bits om het totale aantal sectoren op te slaan in vergelijking met het hierboven beschreven CHS-schema. In dit geval kan het aantal sectoren worden weergegeven als 232. Gebruikmakend van de standaard sectorgrootte (512 bytes) en de 32-bits representatie van het aantal sectoren, is de maximale partitiegrootte beperkt tot 2 TB (of 2.199.023.255.552 bytes). Dit schema wordt alleen gebruikt in Windows 2000 met NTFS- en FAT32-bestandssystemen.

Houd er rekening mee dat bij het maken van partities onder Windows 2000 de juiste gegevens worden ingevoerd in de velden Startcilinder, Eindcilinder, Startkop, Eindkop, Startsector en Eindsector. Dit maakt compatibiliteit mogelijk met MS-DOS, Windows 95 en Windows 98, evenals met de INT 13h-functies die door het BIOS worden gebruikt wanneer de computer opstart.

Uitgebreid opstartrecord

De Extended Boot Record (EBR) bestaat uit een uitgebreide partitietabel en een handtekening - een structuur van twee bytes met de waarde 0x55AA. Er bestaat een uitgebreid opstartrecord voor elk logisch apparaat op een uitgebreide partitie. Het bevat informatie over de eerste zijde van de eerste cilinder voor elk logisch apparaat. De opstartsector van een logische schijf bevindt zich doorgaans in de relatieve sectoren met nummer 32 of 63. Als de schijf geen uitgebreide partitie heeft, is er geen uitgebreid opstartrecord en zijn er geen logische apparaten.

Het eerste element van de uitgebreide partitietabel voor het eerste logische apparaat verwijst naar zijn opstartsector, het tweede element verwijst naar de EBR van het volgende logische apparaat. Als het volgende logische apparaat niet bestaat, wordt het tweede element niet gebruikt: het bevat een reeks nullen. De derde en vierde elementen van de uitgebreide partitietabel worden niet gebruikt.

Op rijst. 3 laat zien hoe het uitgebreide opstartrecord werkt. Getoond worden de drie logische apparaten in de uitgebreide partitie.


rijst. 3
Met uitzondering van het laatste logische apparaat in de uitgebreide partitie (zie rijst. 3), het uitgebreide partitietabelformaat beschreven in tafel 5, wordt herhaald voor elk logisch apparaat: het eerste element beschrijft de opstartsector van het logische apparaat, het tweede element geeft het volgende uitgebreide opstartrecord aan. Voor het laatste logische apparaat worden de elementen twee tot en met vier niet gebruikt.

Uitgebreid partitietabelelement

|

Inhoud

Eerste element| Informatie over het huidige logische apparaat in de uitgebreide partitie, inclusief het startadres voor de gegevens
Tweede element| Informatie over het volgende logische apparaat in de uitgebreide partitie, inclusief het adres van de sector die de EBR voor het volgende logische apparaat bevat. Dit veld wordt niet gebruikt als er geen volgende logische apparaten zijn
Derde element| Niet gebruikt
Vierde element| Niet gebruikt


De velden van elk element in de uitgebreide partitietabel zijn vergelijkbaar met de velden van de reguliere partitietabel die hierboven is beschreven.

Het veld Relatieve sectoren in de uitgebreide partitietabel specificeert, in bytes, de afstand vanaf het begin van de uitgebreide partitie tot de eerste sector van het logische apparaat. Met het getal in het veld Totaal sectoren kunt u het aantal sectoren achterhalen dat aan het logische apparaat is toegewezen. De waarde van het veld Totale sectoren is gelijk aan het aantal sectoren vanaf het begin van de opstartsector tot het einde van de logische partitie.

Vanwege het uitzonderlijke belang van de informatie die is opgeslagen in de MBR- en EBR-sectoren, wordt aanbevolen om periodiek de schijf te scannen met behulp van de juiste hulpprogramma's en back-ups van de gegevens te maken.

Opstartsector

De opstartsector, gelegen in sector 1 van elk volume, is de structuur waarmee de computer kan opstarten. Deze sector bevat de uitvoerbare code en de gegevens die voor die code nodig zijn, inclusief informatie over het bestandssysteem dat op het volume wordt gebruikt. De opstartsector wordt gemaakt wanneer een volume wordt geformatteerd. Aan het einde van de opstartsector bevindt zich een structuur van twee bytes, de zogenaamde einde-van-sectormarkering. Deze structuur bevat altijd de waarde 0x55AA.

Op computers met Windows 2000 wordt de opstartsector van de actieve partitie in het geheugen geladen en wordt de besturingssysteemlader - NTLDR, aangeroepen, die alle noodzakelijke stappen uitvoert om Windows 2000 op te starten.

In Windows 2000 bevat de opstartsector de volgende elementen:

  • JMP-montage-instructie;
  • fabrikantidentificatie (OEM-ID);
  • een datastructuur genaamd het BIOS Parameter Block (BPB);
  • uitgebreide BPB-structuur;
  • uitvoerbare code waarop het besturingssysteem wordt uitgevoerd.
Houd er rekening mee dat opstartsectoren voor NTFS, FAT16 en FAT32 anders zijn geformatteerd.

De BPB-structuur bevat de fysieke parameters van het volume, de uitgebreide BPB-structuur begint onmiddellijk na de standaard BPB. De lengte van de BPB-structuur en de informatie die deze bevat, is afhankelijk van het type opstartsector: NTFS, FAT16 of FAT32.

De informatie die is opgeslagen in de BPB en de uitgebreide BPB-structuur wordt door apparaatstuurprogramma's gebruikt om volumes te lezen en te configureren.

Direct na de uitgebreide BPB-structuur volgt de opstartcode.

Opstartproces

Het opstartproces van de computer bestaat uit de volgende basisstappen:

  1. Wanneer de stroom wordt ingeschakeld, wordt een BIOS- en processorverificatietest uitgevoerd - POST.
  2. Het BIOS zoekt naar een opstartapparaat (meestal een schijf).
  3. Het BIOS laadt de eerste fysieke sector van de opstartschijf in het geheugen en draagt ​​de besturing over aan het adres waar deze sector is geladen.
Als het opstartapparaat een harde schijf is, laadt het BIOS de MBR. De code in de MBR laadt de opstartsector van de actieve partitie en draagt ​​de controle over aan het adres waar deze sector is geladen. Op Windows 2000-computers vindt de uitvoerbare code in de opstartsector het NTLDR-bestand, laadt het in het geheugen en draagt ​​de controle erover over.

Als er zich een schijf in station A bevindt, laadt het BIOS de eerste sector (opstartsector) van die schijf in het geheugen. Als de schijf opstartbaar is (de basisbestanden van het besturingssysteem bevat), wordt de opstartsector in het geheugen geladen en wordt code gebruikt om de besturing over te dragen aan het IO.SYS-bestand - het basisbestand van het MS-DOS-besturingssysteem. Als de schijf niet opstartbaar is, produceert de uitvoerbare code in de opstartsector het volgende bericht:

  • Niet-systeemschijf of schijffout
  • Vervang en druk op een willekeurige toets wanneer u klaar bent
Het initiële opstartproces is onafhankelijk van het schijfformaat en het besturingssysteem. De unieke kenmerken van het besturingssysteem en de bestandssystemen worden gebruikt nadat de code uit de opstartsector begint te worden uitgevoerd.

Soorten opstartsectoren

Zoals we al weten, draagt ​​de MBR de controle over aan de opstartsector. Daarom moeten de eerste drie bytes van deze sector een geldige instructie voor de CPU bevatten. Deze instructie is een spronginstructie die de uitvoering van de code omleidt. De JMP-instructie wordt gevolgd door een OEM-ID van 8 bytes, een tekenreeks die de naam en het versienummer beschrijft van het besturingssysteem dat wordt gebruikt om het volume te formatteren.

Om de compatibiliteit met MS-DOS te behouden, registreert Windows 2000 de identificatie "MSDOS5.0" voor FAT16- en FAT32-bestandssystemen. Voor het NTFS-bestandssysteem bevat de identificatie de tekens "NTFS".

Windows 95 gebruikt de "MSWIN4.0"-identificatie, terwijl Windows 95 OSR2 en Windows 98 de "MSWIN4.1"-identificatie gebruiken.

Direct na de fabrikant-ID bevindt zich een gegevensstructuur die het BIOS Parameter Block (BPB) wordt genoemd. Het bevat de informatie die nodig is om het NTLDR-bestand te lokaliseren. Omdat de BPB zich doorgaans op dezelfde offset bevindt, kunnen de standaardparameters gemakkelijk worden gedetecteerd. Omdat de JMP-instructie de BPB-structuur omzeilt, kan de omvang ervan in de toekomst worden vergroot als hier aanvullende informatie moet worden opgeslagen.
Laten we nu eens kijken hoe de opstartsectoren eruitzien voor de drie belangrijkste bestandssystemen: FAT16, FAT32 en NTFS.

FAT16 opstartsector

IN tafel 6 Er wordt een beschrijving gegeven van de opstartsector voor het FAT16-bestandssysteem.

Offset

| |

0x00| 3 bytes| JMP-instructie
0x03| 2x LANG| OEM-ID
0x0B| 25 bytes| BPB
0x24| 26 bytes| Uitgebreide BPB
0x3E| 448 bytes| Opstartcode
0x01FE| 2 bytes| Einde van sectormarkering (0x55AA)


Een specifiek voorbeeld toont de inhoud van de FAT16-opstartsector. Er zijn hier drie secties:
  • bytes 0x00-0x0A bevatten de JMP-instructie en OEM-ID (gemarkeerd in lettertype);
  • bytes 0x0B-0x3D bevatten BPB en uitgebreide BPB;
  • de overige bytes bevatten de opstartcode en het einde van de sectormarkering (gemarkeerd in lettertype).

De volgende twee tabellen tonen de inhoud van de BPB ( tafel 7) en uitgebreide BPB ( tafel 8) voor FAT16. De gegeven waarden komen overeen met de opstartsector getoond in Fig. 4.

Offset

| |

Betekenis

|

Beschrijving


0x0D| 1 byte| 0x40| Aantal sectoren in het cluster. Omdat FAT16 een beperkt aantal clusters ondersteunt (tot 65.536), vereisen grotere volumes dat er meer sectoren in het cluster worden gebruikt. De standaardwaarde van dit veld is afhankelijk van de volumegrootte. Geldige waarden zijn 1, 2, 4, 8, 16, 32, 64 en 128. Waarden die de clustergrootte vergroten tot meer dan 32 KB (het aantal bytes per sector maal het aantal sectoren in het cluster ) kan fouten veroorzaken
0x0E| 2 bytes| 0x0100| Gereserveerde sectoren - het aantal sectoren vóór de eerste FAT-tabel, inclusief de opstartsector. De waarde van dit veld is altijd 1

0x11| 2 bytes| 0x0002| Het totale aantal bestands- en mapnamen van 32 bytes dat kan worden opgeslagen in de hoofdmap van het volume. Normaal gesproken is de waarde van dit veld 512. Er wordt altijd één element gebruikt om het volumelabel op te slaan, zodat het maximale aantal bestanden en mappen niet groter is dan 511
0x13| 2 bytes| 0x0000| Het aantal sectoren in het volume, uitgedrukt als een 16-bits waarde. Voor volumes met meer dan 65.536 sectoren wordt dit veld niet gebruikt en is de waarde 0

0x16| 2 bytes| 0xFC00| Het aantal sectoren in elke kopie van de FAT. De waarde van dit veld, het aantal FAT-kopieën en het aantal gereserveerde sectoren worden gebruikt om de locatie van de hoofdmap te berekenen. Als u het maximale aantal vermeldingen in de hoofdmap kent, kunt u ook zien waar de gebruikersgegevens beginnen

0x1A| 2 bytes| 0x4000| Aantal hoofden. Gebruikt voor schijfformattering op laag niveau
0x1C| 4 bytes| 0x3F000000| Het aantal “verborgen” sectoren is het aantal sectoren vóór de opstartsector. Wordt gebruikt tijdens het opstarten om de absolute offset van de hoofdmap en gegevens te berekenen
0x20| 4 bytes| 0x01F03E00| Het aantal sectoren in het volume, uitgedrukt als een 32-bits waarde. Wordt gebruikt voor volumes met meer dan 65.536 sectoren


Offset

| |

Betekenis

|

Beschrijving

0x24| 1 byte| 0x80| Fysiek apparaatnummer. Bevat 0x00 voor diskettes en 0x80 voor harde schijven. Gebruik INT 13h om toegang te krijgen tot de schijf. De waarde van dit veld is alleen betekenisvol voor het opstartapparaat
0x25| 1 byte| 0x00| Gereserveerd. Voor FAT16 is de waarde van dit veld altijd 0
0x26| 1 byte| 0x29| Uitgebreide handtekening van de opstartsector. Voor Windows 2000 moet dit veld 0x28 of 0x29 zijn
0x27| 4 bytes| 0xA88B3652| Volumeserienummer. Willekeurig getal gegenereerd wanneer de schijf wordt geformatteerd
0x2B |11 bytes| GEEN NAAM| Volumelabel. In Windows 2000 wordt het volumelabel opgeslagen in een speciaal bestand
0x36| 2x LANG| FAT16| Type bestandssysteem. Afhankelijk van het schijfformaat kan dit veld de tekens FAT, FAT12 of FAT16 bevatten



rijst. 4
FAT32-opstartsector

De FAT32-opstartsector heeft veel overeenkomsten met de FAT16-opstartsector, maar de BPB bevat extra velden, en de velden die in FAT16 worden gebruikt, bevinden zich op verschillende adressen. Schijven die zijn geformatteerd met FAT32 kunnen dus niet worden gelezen door besturingssystemen die niet compatibel zijn met FAT32.

IN tafel 9 toont de inhoud van de opstartsector voor het FAT32-bestandssysteem.

Offset

| |

Betekenis

|

Beschrijving

0x0B| 2 bytes| 0x0002| Het aantal bytes in de sector is de sectorgrootte. Geldige waarden zijn 512, 1024, 2048 en 4096. Voor de meeste schijven is dit veld 512
0x0D| 1 byte| 0x40| Aantal sectoren in het cluster. Omdat FAT32 een beperkt aantal clusters ondersteunt (tot 4.294.967.296), vereisen zeer grote volumes het gebruik van meer sectoren per cluster. De standaardwaarde van dit veld is afhankelijk van de volumegrootte. Geldige waarden zijn 1, 2, 4, 8, 16, 32, 64 en 128. In Windows 2000 ondersteunt FAT32 volumes tot een maximale grootte van 32 GB. Grotere volumes gemaakt met Windows 95 OSR2 en Windows 98 zijn toegankelijk vanuit Windows 2000
0x0E| 2 bytes| 0x0200| Gereserveerde sectoren - het aantal sectoren vóór de eerste FAT-tabel, inclusief de opstartsector. De waarde van dit veld voor FAT32 is meestal 32
0x10| 1 byte| 0x02| Het aantal exemplaren van FAT-tabellen voor dit deel. De waarde van dit veld is altijd 2
0x11| 2 bytes| 0x0000| Het totale aantal bestands- en mapnamen van 32 bytes dat kan worden opgeslagen in de hoofdmap van het volume (alleen FAT12/FAT16). Voor FAT32-volumes moet dit veld 0 zijn
0x13| 2 bytes| 0x0000| Het aantal sectoren in het volume, uitgedrukt als een 16-bits waarde (alleen FAT12/FAT16). Voor FAT32-volumes moet dit veld 0 zijn
0x15| 1 byte| 0xF8| Mediatype. Een waarde van 0xF8 duidt op een harde schijf, 0xF0 duidt op een diskettestation met hoge dichtheid. Dit veld wordt niet gebruikt in Windows 2000
0x16| 2 bytes| 0x0000| Aantal sectoren in elke kopie van FAT (alleen FAT12/FAT16). Voor FAT32-volumes moet dit veld 0 zijn
0x18| 2 bytes| 0x3F00| Aantal sectoren in een track. Wordt gebruikt voor schijfformattering op laag niveau
0x1A| 2 bytes| 0xFF00| Aantal hoofden. Gebruikt voor schijfformattering op laag niveau
0x1C| 4 bytes| 0xEE39D700| Het aantal “verborgen” sectoren is het aantal sectoren vóór de opstartsector. Wordt gebruikt tijdens het opstarten om de absolute offset van de hoofdmap en gegevens te berekenen
0x20| 4 bytes| 0x7F324E00| Het aantal sectoren in het volume, uitgedrukt als een 32-bits waarde. Wordt gebruikt voor volumes met meer dan 65.536 sectoren
0x24| 4 bytes| 0x83130000| Aantal sectoren in FAT (alleen FAT32)
0x28| 2 bytes| 0x0000| Uitgebreide vlaggen (alleen FAT32). De individuele bits van dit woord hebben de volgende betekenis: bits 0-3 - het aantal actieve FAT's; bits 4-6 - gereserveerd; bit 7 is gelijk aan 0 als FAT “mirroring” wordt uitgevoerd; is gelijk aan 1 als er slechts één FAT actief is; bits 8-15 - gereserveerd
0x2A| 2 bytes| 0x0000| Versie van bestandssysteem (alleen FAT32)
0x2C| 4 bytes| 0x02000000| Het clusternummer voor het eerste cluster van de hoofdmap (alleen FAT32). Normaal gesproken is de waarde van dit veld 2
0x34| 2 bytes| 0x0600| Sectornummer met een back-up-opstartsector (alleen FAT32). Normaal gesproken is de waarde van dit veld 6
0x36| 12 bytes| 0x000000000000000000000000| Gereserveerd (alleen FAT32)

tafel 10.​


Offset

| |

Betekenis

|

Beschrijving

0x40| 1 byte| 0x80| Fysiek apparaatnummer. Bevat de waarden 0x00 voor diskettes en 0x80 voor harde schijven. Gebruik INT 13h om toegang te krijgen tot de schijf. De waarde van dit veld heeft alleen betekenis voor de opstartapparaattabel. 12 0x0D| 1 byte| 0x08| Aantal sectoren in een cluster
0x0E| 2 bytes| 0x0000| Gereserveerde sectoren
0x10| 3 bytes| 0x000000| Altijd 0
0x13| 2 bytes| 0x0000| Wordt niet gebruikt in NTFS
0x15| 1 byte| 0xF8| Mediatype
0x16| 2 bytes| 0x0000| Altijd 0
0x18| 2 bytes| 0x3F00| Aantal sectoren per track
0x1A| 2 bytes| 0xFF00| Aantal hoofden
0x1C| 3 bytes| 0x3F000000| Aantal “verborgen” sectoren
0x20| 4 bytes| 0x00000000| Wordt niet gebruikt in NTFS
0x24| 4 bytes| 0x80008000| Wordt niet gebruikt in NTFS
0x28 |2 x LANG| 0x4AF57F0000000000| Totaal aantal sectoren
0x30| 2x LANG| 0x0400000000000000| Logisch clusternummer voor bestand $MFT
0x38| 2x LANG| 0x54FF070000000000| Logisch clusternummer voor bestand $MFTMirr
0x40 |4 bytes| 0xF6000000| Aantal sectoren in een bestandschrijfsegment
0x44| 4 bytes | 0x01000000| Aantal clusters in indexblok
0x48| 2x LANG| 0x14A51B74C91B741C| Volumeserienummer
0x50| 4 bytes| 0x00000000| Controlesom

1. Start de computer op vanaf een opstartbare dvd, opstartbare diskette of opstartbare USB-flashdrive (zie hoe u een opstartbare USB-flashdrive maakt)

2. Voer het hulpprogramma debug.exe uit. Debug.exe is aanwezig in elk DOS en Windows, maar is versiegevoelig, d.w.z. als u debug.exe van XP naar de opstartschijf van Win98 kopieert, start het niet. (Zie Opstartbare flashdrive).

3. Start de computer op en voer debug.exe uit.

Nu introduceren we een kort programma.

A100

int13

jmp100

u100 102

R

Uitleg:

a, u, r - commando's voor het debuggen van hulpprogramma's

? - geeft een volledige lijst met opdrachten weer.
a - hiermee kunt u een programma invoeren vanaf het adres
u - toont het programma
r - toont processorregisters
AX, BX, CX, DX, SP, BP, SI, DI zijn processorregisters.
DS, ES, SS, CS - segmentregisters, de waarden daarin zullen verschillen van die op de afbeelding, maar ze zullen hetzelfde zijn.

IP (Instruction Pointer) commandoregister, verwijst naar adres XXXX:0100, waar we de INT13-opdracht hebben ingevoerd.

INT 13 processoropdracht, roept de BIOS-routine aan voor het werken met schijven. Parameters worden door registers doorgegeven.

De JMP100-opdracht retourneert de instructieaanwijzer naar adres 100

Als je dergelijke code uitvoert met het G-commando, loopt de computer vast in een eindeloze lus, maar omdat... We gaan ons programma in stapmodus uitvoeren, het onvoorwaardelijke sprongcommando zal ons ervan weerhouden de waarde in het IP-register te wijzigen na elke aanroep naar int13

Dus laten we het lezen van de opstartsector onder de knie krijgen. Hoofdopstartrecord

Voer de opdrachten in

rax
201
rbx
200
RCX
1
Rdx
80

R


het is niet moeilijk om te raden dat het team R< имя регистра> Hiermee kunt u de waarde in een processorregister wijzigen.

Om int13 te bellen De betekenis van deze waarden is:
BIJL=02 hoge byte opcode 02=lezen (03=schrijven)
01

laag byteaantal te lezen sectoren

BX=0200 geheugenadres waar de sector moet worden gelezen
CX=0001 de minst significante bits specificeren het sectornummer. Sectoren zijn genummerd vanaf 1
DX=00 hoog byte hoofdnummer , de koppen zijn genummerd vanaf nul
80 low-byte schijfnummer 01 voor flopdrive, 80.81 voor harde schijven en USB-flashstations, die het BIOS als een harde schijf beschouwt.

Nu gaan we naar binnen

na het aanroepen van INT13 is het belangrijk om de laatste twee letters van het vlagregister CY te controleren - betekent een fout, indien succesvol uitgevoerd, zou dit NC moeten zijn; (In de afbeelding CY, omdat de MBR niet kan worden gelezen onder Windows en er geen screenshot kan worden gemaakt onder DOS)

Dus lezen we sector nul in het geheugen op adres 200.


Team N specificeert de bestandsnaam. Team w

schrijft gegevens uit het geheugen naar een bestand op het adres. Het aantal bytes wordt in twee registers tegelijk gespecificeerd BX: CX.

Gebruik de opdracht om een ​​bestand in het geheugen te laden L

. Het CX-register bevat het aantal gelezen bytes. Om het geheugen op adres te bekijken (in ons geval is er de inhoud van sector nul) het commando D


Laten we eens kijken naar de opties voor het bewerken van gegevens voordat deze terug naar schijf worden geschreven.

f200 3bd 00 reset het opstartprogramma maar laat informatie over schijfpartities intact.

Team e

Hiermee kunt u het geheugen bewerken.

Om gegevens van het geheugen naar schijf te schrijven, typt u.

rax
301
rbx
200
RCX
1
Rdx
80

R

P

Moet opnieuw opstarten