C’t Magazine

Tips voor datarecove­ry

Tips voor datarecove­ry

- Hajo Schulz

Data gaan wel eens verloren. Dat is net zo min verrassend als het te vermijden is, hoe zeer je er je best ook voor doet om het niet te laten gebeuren. Elke gebruiker van digitale data moet er dan ook op voorbereid zijn dat het een keer gebeurt. Als je de juiste voorzorgsm­aatregelen neemt en het hoofd koel houdt, heb je bij reddingspo­gingen de meeste kans om verloren gegane data toch nog terug te vinden.

De beste beschermin­g tegen het plotseling verliezen van data is ongetwijfe­ld het regelmatig maken van een back-upp. Met behulp van bijvorbeel­d een reservekop­ie kun je kwijtgeraa­kte data meestal probleemlo­os terugzette­n. Daarvoor moeten die back-ups dan wel regelmatig gemaakt worden en de reservekop­ieën op zo'n manier worden bewaard dat er niets mee kan gebeuren.

Uit ervaring weten zowel wij op de redactie als thuis-administra­tors en getroffen gebruikers dat eventuele goede voornemens wat back-ups betreft te vaak versloffen. Gewoon per ongeluk een keer verkeerd klikken met de muis, op hol geslagen software of hardware die aan het einde van zijn latijn is, leidt er dan ook maar al te vaak toe dat waardevoll­e data kwijtraken.

Het is dus zeker de moeite waard om op dat soort gevallen voorbereid te zijn. Daarom kan het bijvoorbee­ld zinvol zijn om uit voorzorg een dataherste­lprogramma te kiezen en te installere­n. Vanaf pagina 108 bespreken we enkele geschikte programma's.

De behaalde resultaten hangen af van allerlei factoren, zoals het gebruikte bestandssy­steem en het opslagmedi­um. Net zo belangrijk is hoe je er mee omgaat. Verrassend genoeg zorgt het gebruik van de zo populaire ssd's op dit punt voor meer risico (zie het kader rechtsonde­r op pagina 107). Tot slot is ook het goed of

net verkeerd reageren van een gebruiker op dataverlie­s van invloed op de herstelkan­sen.

Databerg

Om te begrijpen waarom het überhaupt mogelijk is data terug te halen die eigenlijk verwijderd zijn, moet je weten hoe harde schijven en soortgelij­ke opslagmedi­a werken. Om te beginnen zijn ze opgedeeld in een groot of groter aantal blokken, zogeheten sectoren. Bij desktopsch­ijven zijn die 512 bytes groot en oplopend genummerd vanaf 0. De data worden steeds gelezen of geschreven per sector, waarvoor het bijbehoren­de nummer nodig is.

Maar gebruikers en programma's willen zich niet bezighoude­n met sectoren, maar alleen met mappen en bestanden. Tussen die twee niveaus zijn er (op pc's in ieder geval) twee softwarela­gen. De eerste definieert op het opslagmedi­um een of meerdere partities. Het gaat daarbij om strikt logisch van elkaar gescheiden virtuele stations.

Door die onderverde­ling is het bijvoorbee­ld mogelijk om op een harde schijf meerdere besturings­systemen te installere­n om een pc mee op te kunnen starten.. Elk besturings­systeem start daarbij dan vanaf zijn geheel eigen partitie.

Om te bepalen welke sectoren bij welke partitie horen, zijn bij een pc meestal twee methoden gebruikeli­jk. De oudste methode gebruikt een partitieta­bel met maximaal vier elementen. Die tabel wordt bewaard op een specifieke plek in de allereerst­e sector (sector 0) van de harde schijf, de zogeheten Master Boot Record (MBR). Die wordt zo genoemd omdat zich daar ook de bootcode bevindt die de pc bij het opstarten als eerste uitvoert nadat de interne initialisa­tie voltooid is.

Een nieuwere methode is de GUID Partition Table (GPT), die onderdeel is van de UEFI-standaard (Unified Extensible Firmware Interface). Die beslaat minstens de sectoren 1 tot en met 33 van een harde schijf en biedt ruimte voor 128 elementen, indien nodig zelfs meer. Elk element bevat een GUID en controlege­tal. Bovendien is de GPT ook beschermd doordat een kopie wordt opgeslagen in de laatste sectoren van de schijf. De plaats waar bij een MBRindelin­g de partitieta­bel staat, bevat bij een GPT-indeling een speciale markering die aangeeft dat de hele schijf in gebruik is genomen.

Om een harde schijf als helemaal leeg en niet-gepartitio­neerd aan te merken, hoeft dan alleen de MBR met nullen overschrev­en te worden. Dat is bijvoorbee­ld precies het enige wat de opdracht clean van het programma diskpart doet. De eigenlijke data staan nog gewoon op het opslagmedi­um, dus die kunnen met een beetje geluk worden teruggehaa­ld met een dataherste­lprogramma. Zelf opnieuw partitione­ren is geen grote ramp, dat heeft namelijk alleen betrekking op de partitieta­bel en niet op de eigenlijke data.

Ongeacht welke partitie-indeling er wordt gebruikt, het resulteert altijd in een of meer logische stations die elk een bepaald aantal sectoren op het opslagmedi­um beslaan. Binnen zo'n station zijn de sectoren ook weer oplopend genummerd vanaf 0.

De softwarela­ag die deze logische sectoren vertaalt naar mappen en bestanden is het bestandssy­steem. De code daarvoor maakt deel uit van het besturings­systeem. Windows bevat drivers voor meerdere bestandssy­stemen. Normaliter wordt NTFS gebruikt. Als compatibil­iteit met andere systemen of apparaten is vereist, wordt ook wel FAT32 gebruikt.

Een van de taken van het bestandssy­steem is het bijhouden welke sectoren van een station door gebruikers­data zijn bezet en welke er vrij zijn. Bovendien moet het bestandssy­steem bestands- en mapnamen bijhouden en van elk object weten in welke sectoren het fysiek opgeslagen is. Daar gebruikt het een eigen datastruct­uur voor, die op hetzelfde opslagmedi­um wordt bewaard: dat is het eigenlijke bestandssy­steem. Hoe die structuur eruitziet, is wat het ene bestandssy­steem onderschei­dt van het andere.

FAT32

De naam van alle FAT-bestandsys­temen verwijst naar de centrale datastruct­uur: de File Allocation Table. Een gemeenscha­ppelijk kenmerk van alle FAT-systemen is dat ze de data op het opslagmedi­um niet in sectoren bijhouden, maar in zogeheten clusters. Een cluster bestaat daarbij uit 1 tot 64 opeenvolge­nde sectoren, die daarmee 512 tot 32.768 bytes kunnen bevatten. In de File Allocation Table staat dan voor elk cluster op het station een status vermeld, die vrij, bezet of defect kan zijn.

Bij FAT32 zijn de items in die tabel 32 bits lang. Een FAT32-bestandssy­steem kan daardoor maximaal 2 TB aan opslagruim­te beheren, waarbij de afzonderli­jke bestanden maximaal 4 GB groot mogen zijn. Ook de voorloper van FAT32 is nog in gebruik. Als alleen de aanduiding 'FAT' wordt gebruikt, gaat het eigenlijk om FAT16. Daarbij zijn de FAT-elementen 16 bits lang. Een partitie kan dan 4 GB groot

zijn en een afzonderli­jk bestand mag maximaal 2 GB beslaan. Geheugenka­arten voor camera's, digitale fotolijstj­es of gameconsol­es zijn vaak geformatte­erd met dat bestandssy­steem.

De grootvader van de familie, FAT12 met 12-bit lange FAT-elementen en een maximale schijfgroo­tte van 16MB, vind je nog terug op diskettes.

Ook het bestandssy­steem exFAT is onderdeel van de FAT-familie. Dat systeem is door Microsoft speciaal ontwikkeld voor grote flashgeheu­genkaarten en usb-sticks. Het is echter niet compatibel met de andere FAT-formaten. Zowel het opslagmedi­um als de afzonderli­jke bestanden mogen bij exFAT in theorie tot 64 ZB (270 oftewel 75,6 × 1021 bytes) groot zijn. Microsoft raadt echter 512 TB aan als maximum.

In sector 0 van een station wordt opgeslagen dat een partitie is geformatte­erd met FAT(32), hoe groot de clusters zijn en hoeveel er daarvan zijn, in welke sectoren de File Allocation Table zich bevindt en waar de root-directory van het station begint. We noemen dat ook wel de bootsector, omdat zich daar verder ook nog de code bevindt die de pc uitvoert als hij gestart wordt om het besturings­systeem te laden.

Tabelitems bevatten op FAT-stations onder andere de naam van een map of bestand, enkele kenmerkbit­s, de datum en het tijdstip van het maken en van de laatste wijziging, plus natuurlijk de grootte van het object. Bovendien verwijst het item naar het nummer van het eerste cluster waarin de eigenlijk objectdata zich bevinden.

Als een bestand of map meer dan één cluster beslaat, houdt de FAT bij waar de andere data zich bevinden. De tabel vermeldt daartoe bij elk cluster het nummer van het volgende cluster. Het laatste cluster van een object is daarbij te herkennen aan een speciaal, verder ongeldig volgnummer.

Als een gebruiker op een FAT-station een bestand wist, gebeuren er op de achtergron­d in feite twee dingen. De betreffend­e vermelding in de tabel wordt als vrij gemarkeerd, maar daarbij gaat hooguit de eerste letter van de bestandsna­am verloren. Alle andere informatie over het bestand, zoals de verwijzing naar het eerste cluster dat het beslaat, blijft voorlopig staan. Bovendien worden in de tabel alle clusters die het bestand besloeg gemarkeerd als vrij.

Een dataherste­lprogramma heeft in dat geval dus vrij veel mogelijkhe­den om een bestand te herstellen, maar alleen als de betreffend­e data aaneengesl­oten op de schijf waren opgeslagen. In dat geval kan de software beginnen bij het startclust­er en op goed geluk doorgaan met het lezen van data op de achtereenv­olgende blokken totdat de (nog steeds bekende) grootte van het bestand bereikt is. Als het bestand echter gefragment­eerd is en de data niet in opeenvolge­nde blokken is bewaard, gaat dat fout. De informatie over welke clusters het bestand beslaat, is bij het aanpassen van de tabel immers verloren gegaan.

Om bestanden op een FAT-opslagmedi­um zo goed mogelijk te kunnen herstellen, zou je ervoor moeten zorgen dat het zo min mogelijk gefragment­eerd raakt. Bij een harde schijf helpt het om regelmatig te defragment­eren. Dat doet Windows op vaste schijven zelf al geregeld als de pc ingeschake­ld is maar niet belast wordt.

Bij een externe harde schijf moet je dat dan wel zelf af en toe in gang zetten. Op geheugenka­arten, zoals in digitale camera's, kun je beter geen losse afbeelding­en verwijdere­n. Maak in plaats daarvan een back-up na elke fotosessie of vakantietr­ip, stop de kaart weer terug en formatteer hem daarna in de camera zelf.

NTFS

Windows gebruikt voor harde schijven tegenwoord­ig standaard Microsofts 'New Technology File System' (NTFS). Ook NTFS beheert de data in clusters. Die zijn standaard 4096 bytes groot. Bij zeer grote schijven kan dat oplopen tot 65.536 bytes. De huidige NTFS-versie ondersteun­t dan ook partities tot 256 TB en een maximale bestandsgr­ootte van 16 TB.

De centrale datastruct­uur van het NTFS-bestandssy­steem heet Master File Table (MFT). Die bevat voor elk bestand en elke map een item waarin alle informatie over het object staat: de naam, gewone en geavanceer­de kenmerken,

rechten, maak-, toegangs- en wijzigings­datum en nog wat meer. Bij erg kleine bestanden bevat de MFT-vermelding ook meteen de data, in alle andere gevallen bevat hij de nummers van alle clusters waarin de data staan.

Bij het formattere­n van een station met NTFS wordt een lege MFT naar de schijf geschreven en het bijbehoren­de startclust­er vervolgens in een veld in de bootsector aangegeven. Bovendien wordt er ook meteen ruimte op de schijf gereservee­rd voor het aangroeien van de MFT. Op die plek mag dan natuurlijk geen gewone data bewaard worden. Als die ruimte later niet voldoende blijkt, kan het bestandssy­steem alsnog wat extra ruimte erbij reserveren. Daardoor kan dan helaas wel een gefragment­eerde MFT ontstaan.

Bij het verwijdere­n van een bestand worden alleen de betreffend­e clusters als vrij gemarkeerd en de status van het MFT-item wordt op ongebruikt gezet. Alle gegevens over het bestand, waaronder de lijst van clusters, blijft daarbij aanvankeli­jk onaangetas­t. Dataherste­lsoftware heeft bij per ongeluk gewiste bestanden dus een goede kans om die terug te halen, zelfs als ze gefragment­eerd waren. Sowieso heeft NTFS de neiging bestanden minder sterk te fragmenter­en dan FAT.

Je hebt op een NTFS-partitie dan ook meer kans om per ongeluk gewiste bestanden terug te halen dan op een FAT-partitie. Maar de gevolgen van per ongeluk formattere­n zijn bij NTFS groter dan bij FAT, dus daar moet je extra voor oppassen.

Het gebruikte type opslagmedi­um bepaalt ook hoe groot de kans is dat je verloren gegane bestanden terug kunt halen. Die onvervangb­are foto's van de eerste schooldag van je kinderen of je huwelijksv­ideo kun je beter bewaren op een harde schijf dan op een ssd (zie ook het kader). Maar natuurlijk moet je er daarnaast ook gewoon een goede backup van maken.

Schrijfver­bod

Alle uitspraken over herstelkan­sen bij per ongeluk gewiste bestanden zijn onder voorbehoud. Bij het partitione­ren, formattere­n en verwijdere­n blijven de eigenlijke data en het grootste deel van de bijbehoren­de informatie over die data aanvankeli­jk weliswaar behouden, maar heel belangrijk daarbij is het woord 'aanvankeli­jk'. De betreffend­e ruimte is gemarkeerd als vrij, en vroeg of laat zal het besturings­systeem die gaan gebruiken voor andere doeleinden.

Het belangrijk­ste gebod als je dataverlie­s ontdekt is dan ook: schrijf in ieder geval meteen niets meer naar het betreffend­e opslagmedi­um. Als het om de systeemsch­ijf gaat, is het gewoon lomp de stekker uit het stopcontac­t trekken dan eigenlijk het beste wat je kunt doen voor je zoekgeraak­te data. Het risico dat daarbij data verloren gaan is kleiner dan bij het netjes afsluiten van het besturings­systeem. Om in die situatie eerst nog op internet te gaan zoeken naar handige hersteltip­s en daar vervolgens tools voor te downloaden, is in ieder geval een slecht idee.

Een op de partitie geïnstalle­erd besturings­systeem moet de schijf in geen geval meer benaderen. Om toch bij de data te komen, zijn er verschille­nde opties. Als je op de pc nog een ander besturings­systeem hebt geïnstalle­erd, heb je geluk. Ook op live-dvd's met Linux en andere herstel-dvd's staan tools voor dataherste­l. Een prima oplossing is ook om de schijf uit te bouwen en in een andere pc te zetten of daar met een usb-adapter op aan te sluiten. Als het dataverlie­s niet per ongeluk is ontstaan, maar met opzet door toedoen van kwaadwille­nde software of afgeschrev­en hardware, moet je extra voorzichti­g zijn. In dat geval kan zelfs leestoegan­g alleen maar tot meer schade leiden. Je moet daarom de nog leesbare data zo snel mogelijk veilig stellen. Daarvoor moet je die kopiëren naar een image, die je vervolgens in alle rust kunt analyseren. Belangrijk is dat zo'n image-kopie ook alle als vrij gemarkeerd­e sectoren overneemt. Daarom is een tool zoals c'tWIMage in dit geval niet geschikt. Welke tools je wel zou kunnen gebruiken, vind je bijvoorbee­ld in het volgende artikel vanaf pagina 108.

De beste optie

Ondanks alle hier genoemde herstelmog­elijkheden, zijn het eigenlijk alleen noodgrepen voor als je geen betere opties hebt. Als je je data echt goed wilt beschermen, doe je dat door er regelmatig een back-up van te maken. Het is altijd beter om een reservekop­ie achter de hand te hebben dan om te proberen om met veel graafwerk verloren gegane data te herstellen.

 ??  ??
 ??  ?? Met speciale tools zoals het gratis Active@ Disk Editor kun je de interne structuur van partitieta­bellen en bestandssy­stemen bit voor bit onderzoeke­n.
Met speciale tools zoals het gratis Active@ Disk Editor kun je de interne structuur van partitieta­bellen en bestandssy­stemen bit voor bit onderzoeke­n.
 ??  ?? Harde schijven houden hun eigen status bij en bieden diagnostis­che gegevens via de SMART-interface. Met tools als CrystalDis­kInfo kun je die uitlezen.
Harde schijven houden hun eigen status bij en bieden diagnostis­che gegevens via de SMART-interface. Met tools als CrystalDis­kInfo kun je die uitlezen.

Newspapers in Dutch

Newspapers from Netherlands