Hoofdstuk – 3
Een logische benadering van schijven en besturingssystemen
Een harde schijf kan zijn hardware niet zelfstandig aansturen en heeft twee hoofdprogramma's nodig om zijn taken uit te voeren: BIOS (Basic Input/Output System) en DOS (of Operating System). Het besturingssysteem van de schijf communiceert niet rechtstreeks met de hardware en de harde schijf van de computer, maar vereist wel dat het BIOS tussen beide systemen werkt. Daarom speelt BIOS een belangrijke rol in een computer.
BIOS
De belangrijkste taak van het BIOS is om een standaardinterface te bieden tussen de hardware of apparaten die op de computer zijn aangesloten en DOS. Het systeem-BIOS is de interface op het laagste niveau tussen de hardware van uw systeem en de software die erop draait. Het vervult verschillende belangrijke functies bij het beheren van de toegang tot harde schijven, zoals:
- BIOS-onderbrekingsroutines
- Uw harde schijf detecteren en configureren
- Ondersteuning voor harde schijfinterfacemodus
Om interoperabiliteit tussen verschillende hardware- en softwareproducten mogelijk te maken, wordt het BIOS van een systeem aangepast aan de behoeften van de hardware en wordt een standaardmanier geboden waarop software toegang krijgt tot de hardware. Ze worden BIOS-services genoemd en worden door veel besturingssystemen en toepassingsprogramma's gebruikt. Ze bieden één enkele interface naar de harde schijf, zodat applicaties niet hoeven te weten hoe ze met elk type harde schijf afzonderlijk moeten communiceren.
Standaard IDE/ATA harde schijven worden in het BIOS geconfigureerd met behulp van verschillende BIOS-instellingen. Moderne BIOS-programma's kunnen moderne IDE/ATA-schijven detecteren, deze instellingen bepalen en ze automatisch configureren. Het BIOS bepaalt welke interfacemodi met de harde schijf kunnen worden gebruikt. Dit gebeurt aan de hand van de systeemchipset op het moederbord en de I/O-bus van het systeem.
INT 13H-interface en INT 13H-extensies
De primaire interface naar het BIOS is software-interrupt 13H, beter bekend als INT 13H, waarbij INT staat voor interrupt en 13H het getal 19 is in hexadecimale notatie.
In de programmeerfase van dit boek gaan we uitgebreid in op het gebruik van interrupts bij programmeren. De Int13H-interface ondersteunt een groot aantal verschillende opdrachten die aan het BIOS kunnen worden doorgegeven, die deze vervolgens doorgeeft aan de harde schijf. Interrupt 13H omvat de meeste taken die we op de schijf moeten uitvoeren, zoals lezen, schrijven, formatteren, enz.
Om Int13H te kunnen gebruiken en ermee te kunnen werken, moet het aanroepende programma de specifieke parameters van de harde schijf kennen en de routines voorzien van nauwkeurige kop-, cilinder- en sectoradressering om toegang te krijgen tot de schijf.
Het BIOS gebruikt de geometrie van de harde schijf zoals geconfigureerd in het BIOS-installatieprogramma. De Int13H-interface wijst 24 bits toe om de schijfgeometrie te specificeren, onderverdeeld als volgt:
- 10 bits voor het cilindernummer, of in totaal 1024 cilinders.
- 8 bits voor het hoofdnummer, of 256 hoofden in totaal.
- 6 bits voor sectornummer, of 63 sectoren in totaal.
Zo kan het maximaal mogelijke aantal sectoren op een schijf worden bereikt
= 1024 * 256 * 63
= 16515072
Zoals u hier kunt zien, kan de INT 13H-interface schijven ondersteunen met maximaal 16515072 sectoren met 512 bytes per sector. De maximale schijfgrootte kan dus zijn:
= 16515072 * 512
= 8455716864 bytes
~ 8.456 GB
De INT 13H-interface kan dus een schijfgrootte van ongeveer 8,456 GB (of 7,875 GiB) ondersteunen.
Tegenwoordig gebruiken de meeste computergebruikers harde schijven met een capaciteit die veel groter is dan 8 GB. De INT 13H-interface is daarom in moderne computersystemen niet meer bruikbaar en is vervangen door een nieuwere interface, de zogenaamde INT 13H-extensies. INT 13H kan echter nog steeds worden gebruikt door DOS en sommige andere oudere besturingssystemen, en voor andere compatibiliteitsdoeleinden.
Int 13H-extensies
Het is interessant dat toen de INT 13H-interface werd ontworpen, niemand verwachtte dat er 8 GB aan opslagruimte op een harde schijf zou komen. Tegenwoordig merken we echter dat een harde schijf van 8 GB een veel kleinere capaciteit heeft, zelfs voor een pc voor thuisgebruik.
De oude standaard heeft een belangrijke beperking: er wordt gebruikgemaakt van 24 bits adresinformatie en kan daarom alleen schijven verwerken met maximaal 16.515.072 sectoren bij 512 bytes per sector, wat een maximale capaciteit oplevert van 8,456 GB (of 7,875 GiB).
Het probleem was dus om het toegangspad te verbreden van 24 bits naar iets groters, maar het was niet mogelijk om de bestaande INT13H BIOS-interface uit te breiden, omdat als we dit zouden proberen, veel oudere hardware en software zou stoppen met werken. En in de praktijk is er geen hoop om een respectabele plek in de computerwereld te krijgen met veel oudere hardware en software die niet werken met uw ontwikkeling.
Daarom werd een nieuwe interface ontwikkeld om Int13H te vervangen. Deze routines worden Int13H-extensies genoemd. Deze nieuwe interface gebruikt 64 bits in plaats van 24 bits voor adressering en staat een maximale harde schijfgrootte toe van 9,4 * 10 21 bytes, dat is 9,4 biljoen gigabytes.
We zullen het gebruik van beide leren, de INT 13H en INT 13H extensies in het programmeergedeelte van dit boek. Er zijn een aantal andere beperkingen van de grootte die in de eerdere dagen plaatsvonden. Enkele van de populaire logische en fysieke beperkingen zijn hieronder beschreven:
De limiet van 2,1 GB
Deze groottelimiet werd waargenomen in sommige oudere BIOSen die slechts 12 bits toewijzen voor het veld in CMOS RAM dat het aantal cilinders aangeeft. Daarom mag dit nummer maximaal 111111111111B zijn (Maximum possible 12-Bit Binary Number), wat gelijk is aan 4095. Op deze manier zal de maximale schijfgrootte met 16 heads, die toegankelijk is, zijn:
= 4095 * 16 * 63 * 512 Bytes
= 2113413120 Bytes zijn toegankelijk.
De limiet van 33,8 GB
Deze barrière van de harde schijfgrootte werd begin 1999 opgemerkt. Grote schijven rapporteren 16 koppen, 63 sectoren/track en 16383 cilinders. Veel BIOS'en berekenen een werkelijk aantal cilinders door de totale capaciteit te delen door 16*63.
Voor schijven groter dan 33,8 GB leidt dit tot een aantal cilinders groter dan 65535. In dit specifieke geval kunnen sommige versies van Award BIOS geen schijven aan die meer dan 65.535 cilinders hebben. Nu crasht of hangt het BIOS. Omdat harde schijfparameters doorgaans 16 koppen en 63 sectoren gebruiken, komt dit neer op een capaciteit van ongeveer 33,8 GB of 31,5 GiB voordat er problemen optreden.
De oplossing is om het BIOS te upgraden of om een jumper te gebruiken om de schijf kleiner te laten lijken.
ATA-specificatie voor IDE-schijven - De limiet van 137 GB
De oude ATA-specificatie staat geen toegang toe tot een schijf die groter is dan 137 GB. Eigenlijk gebruikt het slechts 28 bits om een sectornummer te specificeren. ATA-6 definieert echter een extensie met een 48-bits sectornummer.
De limiet van de schijfgrootte werd gegenereerd met de combinatie van maximaal 65536 cilinders, geteld van 0 tot 65535, 16 koppen, geteld van 0 tot 15 en 255 sectoren per spoor, geteld van 1 tot 255, de maximale totale capaciteit van de schijf,
= 65535 * 16 * 255 Sectoren
= 267386880 Sectoren
= 136902082560 bytes (sector van elk 512 bytes)
~ 137GB
Twee en vier schijf BIOS IDE-ondersteuning
Tegenwoordig ondersteunen de meeste moderne BIOS-programma's automatische detectie van harde schijven, waardoor het BIOS elke harde schijf kan ondervragen om de logische geometrie, ondersteunde overdrachtsmodi en andere informatie te bepalen. Dit kan worden gedaan tijdens de installatie of dynamisch elke keer dat de machine wordt opgestart, afhankelijk van het BIOS.
Het systeem-BIOS biedt native ondersteuning voor IDE/ATA-harde schijven, daarom kunnen er een aantal parameters zijn die kunnen worden ingesteld om het BIOS te vertellen welke harde schijven zich in het systeem bevinden en hoe deze moeten worden bestuurd. Elke harde schijf in het systeem heeft zijn eigen instellingen, dus er is er één voor de primaire master en één voor de primaire slave, enzovoort. SCSI-harde schijven worden echter geconfigureerd via hun hostadapter en ingebouwde SCSI-BIOS.
Omdat harde schijven groter dan 8 GB niet beschreven kunnen worden met de traditionele IDE/ATA BIOS-geometrieparameters, is dynamische automatische detectie de standaardmethode voor het instellen van moderne schijven, vooral in het geval van oudere computersystemen. De gebruiker kan echter nog steeds een aantal schijfparameters handmatig instellen.
Hieronder staan de instellingen die u normaal gesproken in het BIOS-installatieprogramma vindt voor het configureren van IDE/ATA-harde schijven. Hoewel op moderne systemen sommige van de oudste compatibiliteitsinstellingen mogelijk niet eens meer aanwezig zijn:
- Schijftype: oorspronkelijk werd dit gebruikt om de gebruiker de mogelijkheid te geven om zijn harde schijf te selecteren uit een vooraf gedefinieerde lijst. Tegenwoordig wordt dit echter gebruikt om de automatische of handmatige parameterinstelling voor de schijf te regelen.
- Grootte: Grootte van de harde schijf in decimale megabytes. Het wordt berekend op basis van andere parameters zoals cilinders, koppen en sectoren etc.
- Cylinders: Het aantal logische cylinders op de schijf. Heads: Het aantal logische heads op de schijf.
- Sectoren: Het aantal logische sectoren van elk 512 bytes, in elk logisch spoor op de schijf. Meestal hebben moderne harde schijven 63 sectoren op één spoor.
- Schrijfvoorcompensatie: dit is een compatibiliteitsinstelling die aangeeft bij welk cilindernummer schrijfaanpassingen moeten worden gemaakt voor veel oudere aandrijvingen.
- Landing Zone (Parking Heads): Landing Zone is de cilinder waar de koppen door het BIOS worden geparkeerd om dataverlies of de creatie van Bad Sectors te voorkomen wanneer de drive wordt uitgeschakeld. Omdat de moderne harde schijven hun koppen automatisch parkeren, is dit tegenwoordig nog maar zelden nodig.
- Vertaalmodus: De BIOS-vertaalmodus die wordt gebruikt ter ondersteuning van harde schijven groter dan 504 MB.
- Blokmodus: Hiermee bepaalt u de mogelijkheid van het BIOS om schijfoverdrachten in blokken uit te voeren.
- Geprogrammeerde I/O (DMA)-modus: De geprogrammeerde I/O-modus of DMA-modus die wordt gebruikt om gegevensoverdrachten van en naar de harde schijf uit te voeren.
- 32-bits overdrachtsmodus: regelt het gebruik van 32-bits gegevensoverdrachten met hogere prestaties.
Beperkingen in bestandssystemen
Elk bestandssysteem ondersteunt een maximale volumegrootte, bestandsgrootte en aantal bestanden per volume.
Nu bijvoorbeeld, over het algemeen zijn FAT16 en FAT32 volumes beperkt tot respectievelijk 4 GB en 32 GB (over het algemeen). Er zijn enkele beperkingen gerelateerd aan FAT bestandssystemen die u moet weten, hieronder gegeven:
- FAT12: FAT-volumes kleiner dan 16 MB worden geformatteerd als FAT12. Het is het oudste FAT-type en gebruikt een 12-bits binair bestand om clusternummers te bewaren. Een volume dat is geformatteerd met FAT12 kan maximaal 4.086 clusters bevatten, wat gelijk is aan 2 12 minus een paar gereserveerde waarden die in FAT moeten worden gebruikt. (We zullen dit in detail bespreken in de logische structuur van de schijf die hierna in dit hoofdstuk wordt gegeven). Daarom is FAT12 het meest geschikt voor kleinere volumes. Het wordt gebruikt op floppy disks en harde schijfpartities die kleiner zijn dan ongeveer 16 MB.
- FAT16: FAT16 gebruikt een 16-bits binair getal om clusternummers vast te houden. Een volume dat FAT16 gebruikt, kan maximaal 65.526 clusters bevatten, wat gelijk is aan 2 16 minus een paar gereserveerde waarden die in FAT moeten worden gebruikt. (We zullen dit in detail bespreken in de logische structuur van de schijf die hierna in dit hoofdstuk wordt gegeven). FAT16 wordt gebruikt voor harde schijfvolumes met een grootte van 16 MB tot 2.048 MB. FAT16-volumes groter dan 2 GB zijn niet toegankelijk vanaf computers met MS-DOS, Windows 95/98/ME en veel andere besturingssystemen. Deze beperking treedt op omdat deze besturingssystemen geen clustergroottes groter dan 32 KB ondersteunen, wat resulteert in de limiet van 2 GB. (Zie de Clusterlimiet die hierna in dit hoofdstuk wordt gegeven).
- FAT32: In theorie kunnen de maximale FAT32-volumes tot 2048 GB (ongeveer 2 terabytes) zijn. FAT32 wordt ondersteund door de OEM SR2-release van Windows 95, en ook door Windows 98/ME. FAT32 gebruikt een 28-bits binair clusternummer (Onthoud! Niet 32, want 4 van de 32 bits zijn "Gereserveerd"). Theoretisch gezien kan FAT32 dus volumes met meer dan 268 miljoen clusters aan (in werkelijkheid 268.435.456 clusters) en ondersteunt het schijven tot 2 TB groot. Om dit te doen, wordt de grootte van FAT echter erg groot. (We gaan het bespreken in de onderwerpen die hierna in dit hoofdstuk worden gegeven).
De vergelijking van de FAT-typen vindt u in de onderstaande tabel.
NTFS: NTFS staat voor New Technology File System. Het wordt gebruikt door Windows 2000/XP. In theorie is de maximale NTFS partitiegrootte (2 64 – 1) clusters.
De gedetailleerde beschrijving van het NTFS-bestandssysteem gaat de grenzen van dit boek te buiten. In de volgende tabel worden echter enkele beperkingen ervan aangegeven:
Beschrijving
|
Beperken |
Maximale bestandsgrootte
|
16 Exabytes – 1 KB (2 64 Bytes – 1 KB) |
Maximale volumegrootte
|
(2 64 – 1) clusters |
Bestanden (en mappen) per volume
|
4.294.967.295 (2 32 – 1 ) Vliegen en mappen |
Cluster
De kleinste eenheid van ruimte op de harde schijf voor toewijzing waartoe software toegang heeft, is de sector, die 512 bytes bevat. Het is mogelijk om een toewijzingssysteem voor de schijf te hebben waarbij elk bestand zoveel individuele sectoren krijgt toegewezen als nodig is. Bijvoorbeeld, een bestand van 1 MB zou ongeveer 2.048 individuele sectoren nodig hebben om zijn gegevens op te slaan.
In het geval van FAT-bestandssysteem, of beter gezegd in de meeste bestandssystemen, worden individuele sectoren niet gebruikt. Er zijn verschillende prestatieredenen hiervoor. Wanneer DOS wat informatie naar de harde schijf schrijft, wordt de ruimte niet sectorgewijs toegewezen, maar wordt in plaats daarvan een nieuwe opslageenheid gebruikt die cluster wordt genoemd.
FAT is vele jaren geleden ontworpen en is een eenvoudig bestandssysteem, en is niet in staat om individuele sectoren te beheren. Wat FAT in plaats daarvan doet, is sectoren groeperen in grotere blokken die clusters of allocatie-eenheden worden genoemd.
Een cluster is de kleinste eenheid schijfruimte die aan een bestand kan worden toegewezen. Dit is de reden dat de clusters vaak allocatie-eenheden worden genoemd. Het kan erg moeilijk zijn om de schijf te beheren wanneer bestanden zijn opgedeeld in stukken van 512 bytes.
Een schijfvolume van 20 GB met 512 byte sectoren die afzonderlijk worden beheerd, zou meer dan 41 miljoen afzonderlijke sectoren bevatten, en het bijhouden van zoveel stukjes informatie kost tijd en middelen. Sommige besturingssystemen wijzen echter wel ruimte toe aan bestanden per sector, maar ze hebben geavanceerde intelligentie nodig om dit goed te doen.
Clusters zijn de minimale ruimte die door DOS wordt toegewezen bij het opslaan van informatie op de schijf. Zelfs om informatie van slechts één byte lang op de schijf op te slaan, is minimaal één clustergebied op het schijfoppervlak vereist.
Als één cluster 512 bytes aan informatie kan opslaan, dan heb je twee clusters nodig om 513 bytes op te slaan. Aan elk bestand moet een geheel getal aan clusters worden toegewezen. Dit betekent dat als een volume clusters gebruikt die 4.096 bytes bevatten, een bestand van 610 bytes één cluster gebruikt, dus 4.096 bytes op de schijf, maar een bestand van 4.097 bytes gebruikt twee clusters, dus 8.192 bytes op de schijf.
Dit is de reden dat de clustergrootte zo belangrijk is om ervoor te zorgen dat u het efficiënte gebruik van de schijf maximaliseert. Zo kunnen we begrijpen dat hoe groter de clustergroottes, hoe meer verspilde ruimte.
De volgende afbeelding toont de eigenschappen van een bestand met de naam BINARY.C en verduidelijkt het feit van de ruimte die het bestand op de schijf gebruikt. De werkelijke grootte van het bestand is 610 bytes, maar aangezien de enkele cluster 4.096 bytes is, gebruikt het bestand één cluster (4.096 bytes) op de schijf.
Een cluster kan uit één of meer sectoren bestaan. Het hangt af van het type schijf dat wordt gebruikt. Omdat een cluster uit meer dan één sector kan bestaan, vermindert het gebruik van clusters als toewijzingseenheid de grootte van de File Allocation Table die DOS gebruikt om de informatie van de gebruikte en lege schijfruimte vast te houden.
De clustergrootte wordt voornamelijk bepaald door de grootte van het schijfvolume. Strikt genomen gebruiken grotere volumes over het algemeen grotere clustergroottes. Voor harde schijfvolumes varieert elke cluster in grootte van 4 sectoren (2.048 bytes) tot 64 sectoren (32.768 bytes).
Floppy disks gebruiken veel kleinere clusters en gebruiken in sommige gevallen een cluster van slechts 1 sector. De sectoren in een cluster zijn continu, dus elk cluster is een continu blok ruimte op de disk.
De clustergrootte en dus partitie- of volumegrootte, omdat ze direct gerelateerd zijn, hebben een belangrijke impact op de prestaties en het schijfgebruik. De clustergrootte wordt bepaald wanneer het schijfvolume wordt gepartitioneerd.
Er zijn een aantal hulpprogramma's beschikbaar, zoals Partition Magic, waarmee u de clustergrootte van een bestaande partitie kunt aanpassen binnen de grenzen van specifieke omstandigheden. In de algemene gevallen geldt echter dat de partitiegrootte en clustergrootte vastliggen zodra deze zijn geselecteerd.
Zoals we eerder hebben besproken, begint het cilinder- of spoornummer bij 0 en wordt het eerste sectornummer altijd als 1 genomen. Nog iets wat u moet onthouden, is dat het eerste clusternummer altijd als 2 wordt genomen.
Clustergrootte
Clusters worden gebruikt om het opslaggebied alleen voor het gegevensgebied toe te wijzen. FAT en directorygebied worden niet toegewezen op basis van de clustergrootte. Op een schijf die 512-byte sectoren gebruikt, bevat een 512-byte cluster één sector, terwijl een 4-KB cluster 8 sectoren bevat.
De volgende tabellen geven de standaard clustergroottes weer die door DOS worden gebruikt voor verschillende schijfformaten. De grootte van het cluster kan echter in sommige omstandigheden afwijken van de standaardgrootte:
Floppydiskstation (FDD) |
Aandrijftypes |
Sectoren/Cluster |
Totale clustergrootte in bytes (sectoren van elk 512 bytes) |
5,25” 360Kb FDD |
2 sectoren |
1.024 |
5,25”1,2 MB FDD |
1 sector |
512 |
3,5” 720Kb FDD |
2 sectoren |
1.024 |
3,5”1,44 MB FDD |
1 sector |
512 |
3,5”2,88 MB FDD |
2 sectoren |
1.024 |
FAT16, FAT32 en NTFS gebruiken elk verschillende clustergroottes, afhankelijk van de grootte van de partitie en elk bestandssysteem heeft een maximaal aantal clusters dat het kan ondersteunen. Hoe kleiner de clustergrootte, hoe efficiënter een schijf informatie opslaat, omdat ongebruikte ruimte binnen een cluster niet door andere bestanden kan worden gebruikt.
De volgende tabel toont de standaard clustergroottes voor FAT16, FAT32 en NTFS-bestandssysteempartities. FAT 32 biedt veel efficiëntere opslag en gebruik van grotere harde schijven, 32-bits FAT is alleen compatibel met Windows 95 OSR-2 en Windows 98/ME en. FAT 16 wordt ondersteund door MS-DOS, Windows 3.1, Windows 95 en Windows NT. De besturingssystemen Windows 2000/XP gebruiken het NTFS-bestandssysteem.
Let op: Hier staat 1 KiB voor 1 binaire kilobyte. Dat betekent dat 1 KiB gelijk is aan 1024 bytes. We kunnen ook zeggen dat twee sectoren van 512 bytes gelijk zijn aan 1 KiB.
Naarmate de grootte van de FAT16-partitie toeneemt, neemt ook de verspilling van schijfruimte toe. Het gebruik van FAT32 verkleint de clustergroottes en biedt zo een efficiënte opslag. Hoewel FAT32 het gebruik van grotere harde schijven en sterk gereduceerde clustergroottes toestaat, is er een belangrijke prestatieoverweging bij het gebruik van FAT32, namelijk dat de enorme harde schijven met tientallen gigabytes FAT32 essentieel hebben gemaakt voor nieuwere systemen. We kunnen eerder zeggen dat u vaak geen praktische keuze meer hebt tussen FAT16 en FAT32.
Laten we een partitie van 2.048 MB beschouwen, de grootste die FAT16 kan ondersteunen. Als deze partitie is ingesteld onder FAT16, resulteert dit in een bestandstoewijzingstabel met 65.526 clusters, waarbij elk cluster 32 KiB aan schijfruimte inneemt.
De grote clustergrootte zal inderdaad resulteren in een grote verspilling van schijfruimte. Daarom wordt aanbevolen om FAT32 te gebruiken op deze partitie, wat zal resulteren in een vermindering van de clustergrootte van 32 KiB naar 4 KiB.
In feite zal dit de speling op de schijf enorm verminderen, wat kan oplopen tot 30% en mogelijk honderden megabytes aan eerder verspilde schijfruimte vrijmaken. Het is meestal het juiste om te doen in deze situatie. Het heeft echter een andere kant. We krijgen deze gereduceerde clustergrootte niet gratis.
Omdat elk cluster kleiner is, moeten er meer zijn om dezelfde hoeveelheid schijf te bedekken. Dus in plaats van 65.526 clusters, hebben we er nu 524.208.
Bovendien zijn de FAT-ingangen in FAT32 32-bits breed (elke ingang van 4 bytes), terwijl de ingangen van FAT16 16-bits zijn (ingang van elk 2 bytes). Het eindresultaat is dat de grootte van de FAT 16 keer groter is voor FAT32 dan voor FAT16. De volgende tabel vat het samen:
FAT 16 en FAT 32 voor 2.048 MB schijfvolume |
VET-type |
FAT16 |
FAT32 |
Clustergrootte |
32 KiB |
4 KB |
Aantal FAT-vermeldingen |
65.526 |
524.208 |
Grootte van FAT |
131052 Bytes
(~ 128 KiB) |
2096832 Bytes
(~ 2 MiB) |
Als we de grootte van het FAT32-volume vergroten van 2 GB naar 8 GB, neemt de grootte van de FAT toe van ongeveer 2 MiB naar 8 MiB. Het belang hiervan is niet het feit dat het FAT32-volume meerdere megabytes aan ruimte op de schijf moet verspillen om de FAT te bevatten. Want alleen door dit te doen, bespaart het veel meer ruimte dan dat door de grootte van FAT te verkleinen. Het echte probleem is dat de FAT alle clusterpointers voor elk bestand in het volume bevat. Als de FAT enorm in grootte toeneemt, kan dit een negatieve invloed hebben op de snelheid van het systeem.
Om deze reden is het belangrijk om de grootte van de File Allocation Table te beperken tot een redelijk aantal. In feite is het in de meeste gevallen een kwestie van het vinden van een balans tussen clustergrootte en FAT-grootte. Een goed voorbeeld hiervan zijn de clustergrootteselecties die FAT32 zelf maakt.
Omdat FAT32 maximaal ongeveer 268 miljoen clusters aankan, kan de clustergrootte van 4 KiB in principe een schijfvolume van 1 TiB (1.024 GiB) ondersteunen. Het probleem hierbij is echter dat de FAT-grootte dan meer dan 1 GB zou bedragen, wat neerkomt op 268 miljoen maal 4 bytes per invoer.
Om deze reden gebruikt FAT32 alleen 4 KiB clusters voor volumes tot 8 GiB groot, en worden grotere clusters gebruikt zoals getoond in de tabel hierboven, voor Cluster Sizes. De maximale partitiegrootte die door FAT32 wordt ondersteund, die officieel is verklaard, is 2.048 GiB (2 TiB).
Logische structuur van een harde schijf
In principe kunnen we de logische structuur van de harde schijf verdelen in de volgende vijf logische termen:
- MBR (Master Boot Record)
- DBR (DOS-opstartrecord)
- FAT (bestandstoewijzingstabellen)
- Hoofdmap
- Gegevensgebied
De volgende afbeelding geeft de conceptuele rangschikking van deze logische termen weer, die de logische structuur van een harde schijf vormen:
Logische structuur van een harde schijf
De Master Boot Record (MBR) of soms ook wel de master partition table (MPT) genoemd, bevat een klein programma om de actieve (of opstartbare) partitie van de harde schijf te laden en te starten. De Master Boot Record bevat informatie over alle vier primaire partities op de harde schijf, zoals de startsector, eindsector, grootte van de partitie, etc.
De MBR bevindt zich in Absolute Sector 0, of we kunnen zeggen in cilinder 0, kop 0 en sector 1. Als er meer dan één partitie op de schijf aanwezig is, bevinden zich Extended Master Boot Records aan het begin van elk uitgebreid partitievolume (zie de afbeelding hieronder).
De MBR wordt op de harde schijf gemaakt door de opdracht FDISK.EXE van DOS uit te voeren. Er zijn echter veel andere softwareprogramma's beschikbaar om dezelfde taak uit te voeren. Met behulp van FDISK kan elk van deze partities actief of opstartbaar worden gemaakt.
Hierdoor kan de bootsector van de actieve partitie de controle ontvangen wanneer het systeem wordt gestart. Omdat de floppy geen partities heeft, is er ook geen MBR op een floppy.
Omdat DOS één hoofdletteralfabet gebruikt om een partitie te benoemen, is het maximale aantal van alle typen partities samen toegestaan door DOS 24, beginnend bij de stationsletter C (C:) tot en met stationsletter Z (Z:). Als er dus zelfs meer dan één fysieke harde schijf aanwezig is, kan het totale aantal partities van alle schijven niet meer dan 24 bedragen.
Na de Power-On Self Test (POST) laadt het BIOS de MBR (Master Boot Record) van de harde schijf in het geheugen en voert deze vervolgens uit. Eerst controleert de MBR de harde schijf op een actieve partitie, vervolgens laadt het de DOS Boot Record (DBR) in het geheugen en draagt de controle over aan de opstartcode van het besturingssysteem en vervolgens laadt de opstartcode van het besturingssysteem de rest van het besturingssysteem in het geheugen.
Master Boot Record-formaat
Master Boot Record-formaat
We kunnen de harde schijf partitioneren in meerdere logische schijven die over het algemeen hun eigen schijfletter krijgen toegewezen door DOS. Er kan slechts één partitie tegelijk worden gemarkeerd als de actieve (of opstartbare) partitie.
Master Boot Record-formaat
De Master Boot Record heeft de limiet van vier entries in de Master Partition Table. De locatie van Extended Master Boot Record kan echter worden verkregen met behulp van Master Boot Record dat Extended Partition Tables bevat, waarvan de indeling exact hetzelfde is als die van de hoofd Partition Table, behalve dat er geen bootcode is.
In de uitgebreide Master Boot Record is deze ruimte van 446 bytes normaal gesproken gereserveerd voor de bootcode en blijft leeg. Alle 512 bytes van de Master Boot Record worden als volgt gebroken, zoals weergegeven in de tabel:
Verschuiven |
Beschrijving |
Maat |
000U |
Initial Program Loader (IPL), uitvoerbare code (zorgt voor het allereerste opstarten van de computer) |
446 Bytes |
1BEH |
Eerste partitie-invoer (zie volgende tabel) |
16 Bytes |
1CEH |
Tweede partitie-ingang |
16 Bytes |
1DEH |
Derde partitie-ingang |
16 Bytes |
1EEH |
Vierde partitie-ingang |
16 Bytes |
1FEH |
Uitvoerbare marker of opstartbare sectorhandtekening of magisch nummer (AAH 55H) |
2 bytes |
Totaal = 512 bytes |
Alle uitgebreide partities moeten bestaan binnen de ruimte die is gereserveerd door de uitgebreide partitie-invoer. Slechts twee van de uitgebreide partities zijn bedoeld om te worden gebruikt, de eerste als een normale partitie en de tweede als een andere uitgebreide partitie als die bestaat. Dus met behulp van één Master Partition Table kunnen we de locatie van een andere Extended Master Partition Table ernaast krijgen, als die aanwezig is.
Partitietabel-invoerformaat
De indeling van de partitietabelinvoer van elke partitie in MBR is gegeven in de volgende tabel. Elke partitie-invoer van elke MBR kan worden opgedeeld in de volgende bytes met hun specifieke betekenissen:
Boot Type Indicator Byte (1 Byte): Als deze byte 00H is, betekent dit dat de partitie niet actief is en als de byte 80H is, betekent dit dat de partitie een Actieve partitie of Opstartbare partitie is. Hoewel de aanwezigheid van een andere byte dan deze niet wordt verwacht, kan het zijn dat als er een andere byte aanwezig is, dit te wijten is aan corruptie van de partitietabel of aan een VIRUS-aanval in de partitietabel.
Startcilinder – Kop – Sectornummer van de partitie (3 bytes): Wanneer we de CHS (cilinder, kop en sector) van een schijf berekenen, worden de fysieke CHS als volgt geteld:
- De fysieke sector wordt geteld vanaf 1.
- Het fysieke hoofd wordt geteld vanaf 0.
- De fysieke cilinder wordt geteld vanaf 0 (zie het vorige hoofdstuk voor details)
- De byte op offset 01H vertegenwoordigt het beginhoofdnummer in het hexadecimale systeem voor de partitie.
De 6 minst significante bits van de byte op offset 02H vormen het startsectornummer van de partitie en de combinatie van de resterende 2 bits (als twee meest significante bits) plus 8 bits van een andere byte op offset 03H (de overige 8 minst significante bits van het 10-bits nummer) vormen het startcilindernummer van de partitie.
Verschuiven |
Betekenis |
Maat |
Beschrijving |
00U |
Opstarttype-indicatorbyte |
1 byte |
Als Byte 00H is , is de partitie inactief en als Byte 80H is , is de partitie actief (of opstartbaar). |
01U |
Hoofdnummer van het begin van de partitie |
1 byte |
Beginhoofdnummer van de partitie in het hexadecimale systeem |
02U |
Sector- en cilindernummer van het begin van de partitie |
2 bytes |
6 bits van de eerste byte vormen het startsectornummer en de combinatie van de resterende 2 bits (als twee meest significante bits) plus 8 bits van een andere byte (de overige 8 minst significante bits van het 10-bits nummer) vormen het startcilindernummer van de partitie. |
04U |
Bestandssysteemindicator Byte |
1 byte |
Bestandssysteemindicatorbyte in hexadecimaal systeem (zie de volgende tabel voor indicatoren) |
05U |
Hoofdnummer van het einde van de partitie |
1 byte |
Eindkopnummer van de partitie in het hexadecimale systeem |
06U |
Sector- en cilindernummer van het einde van de partitie |
2 bytes |
6 bits van de eerste byte vormen het eindsectornummer en de combinatie van de resterende 2 bits (als twee meest significante bits) plus 8 bits van een andere byte (de overige 8 minst significante bits van het 10-bits nummer) vormen het eindcilindernummer van de partitie. |
08U |
Relatief sectornummer van het begin van de partitie |
4 bytes |
Aantal sectoren tussen de MBR en de eerste sector in de partitie |
0CH |
Aantal sectoren van de partitie |
4 bytes |
Aantal sectoren in de partitie |
Totaal = 16 bytes |
De cilinder- en sectorcodering wordt gegeven in het voorbeeld van een voorbeeldpartitietabelstudie die hierna wordt uitgevoerd.
File System Indicator Byte (1 Byte): File System Indicator Byte op offset 04H vertegenwoordigt het bestandssysteem van die partitie. De tabel met de File System Indicator Byte voor verschillende bestandssystemen is hierna in dit hoofdstuk gegeven.
Eindcilinder – Kop – Sectornummer van de partitie (3 bytes): De codering is hetzelfde als voor Startcilinder – Kop – Sectornummer van de partitie.
Relatief sectornummer van het begin van de partitie (4 bytes): Aantal sectoren tussen de MBR en de eerste sector in de partitie in het hexadecimale systeem.
Aantal sectoren van de partitie (4 bytes): Aantal sectoren in de partitie in het hexadecimale stelsel.
U moet altijd onthouden dat de Cylinder-, Head- en Sector-nummers de nummers zijn die aan het BIOS moeten worden doorgegeven. Als het BIOS dus vertaling gebruikt (LBA-modus of INT 13H Extensions Support), vertegenwoordigen de waarden mogelijk niet de fysieke CHS-waarden. Voor grote harde schijven (groter dan 8,4 GB) kunnen de CHS-waarden ongeldig zijn. Deze waarden moeten over het algemeen worden genegeerd en in plaats daarvan worden de absolute sectorwaarden gebruikt.
De volgende afbeelding toont de MBR van een schijf met FAT32-partities. Het gemarkeerde gebied van 64 bytes aan het einde van de afbeelding vertegenwoordigt de Master Partition Table van de MBR.
De codering voor de begin- en eind-CHS is als volgt:
- Bij offset 00H geeft 80 (Hex) aan dat de partitie een actieve partitie is.
- Bij offset 01H vertegenwoordigt 01 (Hex) het starthoofdnummer = 1.
- De combinatie van twee bytes op offset 02H en 03H vormen de startsector en het cilindernummer van de partitie volgens de onderstaande codering:
MBR van een schijf met FAT32-partities
Dus start CHS van de partitie = 0-0-1.
Op dezelfde manier is het hoofdnummer voor het einde van de partitie FE (Hex), wat 254 is, en de codering voor de eindcilinder en het sectornummer van de partitie zijn gegeven in de volgende tabel:
De eind-CHS van de partitie is dus 701-254-63.
De Byte 0B (Hex) op offset 04H is de File System Indicator Byte voor de Partitie. De Byte 0B (H) geeft aan dat de Partitie het FAT32-bestandssysteem heeft. De tabel voor verschillende bestandssystemen en hun file system indicator bytes zijn hieronder gegeven:
Bestandssysteemindicatorbyte in hexadecimaal |
Partitie/Bestandssysteem Beschrijving |
00U |
Ongebruikte/lege partitietabelinvoer
(onthoud dat dit niet wordt gebruikt om een ongebruikt gebied op de schijf aan te duiden, maar markeert een ongebruikte partitietabelinvoer) |
01U |
DOS 12-bit fat
(Het type 01H is voor partities tot 15 MB) |
02U |
XENIX: root-bestandssysteem |
03U |
XENIX /usr-bestandssysteem (verouderd)
(XENIX is een oud onderdeel van Unix V7. Microsoft XENIX Operating System werd aangekondigd in augustus 1980. Het was een draagbare en commerciële versie van het Unix-besturingssysteem voor de Intel 8086, Zilog Z8000, Motorola M68000 en Digital Equipment PDP-11. Microsoft introduceerde XENIX 3.0 in april 1983. SCO leverde zijn eerste XENIX voor 8088/8086 in 1983.) |
04U |
16-bits FAT, DOS 3.0+ (partitiegrootte < 32M)
(Sommige oude DOS-versies hadden een bug waardoor deze partitie zich in de eerste fysieke 32 MB van de harde schijf moest bevinden) |
05U |
DOS Extended ( DOS 3.3+ Extended-volume)
Ondersteunt maximaal 8,4 GB schijven. Met dit type 05H zal DOS/Windows de uitgebreide BIOS-aanroep niet gebruiken, zelfs als deze beschikbaar is.) |
06U |
16-bits FAT, DOS Big, DOS 3.31+ (Partitiegrootte >= 32 MB)
(Partities zijn maximaal 2 GB voor DOS en Windows 95/98 met maximaal 65536 clusters per cluster, maximaal 32 KB. Windows NT kan maximaal 4 GB FAT16-partities maken met behulp van 64 KB-clusters.) |
07U |
OS/2 IFS (Installable File System) (HPFS is het bekendste voorbeeld van dit bestandssysteem. OS/2 kijkt alleen naar partities met ID 7 voor geïnstalleerde IFS. Dit is de reden dat het EXT2 IFS-pakket een speciale "Linux partition filter"-apparaatdriver bevat om OS/2 voor de gek te houden en te laten denken dat Linux-partities ID 07 hebben). |
07U |
Geavanceerde Unix |
07U |
Windows NT NTFS |
07U |
QNX2.x (vóór 1988)
(Voor het werkelijke bestandssysteem van partitietype 07H moet men de opstartrecord van de partitie controleren) |
08U |
OS/2 (alleen v1.0 tot v1.3) |
08U |
AIX-opstartpartitie
[AIX (Advanced Interactive Executive) is de IBM-versie van Unix] |
08U |
SplitDrive |
08U |
DELL-partitie die meerdere schijven beslaat |
08U |
Commodore-DOS |
08U |
QNX 1.x en 2.x
("qny" volgens QNX-partities) |
09U |
AIX-gegevenspartitie |
09U |
Coherent bestandssysteem
[Coherent was een UNIX-achtig besturingssysteem voor de 286-386-486 systemen, op de markt gebracht door Mark Williams Company onder leiding van Bob Swartz. Het stond bekend om zijn goede documentatie. Het werd geïntroduceerd in 1980 en stierf op 1 februari 1995. De laatste versies zijn V3.2 voor 286-386-486 en V4.0 (mei 1992, met beveiligde modus) alleen voor 386-486. Het werd verkocht voor $ 99 per exemplaar en het gerucht gaat dat er 40.000 exemplaren zijn verkocht. Een Coherent partitie moet primair zijn.] |
09U |
QNX 1.x en 2.x ("qnz" volgens QNX Partitions ) |
0aH |
OS/2 Boot Manager
(OS/2 is het besturingssysteem dat door Microsoft en IBM is ontworpen als opvolger van MS-DOS) |
0aH |
Coherente swappartitie |
0aH |
OPUS
(Open Parallel Unisys-server) |
0bH |
WIN95 OSR2 32-bit FAT
(OSR2 staat voor Microsoft's “OEM Service Release 2”. Het is voor partities tot 2047GB. Bijna altijd hebben Windows 95/98/ME hetzelfde bestandssysteem, namelijk FAT-32, binnen dezelfde partitielimieten) |
0cH |
LBA-mapped WIN95 OSR2 32-bit FAT
(Het gebruikt Logical Block Addressing – modus van Interrupt 13H extensies, daarom kunnen we zeggen dat dit het Extended INT 13H equivalent is van 0BH . Bijna altijd hebben Windows 95/98/ ME hetzelfde bestandssysteem, namelijk FAT-32, binnen dezelfde partitielimieten) |
0eH |
LBA-mapped WIN95: DOS 16-bit FAT of Logical Block Addressable VFAT
(hetzelfde als 06H maar met LBA-modus van INT 13H) |
0fH |
LBA-mapped WIN95: Uitgebreide partitie of logisch blok adresseerbare VFAT
(Het is hetzelfde als 05H , maar gebruikt de LBA-modus van INT 13H. Windows 95 gebruikt 0EH en 0FH als de uitgebreide INT13H-equivalenten van 06H en 05H . Windows NT herkent de vier Windows 95/98/ME-typen 0BH , 0CH , 0EH en 0FH niet ) |
10 uur |
OPUS
(Octaal Programma Update Systeem) |
11 uur |
Verborgen DOS 12-bits FAT of OS /2 Boot Manager verborgen 12-bits FAT-partitie of DOS Gezien vanuit OS/2 (Wanneer OS/2 Boot Manager een DOS-partitie opstart, verbergt het alle primaire DOS-partities behalve de opgestarte partitie door de ID te wijzigen en 01H , 04H , 06H en 07H worden respectievelijk 11H , 14H , 16H en 17H . |
12 uur |
Compaq Configuration/diagnostics partitie
(Wordt door Compaq gebruikt voor hun configuratie-utilitypartitie. Het is een FAT-compatibele partitie die opstart in hun utilities en kan worden toegevoegd aan een LILO-menu alsof het MS-DOS is.) |
14 uur |
(Verborgen DOS 16-bits FAT of OS/2 Boot Manager Verborgen DOS 16-bits FAT) <32M Partitie
(Partitiegrootte is kleiner dan 32M. ID 14H is het resultaat van het gebruik van Novell DOS 7.0 FDISK om de Linux Native-partitie te verwijderen.) |
15 uur |
Verborgen DOS-uitgebreid |
16 uur |
(Verborgen DOS 16-bits FAT of OS /2 Boot Manager verborgen 16-bits FAT) >=32M Partitie |
17 uur |
OS/2 Boot Manager verborgen HPFS - partitie of verborgen IFS (bijv. HPFS) |
17 uur |
Verborgen NTFS-partitie |
18 uur |
AST SmartSleep Partition of AST speciaal Windows swapbestand ("Zero-Volt Suspend" partitie)
[AST Research, Inc. (genoemd naar de eerste initialen van de oprichters, Albert Wong, Safi Qureshey en Thomas Yuen). Ascentia laptops hebben een "Zero – Volt Suspend Partition" of `SmartSleep Partition' van 2MB+geheugengrootte.] |
Bestandssysteemindicatorbyte in hexadecimaal |
Partitie/Bestandssysteem Beschrijving |
19 uur |
Willowtech Photon COS
(Code 19H wordt geclaimd voor Willowtech Photon COS door Willow Schlanger. |
1bH |
Verborgen WIN95 OSR2 32-bits FAT of verborgen Windows 95 FAT32-partitie |
1cH |
LBA-mapped Hidden WIN95 OSR2 32-bit FAT
(Dit is een verborgen Windows95 FAT32-partitie die gebruikmaakt van de LBA-modus van INT 13H-extensies) |
1eH |
LBA-toegewezen verborgen WIN95 16-bits FAT of verborgen LBA VFAT-partitie |
1FH |
LBA toegewezen Verborgen WIN95 Uitgebreide of Verborgen Uitgebreide LBA VFAT Partitie |
20 uur |
OFSI
(Willowsoft Overture-bestandssysteem) |
21 uur |
Officieel vermeld als Gereserveerd
(HP Volume Expansion, SpeedStor-variant.) |
21 uur |
FSO2
(geclaimd voor FSO2 (Oxygen File System) door Dave Poirier) |
22 uur |
FSO2 Extended Partition
(geclaimd voor Oxygen Extended Partition door Dave Poirier) |
23 uur |
Officieel vermeld als Gereserveerd |
24 uur |
NEC DOS 3.x |
26 uur |
Officieel vermeld als Gereserveerd |
31U |
Officieel vermeld als Gereserveerd |
32U |
NOS (Netwerkbesturingssysteem)
( 32H wordt gebruikt door het besturingssysteem NOS, dat wordt ontwikkeld door Alien Internet Services in Melbourne, Australië. De id 32H werd niet alleen gekozen omdat het een van de weinige was die nog beschikbaar zijn, maar ook omdat 32k de grootte is van de EEPROM waar het besturingssysteem oorspronkelijk voor bedoeld was. |
33U |
Officieel vermeld als Gereserveerd |
34U |
Officieel vermeld als Gereserveerd |
35U |
JFS op OS/2 of eCS
[ 35H wordt gebruikt door OS/2 Warp Server voor e-Business, OS/2 Convenience Pack (ook bekend als versie 4.5) en eComStation (eCS, een OEM-versie van OS/2 Convenience Pack) voor de OS/2-implementatie van JFS (IBM AIX Journaling File System)] |
36H |
Officieel vermeld als Gereserveerd |
38U |
THEOS v3.2 (2GB partitie) |
39U |
Plan 9 partitie
( Plan 9 is een besturingssysteem dat is ontwikkeld bij Bell Labs voor veel architecturen. Oorspronkelijk gebruikte Plan 9 een niet-toegewezen gedeelte aan het einde van de schijf. De 3e editie van Plan 9 gebruikt partities van het type 39H , onderverdeeld in subpartities die worden beschreven in de partitietabel van Plan 9 in de tweede sector van de partitie.) |
39U |
THEOS v4 overspannen partitie |
3aH |
THEOS v4 (4GB partitie) |
3bH |
THEOS v4 Extended partition
( THEOS is een multi-user multitasking besturingssysteem voor pc's, opgericht door Timothy Williams in 1983.) |
3cH |
PartitionMagic herstelpartitie
(Wanneer een PowerQuest -product zoals Partition Magic of Drive Image wijzigingen aanbrengt op de schijf, verandert het eerst de typevlag naar 3CH, zodat het besturingssysteem niet zal proberen deze te wijzigen. Aan het einde van het proces wordt het weer teruggezet naar wat het eerst was. Daarom is de enige keer dat u een 3CH-typevlag ziet, als het proces op een of andere manier is onderbroken, zoals uitschakelen, opnieuw opstarten door de gebruiker, enz. Als u het handmatig terugzet met een partitietabeleditor of een ander schijfbewerkingsprogramma, is meestal alles in orde.) |
3dH |
Verborgen NetWare |
40U |
Venix 80286
(Dit is een heel oud Unix-achtig besturingssysteem voor pc's.) |
41U |
Linux/MINIX (schijf delen met DR-DOS)
(DR-DOS staat voor Digital Research-Disk Operating System.) |
41U |
Persoonlijke RISC-boot |
41U |
PPC PReP (Power PC Reference Platform) opstartpartitie |
42U |
Linux swap (schijf delen met DR-DOS) |
42U |
SFS (Secure File System)
( SFS is een gecodeerd bestandssysteemstuurprogramma voor DOS op 386+ pc's, geschreven door Peter Gutmann.) |
Bestandssysteemindicatorbyte in hexadecimaal |
Partitie/Bestandssysteem Beschrijving |
42U |
Windows 2000 Dynamic Extended Partition Marker
(Als een partitietabelvermelding van het type 42H aanwezig is in de oude partitietabel, negeert Windows 2000 de oude partitietabel en gebruikt een eigen partitietabel en een eigen partitieschema (LDM of DDM). Zuiver dynamische schijven (schijven die geen hard-linked partities bevatten) hebben slechts één partitietabelvermelding, type 42H , om de hele schijf te definiëren. Dynamische schijven slaan hun volumeconfiguratie op in een database die zich bevindt in een privéregio van 1 MB aan het einde van elke dynamische schijf.) |
43H |
Linux native (schijf delen met DR-DOS) |
44U |
GoBack-partitie
( GoBack is een hulpprogramma dat wijzigingen op de schijf registreert, zodat u een eerdere staat kunt bekijken of ernaar kunt teruggaan. Het neemt de schijf-I/O over zoals een schijfbeheerder dat zou doen en slaat de logs op in een eigen partitie.) |
45U |
Boot-US boot manager
( Boot-US (Ulrich Straub) boot manager kan worden geïnstalleerd op MBR, een aparte primaire partitie of diskette. Wanneer geïnstalleerd op een primaire partitie krijgt deze partitie de ID 45H . Deze partitie bevat geen bestandssysteem, het bevat alleen de boot manager en neemt één cilinder in beslag (minder dan 8,4 GB). ) |
45U |
Direct |
45U |
EUMEL/Aankondiging |
46H |
EUMEL/Aankondiging |
47U |
EUMEL/Aankondiging |
48U |
EUMEL/Elan
( EUMEL , later bekend als Ergos L3 , zijn de multi-user multitasking systemen ontwikkeld door Jochen Liedtke bij GMD, gebruikmakend van de Elan programmeertaal. Het werd gebruikt op Duitse scholen voor computerwetenschapsonderwijs.) |
4aH |
AdaOS Aquila |
4aH |
ALFS/THIN lichtgewicht bestandssysteem voor DOS |
4cH |
Oberon-partitie |
4dH |
QNX4.x |
4eH |
QNX4.x 2e partitie |
4fH |
QNX4.x 3e partitie
( QNX is een POSIX ( Portable Operating System Interface for Unix )-gecertificeerd, microkernel, gedistribueerd, fouttolerant besturingssysteem voor de 386 en later, inclusief ondersteuning voor de 386EX in embedded applicaties.) |
4fH |
Oberon boot-/datapartitie |
50U |
OnTrack Disk Manager (oudere versies), Read-Only Partition ( Disk Manager is een programma van OnTrack waarmee mensen IDE-schijven groter dan 504 MB onder DOS kunnen gebruiken. Linux-kernelversies ouder dan 1.3.14 kunnen niet naast DM worden gebruikt.) |
50U |
Lynx RTOS (Real-Time Operating System)
( Met Lynx RTOS kunnen gebruikers maximaal 14 partities van elk 2 GB op zowel SCSI- als IDE-schijven plaatsen, voor een totaal van maximaal 28 GB aan bestandssysteemruimte.) |
50U |
Inheemse Oberon |
51H |
OnTrack Disk Manager (DM6.0 Aux1) , Partitie lezen/schrijven |
51H |
Nieuwigheid |
52H |
CP/M |
52H |
Microport SysV/AT of Microport Systeem V/386 |
53H |
OnTrack Disk Manager (DM6.0 Aux3), alleen-schrijven partitie |
54U |
OnTrack Disk Manager 6.0 Dynamische schijfoverlay |
55H |
EZ-Drive Partition
( EZ-Drive is een ander schijfbeheerprogramma dat in 1992 door MicroHouse werd ontwikkeld . Het wordt nu op de markt gebracht door StorageSoft .) |
56H |
Golden Bow VFeature Partitioned Volume.
(Dit is ook een Disk Manager-achtige Utility-software. Dit is een niet-standaard DOS-volume.) |
56H |
DM geconverteerd naar EZ-BIOS |
57H |
DrivePro
( DrivePro werd in 1992 ontwikkeld door MicroHouse. Nu wordt het op de markt gebracht door StorageSoft .) |
57H |
VNDI-partitie |
5cH |
Priam EDisk Partitioned Volume
( Priam EDisk is een hulpprogramma van het type Disk Manager. Dit is een niet-standaard DOS-volume.) |
61H |
SpeedStor
( Storage Dimensions SpeedStor Partitioned Volume. Dit is een niet-standaard DOS-volume. Het is een hulpprogramma van het type Disk Manager.) |
63H |
Unix-systeem V/386, 386/ix, SCO, ISC Unix, UnixWare, Mach, MtXinu BSD 4.3 op Mach, GNU Hurd |
64U |
Novell NetWare 286, 2.xx |
Bestandssysteemindicatorbyte in hexadecimaal |
Partitie/Bestandssysteem Beschrijving |
64U |
Door PC-ARMOUR beveiligde partitie
( 64H wordt gebruikt door PC-ARMOUR schijfbeveiliging door Dr. A. Solomon, met als doel de schijf ontoegankelijk te houden totdat het juiste wachtwoord is ingevoerd en vervolgens een INT 13H-hook boven de bovenkant van het geheugen is geladen die CHS = 0-0-2 aangaf, met een kopie van de echte partitietabel, wanneer 0-0-1 werd aangevraagd). |
65H |
Novell NetWare 3.86, 3.xx of 4.xx
( Novell Netware 3.0 en latere versies gebruiken één partitie per schijf. Het wijst logische volumes toe binnen deze partities. De volumes kunnen worden verdeeld over meerdere schijven. Het gebruikte bestandssysteem heet Turbo FAT en het lijkt maar heel vaag op het DOS FAT-bestandssysteem. Novell Netware was vroeger het belangrijkste beschikbare netwerkbesturingssysteem. Netware 68 of S-Net (1983) was voor een Motorola 68000, Netware 86 voor een Intel 8086 of 8088. Netware 286 was voor een Intel 80286 en bestond in verschillende versies die later werden samengevoegd tot Netware 2.2 . Netware 386 was een herschrijving in C voor de Intel 386 die later werd hernoemd naar Netware 3.x (3.0, 3.1, 3.10, 3.11 en 3.12 etc) versies. Zijn opvolger Netware 4.xx had versies 4.00, 4.01, 4.02, 4.10 en 4.11. Toen kwam Intranetware) |
66H |
Novell Netware SMS Partition
( SMS staat voor Storage Management Services. Het wordt nu niet meer gebruikt.) |
67H |
Nieuwigheid |
68H |
Nieuwigheid |
69H |
Novell Netware 5+ en Novell Netware NSS Partition
( NSS staat voor Novell Storage Services.) |
70H |
DiskSecure Multi-Boot |
71H |
Officieel vermeld als gereserveerd |
73H |
Officieel vermeld als gereserveerd |
74U |
Officieel vermeld als gereserveerd |
74U |
Scramdisk-partitie
( Scramdisk is een software voor schijfversleuteling. Het ondersteunt containerbestanden, speciale partities van het type 74H en schijven die verborgen zijn in WAV-audiobestanden.) |
75H |
IBM-PC/IX |
76H |
Officieel vermeld als gereserveerd |
77H |
M2FS/M2CS-partitie |
77H |
QNX4.x |
78H |
XOSL-bestandssysteem
( XOSL Bootloader-bestandssysteem) |
78H |
QNY4.x |
79H |
QNZ4.x |
7EH |
REPAREREN |
7Fh |
Alt-OS-ontwikkelingspartitiestandaard |
80H |
Oude MINIX, MINIX v1.1 tot v1.4a |
81H |
MINIX 1.4b en later
( MINIX is een Unix-achtig besturingssysteem geschreven door Andy Tanenbaum en studenten aan de Vrije Universiteit, Amsterdam, rond 1989-1991. Het draait op pc's (8086 en hoger), Macintosh, Atari, Amiga, Sparc. |
81H |
Vroege Linux |
81H |
Mitac Geavanceerde Schijfbeheerder |
82H |
Eerste |
82H |
Solaris x86
( Solaris maakt één partitie met ID 82H en gebruikt vervolgens Sun-schijflabels binnen de partitie om deze verder op te splitsen.) |
82H |
Linux Swap-partitie |
83H |
Linux Native Partition of Linux native bestandssysteem of Linux Ext2fs
(Linux is een Unix-achtig besturingssysteem geschreven door Linus Torvalds en vele anderen op het internet sinds 1991. Het draait op PC's 386 en later en een verscheidenheid aan andere hardware. Het wordt gedistribueerd onder GPL (General Public License). Verschillende bestandssysteemtypen zoals xiafs, ext2, ext3, reiserfs, etc. gebruiken allemaal ID 83H .) |
84H |
OS/2 verborgen C:-schijf of OS/2-hernummerde type 04-partitie.
( OS/2-hernummerde type 04h-partitie is gerelateerd aan het verbergen van DOS C:-schijf) |
84H |
Slaapstandpartitie
(gerapporteerd voor verschillende laptopmodellen, bijvoorbeeld gebruikt op Dell Latitudes (met Dell BIOS) die gebruikmaken van het hulpprogramma MKS2D.) |
85H |
Uitgebreide Linux-partitie |
86H |
Oud Linux RAID-partitie superblok |
86H |
FAT16-volume/stripe-set (Windows NT) of NTFS -volumeset
(dit is een Legacy Fault Tolerant FAT16-volume.) |
87H |
HPFS fouttolerante gespiegelde partitie of NTFS -volumeset of NTFS-volume/stripeset (
Legacy fouttolerant NTFS-volume. HPFS fouttolerante gespiegelde partitie.) |
8aH |
Linux Kernel Partitie
(wordt gebruikt door AiR-BOOT) |
Bestandssysteemindicatorbyte in hexadecimaal |
Partitie/Bestandssysteem Beschrijving |
8bH |
Legacy Fault Tolerant FAT32-volume |
8cH |
Legacy Fault Tolerant FAT32-volume met BIOS Extended INT 13H. |
8dH |
Free FDISK verborgen primaire DOS FAT12-partitie
( Free FDISK is de FDISK die door FreeDOS wordt gebruikt . Het verbergt de typen 01H , 04H , 05H , 06H , 0BH , 0CH , 0EH en 0FH door het decimale getal 140 (8CH) toe te voegen .) |
8eH |
Linux Logical Volume Manager-partitie |
90H |
Gratis FDISK verborgen primaire DOS FAT16-partitie |
91H |
Gratis FDISK verborgen DOS uitgebreide partitie |
92H |
Gratis FDISK verborgen Primaire DOS grote FAT16 partitie |
93H |
Verborgen Linux native partitie |
93H |
Amoeba-bestandssysteem |
94H |
Amoeba bad block table
(Amoeba is een gedistribueerd besturingssysteem geschreven door Andy Tanenbaum, samen met Frans Kaashoek, Sape Mullender, Robert van Renesse en anderen sinds 1981. Het draait op pc's (386 en hoger), Sun3, Sparc, 68030. Het is gratis voor universiteiten voor onderzoeks- en onderwijsdoeleinden.) |
95H |
MIT EXOPC native partitie |
97H |
Gratis FDISK verborgen primaire DOS FAT32-partitie |
98H |
Gratis FDISK verborgen primaire DOS FAT32-partitie (LBA) |
99U |
Mylex EISA SCSI of DCE376 logische schijf
(wordt gebruikt door de Mylex DCE376 EISA SCSI- adapter voor partities die groter zijn dan de 1024 cilinder van een schijf.) |
9aH |
Gratis FDISK verborgen primaire DOS FAT16-partitie (LBA) |
9bH |
Gratis FDISK verborgen DOS uitgebreide partitie (LBA) |
9fH |
BSD/besturingssysteem |
a0H |
Phoenix NoteBIOS Power Management "Save-to-Disk"-partitie of laptop-slaappartitie
(wordt gerapporteerd voor verschillende laptops zoals IBM Thinkpad , Phoenix NoteBIOS , Toshiba onder namen zoals zero-volt suspend- partitie, suspend-to-disk -partitie, save-to-disk- partitie, power-managementpartitie , slaappartitie , meestal aan het begin of einde van het schijfgebied.) |
a1H |
Laptop-hibernationpartitie
(gebruikt als "Save-to-Disk"-partitie op een NEC 6000H-notebook. Typen A0H en A1H worden gebruikt op systemen met Phoenix BIOS. Het hulpprogramma Phoenix PHDISK wordt hierbij gebruikt.) |
a1H |
HP Volume Expansion (SpeedStor-variant) |
a3H |
Officieel vermeld als Gereserveerd |
a4H |
Officieel vermeld als Gereserveerd |
a5H |
BSD/386, 386BSD, NetBSD, FreeBSD
(386BSD is een Unix-achtig besturingssysteem, een port van 4.3BSD Net/2 naar de PC, gemaakt door Bill Jolitz rond 1991.) |
a6H |
OpenBSD
(OpenBSD, geleid door Theo de Raadt, splitste zich af van NetBSD. Het probeert de nadruk te leggen op beveiliging.) |
a7H |
NEXTSTEP
( NEXTSTEP is gebaseerd op Mach 2.6 en functies van Mach 3.0 . Het is een echt objectgeoriënteerd besturingssysteem en gebruikersomgeving. |
a8H |
Mac OS-X
( Apple's OS-X gebruikt dit type voor zijn bestandssysteempartitie) |
a9H |
NetBSD |
aaH |
Olivetti Fat 12 1.44MB Service Partition
(bevat een kale DOS 6.22 en een hulpprogramma om de typen 06H en AAH in de partitietabel uit te wisselen.) |
abH |
Mac OS-X opstartpartitie
(Apple's OS-X (Darwin Intel) gebruikt dit type voor de opstartpartitie.) |
abH |
GO! partitie |
dood |
ShagOS-bestandssysteem |
doorH |
ShagOS-wisselpartitie |
b0H |
BootStar Dummy
(De bootmanager BootStar beheert zijn eigen partitietabel, met maximaal 15 primaire partities. Het vult ongebruikte vermeldingen in de MBR met BootStar Dummy-waarden.) |
b1H |
Officieel vermeld als Gereserveerd |
b3H |
Officieel vermeld als Gereserveerd |
b4H |
Officieel vermeld als Gereserveerd |
b6H |
Officieel vermeld als Gereserveerd |
B6H |
Windows NT-spiegelset (master), FAT16-bestandssysteem |
b7H |
BSDI-bestandssysteem (secundair swap), BSDI BSD/386-bestandssysteem |
B7H |
Windows NT-spiegelset (master), NTFS-bestandssysteem |
Bestandssysteemindicatorbyte in hexadecimaal |
Partitie/Bestandssysteem Beschrijving |
b8H |
BSDI BSD/386 swappartitie (secundair bestandssysteem)
(BSDI (Berkeley Software Design, Inc.) werd opgericht door voormalige CSRG (UCB Computer Systems Research Group) leden. Hun besturingssysteem, gebaseerd op Net/2, heette BSD/386.) |
bbH |
Boot Wizard verborgen |
Goed |
Solaris 8 opstartpartitie |
c0H |
DR-DOS/Novell DOS beveiligde partitie |
C0H |
CTOS |
c0H |
REAL/32 veilige kleine partitie |
c0H |
NTFT-partitie |
c1H |
DR DOS 6.0 LOGIN.EXE-beveiligde 12-bits FAT-partitie |
c2H |
Gereserveerd voor DR-DOS 7+ |
c2H |
Verborgen Linux |
c3H |
Verborgen Linux-swap |
c4H |
DR DOS 6.0 LOGIN.EXE-beveiligde 16-bits FAT-partitie |
c5H |
DRDOS/secured (uitgebreid) |
c6H |
DRDOS/secured (FAT-16, >= 32M)
( DR-DOS 6.0 voegt C0H toe aan het partitietype voor een LOGIN.EXE - beveiligde partitie, zodat de gebruiker de wachtwoordcontrole niet kan omzeilen door op te starten vanaf een MS-DOS-floppy. Anders lijkt het erop dat de typen C1H , C4H , C5H , C6H en D1H , D4H , D5H , D6H precies hetzelfde worden gebruikt als 1H , 4H , 5H en 6H .) |
c6H |
Corrupte FAT16 volume/stripe set (Windows NT)
(NTFS voegt C0H toe aan het partitietype voor uitgeschakelde delen van een Fault Tolerant set. Zo krijgt men de typen C6H , C7H .) |
c7H |
Windows NT beschadigde NTFS-volume/stripe-set |
c7H |
Syrinx laars |
c8H |
Officieel vermeld als Gereserveerd |
c9H |
Officieel vermeld als Gereserveerd |
caH |
Officieel vermeld als Gereserveerd |
cbH |
Gereserveerd voor DR-DOS beveiligde FAT32 |
ccH |
Gereserveerd voor DR-DOS beveiligde FAT32 (LBA) |
cdH |
CTOS-geheugendump |
ceH |
Gereserveerd voor DR-DOS beveiligde FAT16 (LBA) |
d0H |
REAL/32 beveiligde grote partitie
(REAL/32 is een voortzetting van DR Multi-user DOS.) |
d1H |
Oude Multi-user DOS beveiligde FAT12 |
d4H |
Oude Multi-user DOS beveiligde FAT16 <32M |
d5H |
Oude Multi-user DOS beveiligde uitgebreide partitie |
d6H |
Oude Multi-user DOS beveiligde FAT16 >=32M |
d8H |
CP/M-86 |
al |
Niet-FS-gegevens |
dbH |
Digitaal onderzoek CP/M, gelijktijdige CP/M, gelijktijdige DOS |
dbH |
CTOS (Convergent Technologies OS - Unisys) |
dbH |
KDG Telemetry SCPU boot
(KDG Telemetry gebruikt ID DBH om een beveiligde binaire afbeelding op te slaan van de code die moet worden uitgevoerd op een x86-gebaseerde SCPU (Supervisory CPU)-module uit het DT800-bereik.) |
ddH |
Verborgen CTOS Memdump |
deH |
Dell PowerEdge Server-hulpprogramma's (FAT) |
dfH |
DG/UX virtuele schijfbeheerderpartitie |
dfH |
BootIt EMBRM
(De bootmanager BootIt beheert zijn eigen partitietabel met maximaal 255 primaire partities.) |
e0H |
Gereserveerd door ST Microelectronics voor een bestandssysteem genaamd ST AVFS. |
e1H |
DOS-toegang of SpeedStor 12-bits FAT uitgebreide partitie
(dit is een SSTOR-partitie met cilinders groter dan 1023.) |
E2H |
DOS-alleen-lezen |
e3H |
Opslag afmetingen |
e4H |
SpeedStor 16-bits FAT uitgebreide partitie < 1024 cilinders |
e5H |
Officieel vermeld als Gereserveerd |
e5H |
Tandy DOS met logische sectorale FAT |
e6H |
Officieel vermeld als Gereserveerd |
ebH |
BeOS BFS (BFS1)
( BeOS is een besturingssysteem dat op Power PC's draait) |
edH |
Gereserveerd voor Matthias Paul's Sprytix |
Hoi |
Indicatie dat deze legacy MBR wordt gevolgd door een EFI-header |
alsH |
Partitie die een EFI-bestandssysteem bevat |
f0H |
Linux/PA-RISC bootloader |
f1H |
Opslag afmetingen |
f2H |
DOS 3.3+ secundaire partitie |
f2H |
Unisys DOS met logische sectorale FAT |
f3H |
Officieel vermeld als Gereserveerd |
f4H |
SpeedStor grote partitie |
F4H |
Proloog enkelvolume partitie |
Bestandssysteemindicatorbyte in hexadecimaal |
Partitie/Bestandssysteem Beschrijving |
f5H |
Prologue multi-volume partitie
(De type F4H partitie bevat één volume en wordt niet meer gebruikt. De type F5H partitie bevat 1 tot 10 volumes genaamd MD0 tot MD9 . Het ondersteunt één of meer systemen. Elk volume kan als bestandssysteem het NGF- bestandssysteem of TwinFS -bestandssysteem hebben.) |
f6H |
Officieel vermeld als Gereserveerd |
F6H |
Opslagafmetingen SpeedStor |
faH |
De Bochs x86-emulator van MandrakeSoft |
vbH |
VMware-bestandssysteempartitie |
fcH |
VMware Swap-partitie
(VMware biedt virtuele machines waarop Linux , Windows en FreeBSD kunnen worden uitgevoerd .) |
fdH |
Linux raid-partitie met automatische detectie met behulp van persistent superblok |
feH |
SpeedStor meer dan 1024 cilinders |
feH |
LANstap |
feH |
IBM PS/2 IML (Initial Microcode Load)-partitie
(bevindt zich aan het einde van de schijf.) |
feH |
Verborgen partitie in Windows NT Schijfbeheer
(Windows NT Schijfbeheer markeert verborgen partities, d.w.z. partities die aanwezig zijn maar niet toegankelijk zijn, als type FEH .) |
feH |
Linux Logical Volume Manager-partitie (oud) |
ffH |
XENIX Bad Block-tabel |
DOS Boot Record (DBR) / DOS Boot Sector
Na de partitietabel is de DOS Boot Record (DBR) of soms DOS Boot Sector genoemd de tweede belangrijkste informatie op uw harde schijf. De meeste commerciële toepassingen voor schijfherstel zijn in staat om vernietigde boot-records te regenereren
De DOS Boot Record (DBR) voor de eerste partitie op een harde schijf bevindt zich meestal op Absolute Sector 63 (de 64e sector op de schijfeenheid) of in CHS-vorm kunnen we zeggen C–H–S = 0–1–1 voor de meeste schijven.
Deze locatie kan echter variëren afhankelijk van de SPT (Sectors per Track) van de Drive. Bijvoorbeeld, op een oude 245MB drive met slechts 31 SPT, bevond de Boot Record zich op de 32e sector (Absolute Sector 31).
De DBR wordt gemaakt door de FORMAT-opdracht van DOS. Dit programma kan worden uitgevoerd vanaf een DOS-floppydisk (of direct vanaf een ander volume, volgens bepaalde OS-limieten) om de DBR te maken nadat de partitionering is uitgevoerd met de FDISK-opdracht.
De sector waarop DBR zich bevindt, wordt logische sector 1 van die specifieke partitie voor DOS. Het sectornummer dat door DOS wordt gebruikt, begint bij de fysieke sector waarop DBR zich bevindt.
De eerste logische sector van elke DOS-partitie bevat een DOS Boot Record (DBR) of DOS Boot Sector. De taak van de DBR is om het besturingssysteem van de harde schijf in het hoofdgeheugen van de computer te laden en de controle van het systeem aan het geladen programma te geven.
Om dit te doen, bevat de DBR een klein programma dat wordt uitgevoerd door het Master Boot Record (MBR) Executable-programma. Alle DOS-partities bevatten de programmacode om de machine op te starten, d.w.z. het besturingssysteem te laden, maar alleen die partitie krijgt controle door de Master Boot Record die is gespecificeerd als actieve partitie, in de partitietabelinvoer.
Het Boot-programma in de DBR zoekt naar de twee programmabestanden IBMBIO.COM of IO.SYS en IBMDOS.COM of MSDOS.SYS, in de hoofdmap van de partitie. IBMBIO.COM en IBMDOS.COM zijn twee verborgen systeemprogrammabestanden op de PC-DOS-systemen of originele IBM-systemen. Terwijl IO.SYS en MSDOS.SYS twee verborgen systeemprogrammabestanden zijn op een MS-DOS-besturingssysteem dat wordt geleverd met IBM-compatibele systemen.
Daarna laadt het IO.SYS (of IBMBIO.COM) programma het MSDOS.SYS (of IBMDOS.COM) programma en het COMMAND.COM programma. Dit complete proces wordt “booten” van de computer genoemd. Als deze systeembestanden niet beschikbaar zijn in de directory, dan geeft dit MBR programma geruststellende foutmeldingen weer zoals,
"Ongeldige systeemschijf of schijf-I/O-fout,
Plaats de schijf terug en druk vervolgens op een willekeurige toets…”
Op het scherm verschijnt de melding dat de gebruiker een opstartbare diskette met de hierboven genoemde programma's in het floppy drive plaatst en op een toets drukt.
Omdat de floppy geen partities bevat, bevat deze ook geen MBR of Master Partition Table op de absolute sector 0. In plaats daarvan bevat de floppy de DBR op de allereerste sector.
De volgende tabel geeft een eenvoudige kaart van de lay-out van een 3½ Inches, 1.44 MB floppy disk nadat deze is geformatteerd met het FAT12-bestandssysteem. Het toont waar de Boot Record, beide kopieën van de FAT, de Root Directory en het begin van de Data Area zich bevinden:
Logische kaart van 3½ inch, 1,44 MB floppy disk, geformatteerd met het FAT12-bestandssysteem en met 18 sectoren per spoor, 80 sporen, 2 zijden en 512 bytes per sector (met 1 sector per cluster). |
Absolute sectoren |
Inhoud |
0 |
Opstartrecord |
1 – 9 |
VET 1 |
10 – 18 |
VET 2 |
19 – 32 |
Hoofdmap |
33 – 2879 |
Gegevensgebied |
U kunt ook subdirectories maken in het Data Area met bestanden die er schijnbaar in zitten. Subdirectories zijn in feite niets meer dan een speciaal bestand dat alle bestanden opsomt die schijnbaar in deze directory zitten en alle relevante gegevens over elk bestand, zoals de locatie van de Starting Cluster van elk bestand, datum, tijd en bestandsgrootte, etc.
De DBR bevat ook belangrijke informatie over de schijfgeometrie. Deze informatie bevindt zich in de eerste sector van elke partitie, zoals:
- Jumpcode + NOP
- OEM-naam en versie
- Bytes per sector
- Sectoren per cluster
- Gereserveerde sectoren
- Aantal kopieën van FAT
- Maximale rootdirectory-ingangen (maar niet beschikbaar voor FAT32)
- Aantal sectoren in partitie kleiner dan 32 MB (daarom niet beschikbaar voor FAT32)
- Media Descriptor (F8h voor harde schijven)
- Sectoren per FAT (in oudere FAT-systemen en niet beschikbaar voor FAT32)
- Sectoren per spoor
- Aantal hoofden
- Aantal verborgen sectoren in partitie
- Aantal sectoren in partitie
- Aantal sectoren per FAT
- FAT-informatiedescriptorvlaggen
- Versie van FAT32-station
- Clusternummer van het begin van de rootdirectory
- Sectornummer van de bestandssysteeminformatiesector
- Sectornummer van de back-upbootsector
- Gereserveerd
- Logisch schijfnummer van partitie
- Uitgebreide handtekening (29H)
- Serienummer van partitie
- Volumenaam van partitie
- FAT-naam
- Uitvoerbare code
- Uitvoerbare marker of magisch getal (AAH 55H)
De eerste 3 bytes van DBR bevatten een JMP-instructie om de informatie over te slaan en extensies mogelijk te maken omdat de MBR deze sector in het geheugen laadt en de uitvoering ernaar overdraagt. Meestal zijn deze drie bytes hexadecimale getallen in een formaat als E9 XX XX (Hex) of EB XX 90 (Hex).
Na de eerste JMP-instructie is OEM ID een 8-bits veld dat door Microsoft is gereserveerd voor OEM-identificatie. De OEM ID beschrijft het programma dat de bootrecord heeft gemaakt. Dit is vaak "MSWIN4.0" voor Windows 95/98/ME, "IBM 20.0" voor OS/2 en "MSDOS5.0" voor MS-DOS 4.0 en later.
Het derde hoofdonderdeel van de bootsector is het BIOS Parameter Block (BPB). Het disk parameter block is een zeer belangrijk datagebied voor DOS. Het helpt DOS om het volgende te vinden:
- Bytes per sector
- Sectoren per cluster
- Gereserveerde sectoren
- Aantal FAT
- Aantal root-directory-items
FAT32 DOS Boot Record-indeling |
Verschuiven |
Beschrijving |
Maat |
00U |
Jumpcode + NOP |
3 bytes |
03U |
OEM-naam en versie |
8 Bytes |
0BH |
Bytes per sector |
2 bytes |
0DH |
Sectoren per cluster |
1 byte |
0EH |
Gereserveerde sectoren |
2 bytes |
10 uur |
Aantal kopieën van FAT |
1 byte |
11 uur |
Maximale rootdirectory-ingangen (maar niet beschikbaar voor FAT32) |
2 bytes |
13U |
Aantal sectoren in partitie kleiner dan 32 MB (daarom niet beschikbaar voor FAT32) |
2 bytes |
15 uur |
Media Descriptor (F8H voor harde schijven) |
1 byte |
16 uur |
Sectoren per FAT (in oudere FAT-systemen en niet beschikbaar voor FAT32) |
2 bytes |
18 uur |
Sectoren per spoor |
2 bytes |
1Ah |
Aantal hoofden |
2 bytes |
1CH |
Aantal verborgen sectoren in partitie |
4 bytes |
20 uur |
Aantal sectoren in partitie |
4 bytes |
24 uur |
Aantal sectoren per FAT |
4 bytes |
28 uur |
Vlaggen (bits 0-4 geven actieve FAT-kopie aan) (Bit 7 geeft aan of FAT-mirroring is ingeschakeld of uitgeschakeld <Wissen is ingeschakeld>) (Als FAT-mirroring is uitgeschakeld, wordt de FAT-informatie alleen naar de kopie geschreven die wordt aangegeven door bits 0-4) |
2 bytes |
2Ah |
Versie van FAT32-station (hoge byte = hoofdversie, lage byte = kleine versie) |
2 bytes |
2CH |
Clusternummer van het begin van de rootdirectory |
4 bytes |
30U |
Sectornummer van de bestandssysteeminformatiesector (verwezen vanaf het begin van de partitie) |
2 bytes |
32U |
Sectornummer van de back-upbootsector (verwezen vanaf het begin van de partitie) |
2 bytes |
34U |
Gereserveerd |
12 bytes |
40U |
Logisch schijfnummer van partitie |
1 byte |
41U |
Ongebruikt (kan een hoge byte van de vorige invoer zijn) |
1 byte |
42U |
Uitgebreide handtekening (29H) |
1 byte |
43H |
Serienummer of 32-bits binaire ID van partitie
(binaire ID van 32 bits verstrekt door het besturingssysteem zelf) |
4 bytes |
47U |
Volumenaam van partitie |
11 Bytes |
52H |
FAT-naam (in dit geval FAT32) |
8 Bytes |
5AH |
Uitvoerbare code |
420 Bytes |
1FEH |
Uitvoerbare marker of magisch getal (AAH 55H) |
2 bytes |
- Totaal aantal sectoren in logisch volume (klein, voor logische volumegrootte kleiner dan of gelijk aan 32 MB)
- Media-descriptorbyte
- Aantal sectoren per FA
Deze informatie helpt ons de locatie van FAT en enkele andere belangrijke waarden te vinden. Als u hier verkeerde informatie plaatst of deze waarden corrumpeert, is het opstarten vanaf de harde schijf onmogelijk. Soms voorkomt het hebben van verkeerde informatie in het schijfparameterblok het opstarten vanaf de harde schijf en vanaf de floppydiskdrive.
Bytes per sector zijn bijna altijd 512. Als dit niet het geval is, moet het een gehele macht van 2 zijn (bijvoorbeeld 64, 128 en 256).
Het aantal sectoren per cluster is afhankelijk van de grootte van het cluster. (Zie de sectie Clusters eerder in dit hoofdstuk). Aantal kopieën van FAT is bijna altijd 2.
Aantal hoofdmappen: Dit is afhankelijk van het bestandssysteem en de volumegrootte. (Zie hiervoor de bestandssysteemlimieten en de beschrijving van de hoofdmap hierna).
Totaal aantal sectoren: Exclusief verborgen sectoren. Als het 0 is in de BPB, wordt het veld in de uitgebreide boot record-informatie gebruikt en vice versa. Merk op dat het mogelijk is om te bepalen of de uitgebreide informatie (DOS 4.0 en later) beschikbaar is door de handtekeningbyte op offset 26H te onderzoeken.
Alle sectoren vóór de bootsector van een logische DOS-drive worden beschouwd als 'verborgen' sectoren. DOS interpreteert verborgen sectoren niet. Normale floppy drives hebben 0 verborgen sectoren. Harde schijfpartities hebben een nummer dat hun locatie op de drive weergeeft. Merk op dat de hele eerste kop van de eerste cilinder meestal is gereserveerd voor de partitietabel, ook al is het alleen de eerste sector die daadwerkelijk wordt gebruikt.
Media descriptor: Wordt gebruikt om een indicatie te geven van het media- of schijftype. Normale waarden zijn 0 voor een uitgebreide DOS-partitie en F8H voor een harde schijf. De waarden van Media Descriptor Bytes zijn in de volgende tabel weergegeven.
Mediabeschrijvingen |
Type |
Capaciteit |
Grootte en type |
F0H |
2,88 MB |
3,5", 2-zijdig, 36 sectoren per spoor |
F0H |
1,44 MB |
3,5", 2-zijdig, 18 sectoren per spoor |
F9H |
720 KB |
3,5", 2-zijdig, 9 sectoren per spoor |
F9H |
1,2 MB |
5,25", 2-zijdig, 15 sectoren per spoor |
FDH |
360 KB |
5,25", 2-zijdig, 9 sectoren per spoor |
FFH |
320 KB |
5,25", 2-zijdig, 8 sectoren per spoor |
FCH |
180 KB |
5,25", 1-zijdig, 9 sectoren per spoor |
FEH |
160 KB |
5,25", 1-zijdig, 8 sectoren per spoor |
F8H |
--------- |
Vaste schijf |
Aantal sectoren van FAT: Moet worden berekend. De methode voor het berekenen van de grootte van FAT is gegeven in de beschrijving van FAT in het hoofdstuk.
De DBR van een FAT32-bestandssysteem is weergegeven in de onderstaande afbeelding:
Sectoren van FAT
Sectoren per track (of sectoren per kop): Sectoren per kop is het aantal sectoren gegroepeerd onder één kop. Op dezelfde manier weerspiegelt koppen per cilinder het aantal cilinders per kop. Als deze partitie een CHS-partitie is, moeten deze waarden hetzelfde zijn als die welke door BIOS worden geretourneerd. Als ze niet hetzelfde zijn, moet u er rekening mee houden dat de schijf verkeerd is geconfigureerd en dat de partitie mogelijk onbruikbaar is.
Verborgen sectoren: Zoals we al hebben besproken, is dit het aantal sectoren op de fysieke schijf voorafgaand aan de start van het volume, vóór de bootsector zelf. Het wordt gebruikt tijdens de bootsequentie om de absolute offset naar de rootdirectory en datagebieden te berekenen. Zie het als het aantal sectoren tussen het begin van deze partitie en de partitietabel zelf.
Dit veld moet hetzelfde zijn als het "aantal sectoren voorafgaand aan de partitie" in de partitietabel. Let op: dit is niet noodzakelijkerwijs het fysieke LBA-adres van de eerste sector, aangezien er secundaire partities kunnen bestaan.
Als de Hidden Sectors niet hetzelfde zijn als in de partitietabel, kunt u de bootsector als corrupt beschouwen en de partitie onbruikbaar. Merk ook op dat het high word meestal rommel bevat in oude versies van DOS.
Als u vermoedt dat een opstartsector beschadigd is, kunt u een aantal van de hierboven genoemde velden controleren om te zien of de daar vermelde waarden kloppen.
Bijvoorbeeld, Bytes per Sector zal in de overgrote meerderheid van de gevallen 512 zijn. U kunt ook verwachten dat u tekstreeksen ziet in het uitvoerbare codegedeelte van de bootsector die geschikt zijn voor het besturingssysteem dat de schijf heeft geformatteerd.
Typische tekstreeksen op FAT-volumes die zijn geformatteerd door MS-DOS zijn bijvoorbeeld: "Ongeldige systeemschijf.", "Schijf-I/O-fout.", "Vervang de schijf en druk vervolgens op een toets.", "Niet-systeemschijf of schijffout.", "Vervang de schijf en druk op een toets wanneer deze gereed is." en "Schijfopstartfout." Tekstreeksen op FAT-volumes die zijn geformatteerd door Windows NT zijn bijvoorbeeld: "BOOT: Kan NTLDR niet vinden (of niet vinden).", "I/O-fout bij het lezen van de schijf." en "Plaats een andere schijf."
Maar vergeet niet dat u deze lijst niet als allesomvattend moet beschouwen. Als u andere berichten in de bootsector vindt, betekent dit niet per se dat er een probleem is met de bootsector. Verschillende versies van MS-DOS en Windows NT kunnen soms licht afwijkende berichtreeksen in hun bootsectoren hebben.
Als u daarentegen helemaal geen tekst vindt, of als de tekst duidelijk niet gerelateerd is aan MS-DOS of Windows NT, moet u er rekening mee houden dat uw opstartsector mogelijk is geïnfecteerd door een virus of dat er een andere vorm van gegevensbeschadiging heeft plaatsgevonden.
Om te herstellen van een bootsector die is geïnfecteerd door een virus, is het meestal het beste om een commercieel anti-virusprogramma te gebruiken. Veel virussen en Trojaanse paarden doen veel meer dan alleen gegevens naar de bootsector schrijven, dus handmatige reparatie van de bootsector wordt niet aanbevolen, omdat het het virus of de Trojaanse paard mogelijk niet volledig elimineert en in sommige gevallen meer kwaad dan goed kan doen. We gaan echter DBR behandelen in het programmeergedeelte van dit boek.
Als u vermoedt dat de bootsector om een andere reden is beschadigd, is het mogelijk om de bootsectorschade te herstellen zonder de schijf opnieuw te formatteren door de hierboven beschreven velden handmatig aan te passen. We zullen proberen dergelijke problemen met programmeren te overwinnen in programmeertechnieken voor herstel in dit boek.
Bestandstoewijzingstabel (FAT)
Na DBR volgen de File Allocation Tables. De File Allocation Table (FAT) werd in 1977 geïntroduceerd om gegevens op floppy disks op te slaan voor Microsoft stand-alone Disk Basic. De FAT is meerdere malen aangepast om tegemoet te komen aan de groeiende behoeften. Het werd ontwikkeld om te voldoen aan de vereisten van een snel en flexibel systeem voor het beheren van gegevens op zowel verwijderbare als vaste media.
In 1996 werd FAT32 geïntroduceerd met Windows 95 OSR2. Zoals we eerder hebben besproken, ondersteunt Windows 98/ME FAT32 met de grootte van harde schijven. Nu wordt bij deze besturingssystemen het FAT32-bestandssysteem algemeen gebruikt.
Het eerste DOS FAT-bestandssysteem (DOS 1.x) gebruikte het 12-bits FAT-systeem dat nog steeds wordt gebruikt voor floppy disks. DOS 2.x voegde ondersteuning toe voor harde schijven en ging over op 16-bits FAT-ingangen vanwege grotere volumes.
Rond 1987 werd in DOS 4.0 de sectorafhandeling op laag niveau gewijzigd naar 32-bits parameters om het probleem van de ondersteuning van grote schijven te overwinnen. We hebben de beperkingen van bestandssystemen al besproken.
FAT houdt een kaart bij van het volledige oppervlak van de schijfeenheid, zodat duidelijk is welk gebied vrij is, welk gebied slecht is, welk gebied door welk bestand wordt ingenomen, etc. Wanneer er toegang moet worden verkregen tot gegevens die op het schijfoppervlak zijn opgeslagen, raadpleegt de DOS de FAT om te achterhalen welke gebieden van het harde schijfoppervlak de gegevens bevatten.
Het type FAT dat gebruikt moet worden, wordt bepaald door het FDISK-programma tijdens de partitie van de harde schijf. Maar de werkelijke FAT wordt geschreven door het FORMAT-programma van DOS.
De FAT houdt niet elke afzonderlijke sector op het schijfoppervlak bij, maar beheert het schijfoppervlak in een groep sectoren die 'cluster' of 'toewijzingseenheid' wordt genoemd (zie de eerder besproken cluster in hetzelfde hoofdstuk).
Een cluster is de kleinste eenheid van harde schijfruimte die DOS toewijst aan een bestand, het bestaat uit een of meer sectoren afhankelijk van de schijfgrootte. De clustergrootte wordt bepaald en vastgelegd door het DOS FORMAT-programma tijdens de high level formattering van de harde schijf. (Zie de discussie over de "grootte van clusters", eerder gegeven)
Eigenlijk is de FAT een index van de clusters van het gehele volume. De FAT heeft één vermelding voor elke cluster. De eerste twee vermeldingen in een FAT bevatten informatie over de FAT. De derde en volgende vermeldingen in de FAT worden toegewezen aan clusters van schijfruimte, te beginnen met de eerste cluster die beschikbaar is voor gebruik door bestanden
Omdat FAT zo'n belangrijk item is, bewaart DOS twee kopieën van de FAT: primaire FAT of FAT1 en secundaire FAT of FAT2 (normaal gesproken zijn er twee kopieën, maar veel nieuwe besturingssystemen maken meer dan twee kopieën van FAT).
Elke FAT neemt aaneengesloten sectoren op de schijf in beslag. De tweede FAT volgt direct op de eerste FAT, maar zorgt er niet voor dat DOS de tweede FAT gebruikt om het probleem te verhelpen. Wanneer de eerste FAT wordt bijgewerkt, kopieert DOS deze naar de tweede FAT, waardoor ook de tweede FAT beschadigd raakt.
Deze update wordt iedere keer gedaan als DOS ontdekt dat de 1e en 2e FAT niet overeenkomen. Dus, in het geval van enige corruptie van de 1e FAT, moet men onmiddellijk de reparatie uitvoeren door wat disk editor software te gebruiken en de 1e FAT te vergelijken met de 2e FAT. Dit moet gedaan worden voordat DOS de corrupte FAT kopieert naar de tweede FAT.
Met de introductie van FAT32 zijn zowel de FAT-ingangen als de sectornummering nu 32-bits. Dat betekent dat er nu 4.294.967.296 afzonderlijke 32-bitswaarden zijn, vermenigvuldigd met 512 bytes per sector, wat 2 terabytes (2.199.023.255.552 bytes) oplevert als de maximaal mogelijke schijfgrootte onder FAT32.
De grootte van de directory-invoer voor elk bestand in FAT 32 is 4 bytes om de waarde van de begincluster van het bestand te bevatten in plaats van de 2 bytes die nodig zijn onder FAT16. De grotere waarde biedt plaats aan het grotere aantal mogelijke clusters.
Traditioneel is elke directory entry een 32-byte record, en dat blijft hetzelfde. In het midden van de directory record staan 10 bytes (bytes 12 tot 21) die Microsoft heeft gereserveerd voor eigen toekomstig gebruik. Twee van die bytes worden nu gebruikt om de extra bytes te huisvesten die nodig zijn om het startcluster onder FAT32 te specificeren.
Zoals we al hebben besproken, zijn er 12-bits, 16-bits en 32-bits versies van FAT. Terwijl 32-bits FAT veel efficiëntere opslag mogelijk maakt, die tot 30% efficiënter kan zijn en gebruik kan maken van grotere harde schijven.
Wanneer het bestandssysteem van een besturingssysteem door een programma wordt aangeroepen om de inhoud van een bestand te vinden, wordt de eerste clusterwaarde in de directory-entry voor dat bestand gelezen en gebruikt om de FAT-keten te vinden. De FAT-keten is de lijst met clusters die gegevens bevatten die bij een bestand horen.
FAT32- schijfindeling |
Verschuiven |
Beschrijving |
Begin van de partitie |
Bootsector |
Begin van partitie + aantal gereserveerde sectoren |
FAT-tabellen |
Begin van partitie + aantal gereserveerde sectoren + (aantal sectoren per FAT * 2)
[Ervan uitgaande dat FAT-mirroring is ingeschakeld, is dit bijna altijd waar] |
Hoofdmap |
Begin van partitie + aantal gereserveerde sectoren + (aantal sectoren per FAT * 2) + aantal sectoren in de hoofdmap |
Gegevensgebied |
FAT-vermeldingen kunnen waarden bevatten die het volgende aangeven:
- Het volgende cluster in een FAT-keten voor een bepaald bestand
- De vrije clusters, dat wil zeggen de clusters die niet door een bestand worden gebruikt
- De informatie over slechte sectoren, d.w.z. het cluster met één of meer sectoren die fysiek beschadigd zijn en niet gebruikt mogen worden.
- Het laatste cluster van een bestand
Vermeldingen van FAT-tabel |
Getal (Hex.) |
Beschrijving |
0 |
Vrije cluster |
???? |
Cluster in gebruik, volgende cluster in keten |
FF0-FF6 / FFF0-FFF6 |
Cluster is gereserveerd |
FF7 /FFF7 |
Cluster bevat slechte sectoren |
FF8-FFF / FFF8-FFFF |
Einde bestand |
Elke FAT-invoer vertegenwoordigt een clusteradres en bevat een aanwijzer naar het volgende clusteradres (FAT-invoer) voor het bestand. De laatste FAT-invoer voor een bestand bevat de uiteindelijke clusterwaarde in plaats van een aanwijzer. De eerste twee invoeren in een FAT bevatten informatie over de FAT. Deze bytes van de FAT bevatten een mediadescriptorbyte. Deze byte kan worden gebruikt om het type schijfmedia te vinden waarvan deze FAT-invoer is.
De derde en volgende vermeldingen in de FAT worden toegewezen aan clusters van schijfruimte, beginnend met de eerste cluster die beschikbaar is voor gebruik door bestanden. Een FAT-vermelding kan een van de waarden hebben die in de bovenstaande tabel worden gegeven, op basis van de informatie die het wil overbrengen.
Een 000H in 12-bits FAT of 0000H in 16-bits FAT geeft aan dat het cluster dat overeenkomt met deze FAT-locatie niet is toegewezen of leeg is. Elke waarde van FF8H tot FFFH in 12-bits FAT of FFF8H tot FFFFH in 16-bits FAT geeft aan dat dit cluster het laatste cluster is in een keten van clusters van een bestand.
Waarde van FF0H tot FF7H in 12-bits FAT geeft gereserveerde clusters aan. Een FF7H in een 12-bits FAT of FFF7H in 16-bits FAT geeft aan dat het cluster dat overeenkomt met de locatie van de FAT een bad cluster is, d.w.z. dit is in feite een cluster met bad sectors. Dit cluster wordt niet gebruikt voor dataopslag.
Elke andere waarde in de FAT-tabel is een verwijzing naar het volgende cluster in de bestandstoewijzingsketen.
Hoe Windows de onjuiste afsluiting detecteert
Het is een veelvoorkomend probleem en ik hoop dat u het al vaker hebt opgemerkt bij het gebruik van Windows. Als uw computer om welke reden dan ook onjuist is afgesloten, zoals stroomuitval, corrupte software, onbedoeld afsluiten, enz., wordt het bericht Onjuist afgesloten op het scherm weergegeven tijdens het opstarten wanneer u uw computer opnieuw opstart. Het besturingssysteem scant de schijf op fouten.
De volgende twee figuren tonen de 256 bytes van het begin van een 32-bits FAT. We hebben echter slechts 8 initiële bytes nodig om dit te bespreken.
Wanneer het Windows besturingssysteem zichzelf in het geheugen heeft geladen (dat wil zeggen wanneer Windows is opgestart), wordt de 8e byte (of offset 7H) van FAT gewijzigd van 0FH of FFH naar 07H of F7H.
Microsoft gebruikt byte 0FH alleen voor het volume waarop het besturingssysteem draait, en byte FFH voor alle andere volumes waartoe toegang wordt verkregen.
Zodra Windows opstart, wordt de 8e byte gewijzigd naar 07H of F7H. Deze wordt alleen teruggezet naar 0FH of FFH als Windows correct wordt afgesloten.
Als er een stroomstoring is, als de aan/uit-schakelaar van de computer per ongeluk wordt uitgeschakeld of als het systeem handmatig opnieuw wordt opgestart vanwege een softwareprobleem, blijft deze byte staan op 07H of F7H. Hierdoor wordt het Windows-besturingssysteem bij de volgende keer opstarten geïnformeerd dat er een onjuiste afsluiting heeft plaatsgevonden. Vervolgens gebruikt Windows het schijfcontroleprogramma (Scandisk) om de schijf te controleren op fouten.

Hoofdmap
Na de laatste FAT volgt de Root Directory. De root directory is als een inhoudsopgave voor de informatie die op de harde schijf is opgeslagen. De locatie van de Root Directory kan eenvoudig worden vastgesteld door de waarden van de boot record op te tellen, aangezien deze na de FAT's is geplaatst.
Het directorygebied houdt de informatie bij over de bestandsnaam, datum en tijd van het aanmaken van het bestand, bestandskenmerk, bestandsgrootte en startcluster van het specifieke bestand. Elke directory-invoer die deze informatie over een bestand beschrijft, is een 32 byte-informatie.
De root directory bevat informatie over de bestanden en directories die vertakken vanuit de root directory. Alle verdere directories worden zelf opgeslagen als bestanden, in hetzelfde formaat als de root directory. Voorheen was de root directory vast in grootte en bevond deze zich op een vaste positie op de schijf, maar nu is deze vrij om te groeien wanneer nodig, aangezien deze nu wordt behandeld als een bestand.
Het aantal bestanden dat u in de root directory kunt opslaan, is afhankelijk van het FAT-type dat u gebruikt. Bijvoorbeeld, voor een 3½ Inch 1.44Mb floppy disk met 12-Bit FAT, is het beperkt tot 224 entries, als u probeert het 225e bestand op te slaan, zal DOS een "File creation error" weergeven. Wanneer u een 16-Bit FAT gebruikt, kunt u in totaal 512 entries in de root directory hebben. Elke hoofddirectory op een floppy of harde schijf, fungeert ook als een root directory entry.
In de volgende tabel staan de limieten van root-vermeldingen voor verschillende media en FAT:
Beschrijving van media en bestandssysteem |
Maximale root-directory-ingangen |
Enkelzijdige 5¼ Inch 180K FDD |
64 |
Dubbelzijdige 5¼ inch 320K FDD |
64 |
Dubbelzijdige 5¼ inch 360K FDD |
112 |
Dubbelzijdige 3½ inch 720K FDD |
112 |
Dubbelzijdige 5¼ inch 1,2-megabyte FDD |
224 |
Dubbelzijdige 3½ inch 1,44-megabyte FDD |
224 |
Dubbelzijdige 3½ Inch 1,68-megabyte DMF-formaat schijven (daarom heeft Microsoft CAB-bestanden gemaakt!) |
16 |
Dubbelzijdige 3½ inch 2,88-megabyte FDD |
240 |
Harde schijven (FAT12 en FAT16) |
512 |
Harde schijven met FAT 32 (omdat de routedirectory als een bestand wordt behandeld) |
65.536 |
Dit betekent niet dat men met 16-Bit FAT beperkt is tot het opslaan van slechts 512 bestanden op de harde schijf. Men kan subdirectories gebruiken om een willekeurig aantal bestanden op te slaan, alleen beperkt door de grootte van de schijf.
Vergeet niet dat het volumelabel voor een floppy gewoonlijk in de bootsector wordt opgeslagen, maar het volumelabel voor een harde schijf wordt opgeslagen als een rootdirectory-item en de ruimte die in de bootsector is gereserveerd, wordt leeg gelaten met spaties. De DIR-opdracht van DOS retourneert degene in de directory als deze aanwezig is, of degene in de bootsector als deze niet aanwezig is.
Directory entries bevatten de entry in de keten van clusters en de bestandsnaam. Daarom zijn de belangrijkste Directory Entries van de root directory, omdat deze clusterindexen bevat die naar alle Sub–Directories verwijzen.
Alle directory's bevatten twee vermeldingen, "." voor Current directory (This Sub Directory) en ".." voor parent directory (Parent Directory van deze Sub Directory). We kunnen deze vermeldingen eenvoudig volgen, omdat ze altijd aan het begin van een cluster worden geplaatst als het cluster een directory bevat. De volgende tabel toont de indeling van een directoryvermelding in de Root Directory. De volgende tabel toont hoe de 32 bytes van de directoryvermelding van een bestand in de Root Directory worden gesegmenteerd om de verschillende informatie erover op te slaan:
Verschuiven |
Maat |
Beschrijving |
00U |
8 Bytes |
Bestandsnaam
(zie ook de volgende tabel voor de speciale betekenis van het eerste teken van de bestandsnaam) |
08U |
3 bytes |
Verlenging |
0BH |
1 byte |
Bestandskenmerken (zie de tabel met bestandskenmerken) |
0CH |
10 Bytes |
Gereserveerd |
16 uur |
2 bytes |
Tijdstip van aanmaak of laatste update (zie tabel Datum-Tijdnotatie) |
18 uur |
2 bytes |
Datum gemaakt of laatste update (zie tabel Datum-tijdnotatie) |
1Ah |
2 bytes |
Begin- of eerste cluster van bestand
(de waarde 0000H wordt gebruikt in de vermeldingen van de bovenliggende map (' .. ') om aan te geven dat de bovenliggende map de hoofdmap is) |
1CH |
4 bytes |
Bestandsgrootte in bytes. |
Bestandsnaam bevat de naam in hoofdletters. Als de bestandsnaam kleiner is dan 8 tekens, worden de spaties opgevuld met spaties van het ASCII-nummer 32. Het veld Extensie bevat de extensie van het bestand, in hoofdletters.
Als de bestandsnaam langer is dan 8 tekens, maakt Windows van een lange bestandsnaam een kortere bestandsnaam door de bestandsnaam af te korten tot zes hoofdletters en "~1" toe te voegen aan het einde van de basisbestandsnaam.
Als er al een andere bestandsnaam is met dezelfde eerste zes tekens, wordt het nummer verhoogd. De extensie blijft hetzelfde en elk teken dat illegaal was in eerdere versies van Windows en DOS wordt vervangen door een underscore.
Lange bestandsnamen worden opgeslagen in speciaal geformatteerde 32-Byte Long File Name (LFN) directory-items gemarkeerd met attribuutbytes ingesteld op 0FH. Voor een bepaald bestand of subdirectory gaat een groep van een of meer Long filename directory-items direct vooraf aan de enkele 8.3 directory-item op de schijf.
Elke LFN-directoryvermelding bevat maximaal 13 tekens van de lange bestandsnaam. Het besturingssysteem voegt zoveel tekens aan elkaar toe als nodig is om een volledige lange bestandsnaam te vormen.
Dit is de reden waarom de lange bestandsnamen het maximaal mogelijke aantal root directory-items in een bestandssysteem verminderen. Hoe Windows lange bestandsnamen ondersteunt, bespreken we later in dit hoofdstuk in detail.
De eerste byte van de bestandsnaam kan ook belangrijke informatie over het bestand bevatten. De informatie die door deze byte wordt gegeven, kan een van de volgende zijn:
Eerste teken van bestandsnaam |
Waarde |
Betekenis |
00U |
Geeft aan dat deze directoryvermelding niet wordt gebruikt. |
05U |
Geeft aan dat het eerste teken van de bestandsnaam het teken E5H is. In werkelijkheid is het bestand echter niet verwijderd. (Zie de betekenis van E5H) |
E5H |
Het bestand is gewist en deze directory-entry is een directory-entry van een verwijderd bestand. Het gegevensgebied dat eerder door dat bestand werd ingenomen, is nu vrij voor toewijzing aan een ander nieuw bestand. |
2EH |
Dit is een subdirectory. Het clusternummerveld van deze invoer bevat het clusternummer van de directory. |
2EH2EH |
Twee 2EH in een directory-item geven het bovenliggende directory-item van een subdirectory aan. Het clusternummer van dit item bevat het clusternummer van de bovenliggende directory van deze directory. Het clusternummer is nul 0000H als de bovenliggende directory een root directory is. |
Attributes is een 8-bits binair gecodeerd veld. De volgende tabel vertelt over de Status voor vlag van attributen voor het gegeven bestand:
Attribuutbits |
Attribuut |
Beetje |
Binair |
Zeshoek |
Alleen-lezen bestandsvlag |
0 |
.......? |
01U |
Verborgen bestand vlag |
1 |
......?. |
02U |
Systeembestandsvlag |
2 |
.....?.. |
04U |
Volumelabelvlag
(geeft aan dat de invoer een volumelabel is) |
3 |
....?... |
08U |
Submap
(in dezelfde indeling als map) |
4 |
...?.... |
10 uur |
Archiefbit
(bestand gewijzigd sinds laatste back-up) |
5 |
..?..... |
20 uur |
Gereserveerd (Bevat 0) |
6 |
.0...... |
- |
Gereserveerd (Bevat 0) |
7 |
0....... |
- |
Eén bestand kan meerdere kenmerken hebben. Bijvoorbeeld, een enkel bestand kan een Read-Only en een Hidden-File zijn of een enkel bestand kan beide kenmerken hebben, The System-File en The Hidden-File. (Zie het volgende voorbeeld voor de codering van directory-items).
Tijd en datum is een speciaal gecodeerd veld van 32 bits (16 bits tijd en 16 bits datum). De verdeling van deze bitscodering om de tijd van aanmaak of laatste update en de datum van aanmaak of laatste update voor een bestand samen te stellen, is gegeven in de volgende tabel:
De invoer voor Tijd van aanmaken of Laatste update van bestand, wat de 16e en 17e byte in de directory-invoer is, heeft de indeling die in de bovenstaande tabel is gegeven. De codering is als volgt:
- H is het binaire getal voor uur, dat kan variëren van 0 tot 23
- M is een binair getal voor minuut, dat kan variëren van 0 tot 59
- S is een binair getal voor seconden in stappen van 2 seconden
- De invoer voor Gegevens van Aanmaak of Laatste Update van Bestand, die de 18e en
- 19e byte in de directoryvermelding, heeft de volgende indeling:
- Y is een binair getal tussen 0 en 127 of het jaar 1980 tot 2107
- M is het binaire getal voor de maand, dit kan variëren van 1 tot 12
- D is een binair getal voor datum, dit kan variëren van 1 tot 31
Deze directory-entry is gekoppeld aan de FAT-entry op basis van de eerste clusterwaarde. Zodra de DOS de beginclusterwaarde van een bestand uit de Directory heeft, kan de DOS het volledige bestand vinden met behulp van de FAT. De Entry Cluster in de keten is de eerste cluster die het bestand vormt. Als de directoryvlag van de kenmerken is ingesteld, wijst dit veld naar een nieuwe directory-entry.
De invoer van de bestandsgrootte is 4 bytes. Hiermee kunnen we berekenen hoe FAT32 de maximale bestandsgrootte ondersteunt tot 4.294.967.295 bytes, wat ongeveer 4 GiB is. De 4 bytes hebben 32 bits en de maximaal mogelijke bestandsgrootte die is samengesteld door een 32-bits binair bestand kan zijn,
= 11111111 11111111 11111111 11111111 (B) Bytes
= 4.294.967.295 (D) Bytes
~ 4Gib
FAT32 ondersteunt dus een maximale bestandsgrootte van 4 GiB.
Hoofdmap-invoer
De bestandsgrootte en het begincluster van het bestand kunnen waardevolle informatiebronnen zijn voor gegevensherstel bij het herstellen van beschadigde bestanden, omdat we hiermee kunnen berekenen uit hoeveel clusters het bestand zou moeten bestaan.
De afbeelding hierboven toont de Root Directory-invoer voor zeven verschillende bestanden. De codering voor deze invoeren is gegeven in de volgende tabel:
Lange bestandsnaam (LFN)
Zoals we eerder al bespraken in de discussie over de rootdirectory, had de rootdirectory voorheen een vaste grootte en bevond deze zich op een vaste positie op de schijf. Tegenwoordig kan de directory echter zo groot worden als nodig is, omdat deze als een bestand wordt behandeld.
Dit is erg belangrijk voor lange bestandsnamen, omdat elke lange bestandsnaam meerdere directory-items gebruikt. Ondersteuning voor lange bestandsnamen toevoegen aan een besturingssysteem dat 8.3-bestandsnamen gebruikt, is niet zo eenvoudig als directory-items uitbreiden om meer dan 11 tekens te bevatten.
Als dit nieuwe besturingssysteem bestandsnamen van 255 tekens retourneert, zouden veel oudere applicaties, die niet meer dan 11 tekens verwachten te ontvangen, crashen omdat een programma geheugen moet vrijmaken om de bestandsnamen op te slaan die het leest, en als het 16 bytes vrijmaakt voor een bestandsnaam en het besturingssysteem kopieert (laten we zeggen) 32 tekens in die ruimte, dan worden andere gegevens overschreven. Een zekere manier om een applicatie te breken, is door willekeurige gegevens te kopiëren naar zijn gegevensruimte.
Om dit probleem te verhelpen, werd in Windows 95 een slimme oplossing gevonden voor het probleem van de ondersteuning van lange bestandsnamen, terwijl de compatibiliteit met eerdere versies van DOS en Windows-toepassingen behouden bleef.
Wanneer de meeste toepassingen (met uitzondering van hulpprogramma's voor schijfruimte op laag niveau, zoals Norton Disk Doctor) het systeem raadplegen voor bestands- en submapnamen, doen ze dat niet door mapvermeldingen rechtstreeks van de schijf te lezen, maar door gebruik te maken van opsommingsfuncties die in het besturingssysteem zijn ingebouwd.
Zoals we weten is een directory entry gemarkeerd met de combinatie van read-only, hidden, system en volume label attributen Bits. Als de attribuutbyte van Directory Entry de waarde 0FH heeft, zullen de enumeratiefuncties die in alle bestaande versies van DOS en alle Pre-Windows 95 versies van Windows zijn ingebouwd, die directory entry waarschijnlijk overslaan alsof deze er niet is.
De oplossing was toen om twee namen op te slaan voor elk bestand en elke subdirectory, een korte naam die zichtbaar is voor alle applicaties en een lange naam die alleen zichtbaar is voor Windows 95 (en later) applicaties en voor applicaties die zijn herschreven om ondersteuning voor lange bestandsnamen toe te voegen. Korte bestandsnamen worden opgeslagen in 8.3-formaten in conventionele 32-byte directory-items.
We hebben al besproken dat Windows een korte bestandsnaam maakt van een lange bestandsnaam door deze af te korten tot zes hoofdletters en "~1" toe te voegen aan het einde van de basisbestandsnaam.
Als er al een andere bestandsnaam is met dezelfde eerste zes tekens, wordt het nummer verhoogd. De extensie blijft hetzelfde en elk teken dat illegaal was in eerdere versies van Windows en DOS wordt vervangen door een underscore.
De lange bestandsnamen worden opgeslagen in speciaal geformatteerde 32-byte Long File Name (LFN) Directory Entries gemarkeerd met attribuutbytes ingesteld op 0FH. Voor een bepaald bestand of subdirectory gaat een groep van een of meer Long File Name directory entries direct vooraf aan de enkele 8.3 directory entry op de schijf.
Elke mapvermelding in de map Lange bestandsnaam bevat maximaal 13 tekens van de lange bestandsnaam. Het besturingssysteem voegt zoveel tekens aan elkaar toe als nodig zijn om een volledige lange bestandsnaam te vormen.
Voor een Long File Name directory entry worden bestandsnamen opgeslagen in Unicode-formaat, wat 2 bytes per teken vereist in tegenstelling tot 1 byte van ASCII. Bestandsnaamtekens worden verdeeld over drie afzonderlijke velden:
- De eerste 10 bytes (vijf tekens) lang,
- De tweede 12 bytes (zes tekens),
- De derde 4 bytes (twee tekens).
- De onderste vijf bits van de eerste byte van de directoryvermelding bevatten een volgnummer dat de positie van de directoryvermelding ten opzichte van andere identificeert.
- Lange bestandsnaam: directoryvermeldingen die aan hetzelfde bestand zijn gekoppeld.
Als voor een lange bestandsnaam drie LFN-directoryvermeldingen nodig zijn, is het volgnummer van de eerste vermelding 1, dat van de tweede vermelding 2 en het volgnummer van de derde vermelding 3. Bit 6 van de eerste byte van de derde vermelding wordt ingesteld op 1 om aan te geven dat dit de laatste vermelding in de reeks is.
Het kenmerkveld verschijnt op dezelfde locatie in LFN-directory-items als in 8.3-directory-items, omdat het bestandssysteem niet weet met welk type directory-item het te maken heeft totdat het de kenmerkbyte heeft onderzocht. Het veld met het beginclusternummer verschijnt ook op dezelfde locatie, maar in LFN-directory-items is de waarde altijd 0. Het veld met de type-indicator bevat ook 0 in elke lange bestandsnaam.
Een van de problemen met lange bestandsnamen is dat ze meer schijfruimte in beslag nemen dan korte. Dat is geen groot probleem als lange namen in subdirectory's worden opgeslagen, want zolang er schijfruimte beschikbaar is, kunnen subdirectory's groeien om toegevoegde directory-items te kunnen herbergen, maar het maximale aantal directory-items dat beschikbaar is in de root-directory is vast en lange bestandsnamen verspillen ruimte in de root-directory, die beperkt is in grootte.
Bijvoorbeeld, als de hoofdmap van een harde schijf maximaal 512 mapvermeldingen bevat, en een naam van 128 tekens 11 vermeldingen vereist (10 voor de lange naam en 1 voor de korte naam), kunt u slechts 46 bestanden en submappen in de hoofdmap maken als elk een naam van 128 tekens krijgt.
Het probleem verdwijnt ook voor FAT32 omdat de hoofdmap onder FAT32 ook kan groeien. In het FAT32-systeem wordt de hoofdmap behandeld als een bestand dat in omvang kan toenemen.
Gegevensgebied (of bestandsgebied)
Na de Root Directory begint het Data Area (of Files Area). We kunnen eerder zeggen dat de rest van het volume na de Root Directory het Data Area is.
Het datagebied bevat de werkelijke gegevens die op het schijfoppervlak zijn opgeslagen. DOS gebruikt clusternummer 2 voor de eerste sector van het datagebied, daarom moeten we er rekening mee houden bij het uitvoeren van verschillende berekeningen dat het clusternummer moet beginnen bij 2.
Wanneer we een harde schijf formatteren, vernietigt of overschrijft de FORMAT-opdracht van DOS de gegevens op het gegevensgebied niet. De FORMAT-opdracht verwijdert alleen de directory-entry en FAT-entry's en raakt het eigenlijke gegevensgebied niet aan.
Dit maakt het mogelijk om een per ongeluk geformatteerde harde schijf te herstellen, wat niet in alle gevallen van per ongeluk geformatteerde floppy disks mogelijk is. Zoals bij volledige Format door Windows wordt het Data-gebied van Floppy gevuld met F6H-tekens en wordt alle informatie overschreven.
DOS gebruikt een 16-Bit/32-Bit pointer, een zogenaamde “Last Cluster Used” (LCU) pointer, om het laatst gebruikte clusternummer op te slaan. Aanvankelijk is deze pointerwaarde nul, wanneer er informatie op een bepaald cluster wordt geschreven, wordt dat clusternummer opgeslagen in de LCU pointer.
Hierna zoekt DOS, elke keer als de nieuwe informatie moet worden geschreven, naar een vrij cluster vanaf het LCU-nummer. Dit dwingt nieuwe gegevens die op de schijf worden geschreven om aaneengesloten te blijven terwijl de gegevens naar het nieuwe, ongebruikte gebied worden geschreven.
Nu zou het begrijpen van data in geval van een accidentele verwijdering veel gemakkelijker zijn, aangezien het bestand zich in één aaneengesloten gebied op de schijf bevindt. Zodra het einde van de schijf is bereikt of het systeem is gereset, wordt de LCU-pointerwaarde gereset naar nul.
Maar het probleem blijft hier niet duren. Het is praktisch niet mogelijk dat u alleen nieuwe bestanden op uw schijf maakt en nooit bestanden verwijdert of wijzigt van de eerder opgeslagen bestanden. Alleen LCU gebruiken levert problemen op als u veel bestanden maakt en verwijdert, omdat dit de nieuwe gegevens dwingt om steeds verder in de binnenste sporen van de harde schijf te bewegen.
Als een bestand dat op de schijf was opgeslagen, wordt verplaatst of verwijderd, worden de clusters in het gegevensgebied die door het bestand werden ingenomen nu ingesteld als niet-toegewezen clusters die beschikbaar zijn in het gegevensgebied en klaar zijn om nieuwe gegevens op te schrijven. Door dit te doen, hoeft het besturingssysteem niet alle gegevens naar de binnenste sporen van de schijf te verplaatsen.
Maar door het veelvuldig verwijderen en aanmaken van bestanden worden de gegevens op de schijf gefragmenteerd, wat fragmentatie van de gegevens veroorzaakt.
Gefragmenteerde en gedefragmenteerde gegevens
We hebben al besproken dat elk bestand op de schijf wordt opgeslagen als een gekoppelde lijst met clusters waarmee de gegevens die in een bestand zijn opgenomen en overal op de schijf kunnen worden geplaatst. Als u een bestand van 10 MB hebt opgeslagen op een schijf met clusters van 4.096 bytes, gebruikt het 2.560 clusters. Deze clusters kunnen zich op verschillende tracks bevinden, verschillende platters van de schijf, in feite kunnen ze zich overal bevinden.
Hoewel een bestand over de hele schijf verspreid kan worden, is dit verre van de gewenste situatie. De reden hiervoor is de ongewenste trage prestatie. Harde schijven zijn relatief trage apparaten, voornamelijk omdat ze mechanische onderdelen bevatten. Elke keer dat de harde schijf de koppen naar een ander spoor moet verplaatsen, kost dat tijd die gelijk is aan duizenden en duizenden processorcycli.
Daarom willen we de mate waarin elk bestand over de schijf verspreid is, minimaliseren. In het ideale geval zou elk bestand in feite volledig aaneengesloten zijn. Dat betekent dat elke cluster die het gebruikt, zich achter elkaar op de schijf zou bevinden. Dit zou het mogelijk maken om het hele bestand te lezen, indien nodig, zonder veel mechanische beweging door de harde schijf.
Eigenlijk is het bestandssysteem in het begin zo opgebouwd dat alle of de meeste bestanden aaneengesloten zijn. Door het aanmaken en verwijderen van bestanden in de loop van de tijd raken de gegevens op de schijf echter steeds meer gefragmenteerd.
Laten we een eenvoudig voorbeeld bekijken om de fragmentatie te begrijpen. De onderstaande tabel geeft het gebruik van de 12 clusters weer. In eerste instantie is de tabel leeg:
groep 1 |
groep 2 |
groep 3 |
groep 4 |
groep 5 |
groep 6 |
groep 7 |
groep 8 |
groep 9 |
groep 10 |
groep 11 |
groep 12 |
Laten we nu veronderstellen dat we vier bestanden maken, Bestand A, B, C en D op deze schijf. Bestand A neemt 1 cluster, bestand B neemt 4, bestand C neemt 2 en bestand D neemt 3. We slaan ze op in de vrije beschikbare ruimte en ze beginnen allemaal aaneengesloten zoals getoond in de volgende afbeelding:
Na enige tijd verwijderen we bestand C en door dit te doen, zijn beide clusters die bezet waren door bestand C, nu vrij of niet-toegewezen. Dit laat de schijf eruit zien als de volgende afbeelding:
Nu maken we een nieuw bestand E dat 3 clusters nodig heeft. Maar omdat er geen aaneengesloten blokken meer op de schijf zijn die 3 clusters lang zijn, moeten we E opsplitsen in twee fragmenten, waarbij we een deel van de ruimte gebruiken die voorheen door C werd ingenomen. Nu gaat onze schijf eruit zien als de volgende afbeelding:
Na een stukje tijdsperiode verwijderen we bestanden A en E en maken we bestand F aan dat 5 clusters in beslag neemt. De schijf ziet er nu uit als de onderstaande afbeelding:
Nu zien we dat het bestand F uiteindelijk in drie fragmenten wordt opgedeeld. Dit type gegevens op de schijf wordt de gefragmenteerde gegevens genoemd. Het bovenstaande voorbeeld is een zeer vereenvoudigd voorbeeld van fragmentatie, omdat de echte schijven duizenden bestanden en duizenden clusters hebben, dus het probleem daar wordt vergroot. Dit geeft u echter een algemeen idee van wat er gebeurt.
Wat een defragmentatieprogramma (zoals Microsoft's DEFRAG Program, Norton's SpeedDisk) doet, is de schijf herschikken om de bestanden weer in een aaneengesloten vorm te krijgen. Nadat u het hulpprogramma voor schijfdefragmentatie hebt uitgevoerd, zien de gedefragmenteerde gegevens op de schijf waar we het over hadden eruit zoals in de onderstaande afbeelding:
In veel gevallen zijn gefragmenteerde en gedefragmenteerde gegevens van groot belang bij gegevensherstel.
Laten we aannemen dat we twee gecrashte schijven hebben voor data recovery, één heeft gefragmenteerde data en één is onlangs gedefragmenteerd. En je moet data recovery uitvoeren door de data van het oppervlak van beide schijven te verzamelen, aangezien de FAT- en root-informatie van de bestanden beschadigd is. In dit soort gevallen is het percentage herstel proportioneel aan de defragmentatie van de data op de schijf.
Uiteraard zal het herstellen van gegevens van de gedefragmenteerde schijf eenvoudig zijn en zal het percentage herstelde gegevens ook hoog zijn. Aan de andere kant zal het herstellen van gegevens van de gefragmenteerde schijf moeilijk en tijdrovend zijn en zal het percentage herstelde gegevens ook teleurstellend zijn.
De oorzaak van gegevenscorruptie identificeren
Er zijn een aantal specifieke stappen die, als ze in een bepaalde volgorde worden gevolgd, ons kunnen helpen het gebied van corruptie te vinden. Deze stappen zijn beschreven met de herstelprocedure als volgt:
Start het systeem op met een opstartbare floppy
Start uw systeem op met een opstartbare floppy of CD van het besturingssysteem dat u gebruikte. Probeer de logische schijven C: of D: of wat dan ook te lezen. Als de schijf(en) toegankelijk zijn, kopieer dan gewoon alle gegevens van de schijf. Nu kunt u erachter komen waarom de schijf niet goed opstart, met minder stress.
Controleer de MBR-informatie
Het eerste en belangrijkste stukje data op de harde schijf is de MBR en de tabel die het bevat, de partitietabel. De kleine schijfbewerkingstool genaamd "TTEDITOR.EXE" is gegeven op de schijf die bij dit boek is meegeleverd. U kunt ook een ander programma gebruiken om de harde schijf te analyseren.
Diskedit is het meest geschikte programma om de schijf te analyseren voor data recovery doeleinden. Nou, welk programma u ook makkelijk vindt om te gebruiken, het is aan u. Probeer MBR te lezen en vooral de partitietabel.
Zoals u hebt gezien in de beschrijving van MBR, besproken in dit hoofdstuk, is er in het tweede deel van MBR wat leesbare tekst die wordt weergegeven als foutmelding door this, als er iets mis mee is. Deze tekstberichten worden weergegeven als iets als:
Als deze foutmeldingen niet beschikbaar zijn, duidt dit op corruptie van de MBR. Er kan ook een illegaal bericht in plaats van dit verschijnen, zoals "Uw systeem is gehackt door..." of een ander onverwacht bericht. Het duidt erop dat er iets ernstig mis is met de MBR, en hoogstwaarschijnlijk komt dit door een VIRALE infectie.
Controleer nu de partitietabel van MBR na de eerste 446 bytes. Als de partitietabel leeg is, ziet u geen foutmelding bij het opstarten. DOS negeert een niet-gepartitioneerde drive. Als er geen opstartbare floppy in drive A: zit, zal het systeem vragen om een opstartbare floppy in drive A: te plaatsen.
Het belangrijkste om hier op te letten is dat de partitietabel niet leeg mag zijn op een schijf die eerder werkte, dus iets heeft deze gewist. Als de partitietabel leeg is, herstel dan de MBR van de back-up.
Als de back-up niet werkt, zelfs niet na het succesvol voltooien van het herstelproces, is er fysieke schade aan deze sector. Probeer de programmeertechnieken van data recovery, gegeven in de volgende hoofdstukken om de data te herstellen. Als u helemaal geen programmeur bent, kunt u beter naar een goed data recovery center gaan.
Als u geen back-up van de MBR hebt, kunt u proberen de partitietabel handmatig te schrijven met een schijfbewerkingsprogramma, zoals Diskedit. In sommige gevallen kan dit echter erg moeilijk zijn.
Voor de gebruikers die geen programmeurs zijn en ook geen back-up hebben, is er de methode die ik al gebruik sinds mijn studententijd, toen ik bezig was met het ontwikkelen van dataherstelprojecten.
Wat u moet doen, is zoeken naar de computer bij u in de buurt, met een schijf die ongeveer even groot is, met hetzelfde aantal partities en, het allerbelangrijkste, met hetzelfde besturingssysteem als dat op uw computer stond.
Hoe dan ook, het werkt volledig, meestal. Maar als dat niet zo is, kan het u in ieder geval helpen om toegang te krijgen tot de eerste partitie van uw schijf. Zelfs uw besturingssysteem zal ook normaal opstarten, als het op de eerste partitie is geïnstalleerd en als de andere informatie niet beschadigd is.
Als MBR in orde is, controleer DBR
Als de MBR in orde is, controleer dan de DBR (DOS Boot Record). Zoals we al besproken hebben, is dit de eerste sector in de DOS-partitie en bevat een klein programma dat de verborgen bestanden laadt en het besturingssysteem opstart.
De DBR bevat ook veel belangrijke informatie over de FAT, root directory clusters, de grootte van de partitie, etc. Gebruik een Diskedit-achtig hulpprogramma om de DBR-informatie te lezen. Als de DBR beschadigd is of illegale informatie bevat, kunt u de DBR herstellen vanuit de back-up.
Alle professionele software voor data recovery, zijn in staat om de DBR te herschrijven. We zullen bespreken hoe de DBR van de partitie te herschrijven met programmeren, in de volgende hoofdstukken van het boek.
U kunt de DBR van de partitie ook herschrijven met behulp van Diskedit, mits u de juiste informatie verstrekt.
Er is ook een heel gemakkelijke manier om het gebied van corruptie te vinden. De foutmeldingen die op het scherm worden weergegeven, hebben een specifieke reden om te worden weergegeven. De beschrijving van enkele belangrijke foutmeldingen is als volgt:
Bericht |
Beschrijving |
“Sector heeft leesdrive niet gevonden” |
Dit bericht kan verschijnen tijdens elke DOS-bewerking. Meestal wordt het veroorzaakt door vervaging of het verlies van een sector-ID. |
“Datafout bij het lezen van de drive” |
Dit bericht kan verschijnen tijdens elke DOS-bewerking. Het wordt veroorzaakt door het mislukken van de gegevenscontrole – CRC (Cyclic Redundancy Check) of ECC (Error Correction Code). Deze “Gegevenscontrole” verwijst naar het mechanisme dat wordt gebruikt om te controleren of de gegevens die van de schijf worden gelezen betrouwbaar zijn. |
“0 harde schijf(en) gevonden” |
Wordt weergegeven als de harde schijf niet wordt gedetecteerd door het BIOS van de computer. Controleer de stroom- en datakabelaansluitingen van de harde schijf. Als de aansluitingen goed zijn, kan het probleem worden veroorzaakt door een hardwarefout van de harde schijf. |
“Harde schijf defect, druk op F1 om door te gaan” |
Hetzelfde als hierboven |
“Ongeldige schijfspecificatie” |
Dit wordt weergegeven wanneer het systeem de hardware niet herkent, er geen partitie-informatie beschikbaar is of het apparaatstuurprogramma van de schijf ontbreekt. |
“Ongeldige configuratie, druk op F1 om door te gaan” |
Als de harde schijf beschikbaar is, is de batterij van het moederbord leeg en is de SETUP-configuratieinformatie van het systeem verloren gegaan, of reageert de schijf niet. |
“Ongeldige partitietabel” |
Dit is de MBR-foutmelding. Deze wordt weergegeven wanneer de partitietabel van de MBR niet de geldige partitie-informatie heeft. |
“Fout bij het laden van het besturingssysteem” |
Dit is de MBR-foutmelding. Deze wordt weergegeven vanwege een corruptie van MBR-informatie. |
“Besturingssysteem ontbreekt” |
Hetzelfde als hierboven. |
“Schijf opstarten mislukt” |
Dit is een DBR-foutmelding. Normaal gesproken is de harde schijf toegankelijk als u opstart vanaf een floppydisk. Hoewel het niet opstartbaar is, zou dit geen invloed moeten hebben op de toegang tot gegevens op de schijf. |
"niet-systeem schijf of schijffout" |
Hetzelfde als hierboven. |
"Slechte of ontbrekende opdrachtinterpreter" |
Dit bericht wordt weergegeven als de opdrachtinterpreter defect is of ontbreekt. Bijvoorbeeld als het besturingssysteem command.com niet kan vinden in het huidige pad of als command.com beschadigd is. |