Bestanden terughalen: tips voor data recovery

Marco den Teuling
3

Inhoudsopgave

Bestanden 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 voorzorgsmaatregelen neemt en het hoofd koel houdt, heb je de meeste kans op succes bij verloren bestanden terughalen.

De beste bescherming tegen het plotseling verliezen van data is ongetwijfeld het regelmatig maken van een back-up. Met behulp van bijvoorbeeld een reservekopie kun je kwijtgeraakte data meestal probleemloos terugzetten. Daarvoor moeten die back-ups dan wel regelmatig gemaakt worden en de reservekopieën op zo’n manier worden bewaard dat er niets mee kan gebeuren.

Uit ervaring weten zowel wij op de redactie als thuis-administrators 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 waardevolle data kwijtraken.
Het is dus zeker de moeite waard om op dat soort gevallen voorbereid te zijn. Daarom kan het bijvoorbeeld zinvol zijn om uit voorzorg een dataherstelprogramma te kiezen en te installeren.

We testen diverse programma's voor dataherstel in c't nov/2018

De behaalde resultaten hangen af van allerlei factoren, zoals het gebruikte bestandssysteem en het opslagmedium. 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. Tot slot is ook het goed of net verkeerd reageren van een gebruiker op dataverlies van invloed op de herstelkansen.

Databerg

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

Maar gebruikers en programma’s willen zich niet bezighouden met sectoren, maar alleen met mappen en bestanden. Tussen die twee niveaus zijn er (op pc’s in ieder geval) twee software­lagen. De eerste definieert op het opslagmedium een of meerdere partities. Het gaat daarbij om strikt logisch van elkaar gescheiden virtuele stations.
Door die onder­verdeling is het bijvoorbeeld mogelijk om op een harde schijf meerdere besturings­systemen te installeren om een pc mee op te kunnen starten.. Elk besturingssysteem start daarbij dan vanaf zijn geheel eigen partitie.

Om te bepalen welke sectoren bij welke partitie horen, zijn bij een pc meestal twee methoden gebruikelijk. De oudste methode gebruikt een partitie­tabel met maximaal vier elementen. Die tabel wordt bewaard op een specifieke plek in de allereerste 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 initialisatie 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 controle­getal. Bovendien is de GPT ook beschermd doordat een kopie wordt opgeslagen in de laatste sectoren van de schijf. De plaats waar bij een MBR-indeling de partitietabel staat, bevat bij een GPT-indeling een speciale markering die aangeeft dat de hele schijf in gebruik is genomen.

bestanden terughalen data recovery herstel Active Disk Editor partitie tabel

Met speciale tools zoals het gratis Active@ Disk Editor kun je de interne structuur van partitietabellen en bestandssystemen bit voor bit doorzoeken.

Om een harde schijf als helemaal leeg en niet-gepartitioneerd aan te merken, hoeft dan alleen de MBR met nullen overschreven te worden. Dat is bijvoorbeeld precies het enige wat de opdracht clean van het programma diskpart doet. De eigenlijke data staan nog gewoon op het opslagmedium, dus die kunnen met een beetje geluk worden teruggehaald met een dataherstelprogramma. Zelfs opnieuw partitioneren is geen grote ramp, dat heeft namelijk alleen betrekking op de partitietabel 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 opslagmedium beslaan. Binnen zo’n station zijn de sectoren ook weer oplopend genummerd vanaf 0.

De softwarelaag die deze logische sectoren vertaalt naar mappen en bestanden is het bestandssysteem. De code daarvoor maakt deel uit van het besturingssysteem. Windows bevat drivers voor meerdere bestandssystemen. Normaliter wordt NTFS gebruikt. Als compatibiliteit met andere systemen of apparaten is vereist, wordt ook wel FAT32 gebruikt.

Een van de taken van het bestandssysteem is het bijhouden welke sectoren van een station door gebruikersdata zijn bezet en welke er vrij zijn. Bovendien moet het bestandssysteem bestands- en mapnamen bijhouden en van elk object weten in welke sectoren het fysiek opgeslagen is. Daar gebruikt het een eigen datastructuur voor, die op hetzelfde opslagmedium wordt bewaard: dat is het eigenlijke bestandssysteem. Hoe die structuur eruitziet, is wat het ene bestandssysteem onderscheidt van het andere.

FAT32 bestandssysteem

De naam van alle FAT-bestandsystemen verwijst naar de centrale datastructuur: de File Allocation Table. Een gemeenschappelijk kenmerk van alle FAT-­systemen is dat ze de data op het opslag­medium niet in sectoren bijhouden, maar in zogeheten clusters. Een cluster bestaat daarbij uit 1 tot 64 opeenvolgende 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-bestandssysteem kan daardoor maximaal 2 TB aan opslagruimte beheren, waarbij de afzonderlijke 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 afzonderlijk bestand mag maximaal 2 GB beslaan. Geheugenkaarten voor camera’s, digitale fotolijstjes of gameconsoles zijn vaak geformatteerd met dat bestandssysteem.

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

Ook het bestandssysteem exFAT is onderdeel van de FAT-familie. Dat systeem is door Microsoft speciaal ontwikkeld voor grote flashgeheugenkaarten en usb-sticks. Het is echter niet compatibel met de andere FAT-formaten. Zowel het opslagmedium als de afzonderlijke 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 geformatteerd 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 besturingssysteem te laden.

bestanden terughalen data recovery herstel SMART CrystalDiskInfo

Harde schijven houden hun eigen status bij en bieden diagnostische gegevens via de SMART-interface. Met tools als CrystalDiskInfo kun je die uitlezen.

Tabelitems bevatten op FAT-stations onder andere de naam van een map of bestand, enkele kenmerkbits, 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 achtergrond in feite twee dingen. De betreffende vermelding in de tabel wordt als vrij gemarkeerd, maar daarbij gaat hooguit de eerste letter van de bestandsnaam 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 dataherstelprogramma heeft in dat geval dus vrij veel mogelijkheden om een bestand te herstellen, maar alleen als de betreffende data aaneen­gesloten op de schijf waren opgeslagen. In dat geval kan de software beginnen bij het startcluster en op goed geluk doorgaan met het lezen van data op de achtereen­volgende blokken totdat de (nog steeds bekende) grootte van het bestand bereikt is. Als het bestand echter gefragmenteerd is en de data niet in opeenvolgende 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-opslagmedium zo goed mogelijk te kunnen herstellen, zou je ervoor moeten zorgen dat het zo min mogelijk gefragmenteerd raakt. Bij een harde schijf helpt het om regelmatig te defragmenteren. Dat doet Windows op vaste schijven zelf al geregeld als de pc ingeschakeld is maar niet belast wordt.

Bij een externe harde schijf moet je dat dan wel zelf af en toe in gang zetten. Op geheugenkaarten, zoals in digi­tale camera’s, kun je beter geen losse afbeeldingen verwijderen. Maak in plaats daarvan een back-up na elke fotosessie of vakantietrip, stop de kaart weer terug en formatteer hem daarna in de camera zelf.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

NTFS bestandssysteem

Windows gebruikt voor harde schijven tegenwoordig 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 ondersteunt dan ook partities tot 256 TB en een maximale bestandsgrootte van 16 TB.

De centrale datastructuur van het NTFS-bestandssysteem 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 geavanceerde kenmerken, rechten, maak-, toegangs- en wijzigingsdatum 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 formatteren van een station met NTFS wordt een lege MFT naar de schijf geschreven en het bijbehorende startcluster vervolgens in een veld in de bootsector aangegeven. Bovendien wordt er ook meteen ruimte op de schijf gereserveerd 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 bestands­systeem alsnog wat extra ruimte erbij reserveren. Daardoor kan dan helaas wel een gefragmenteerde MFT ontstaan.

Bij het verwijderen van een bestand worden alleen de betreffende clusters als vrij gemarkeerd en de status van het MFT-item wordt op ongebruikt gezet. Alle gegevens over het bestand, waar­onder de lijst van clusters, blijft daarbij aanvankelijk onaangetast. Dataherstel­software heeft bij per ongeluk gewiste bestanden dus een goede kans om die terug te halen, zelfs als ze gefragmenteerd waren. Sowieso heeft NTFS de neiging bestanden minder sterk te fragmenteren 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 formatteren zijn bij NTFS groter dan bij FAT, dus daar moet je extra voor oppassen.

Het gebruikte type opslagmedium bepaalt ook hoe groot de kans is dat je verloren gegane bestanden terug kunt halen. Die onvervangbare foto’s van de eerste schooldag van je kinderen of je huwelijksvideo kun je beter bewaren op een harde schijf dan op een ssd. Maar natuurlijk moet je er daarnaast ook gewoon een goede back-up van maken.

Schrijfverbod

Alle uitspraken over herstelkansen bij per ongeluk gewiste bestanden zijn onder voorbehoud. Bij het partitioneren, formatteren en verwijderen blijven de eigenlijke data en het grootste deel van de bijbehorende informatie over die data aanvankelijk weliswaar behouden, maar heel belangrijk daarbij is het woord ‘aanvankelijk’. De betreffende ruimte is gemarkeerd als vrij, en vroeg of laat zal het besturingssysteem die gaan gebruiken voor andere doeleinden.

Het belangrijkste gebod als je dataverlies ontdekt is dan ook: schrijf in ieder geval meteen niets meer naar het betreffende opslagmedium. Als het om de systeemschijf gaat, is het gewoon lomp de stekker uit het stopcontact trekken dan eigenlijk het beste wat je kunt doen voor je zoekgeraakte data. Het risico dat daarbij data verloren gaan is kleiner dan bij het netjes afsluiten van het besturingssysteem. Om in die situatie eerst nog op internet te gaan zoeken naar handige hersteltips en daar vervolgens tools voor te downloaden, is in ieder geval een slecht idee.

Een op de partitie geïnstalleerd besturingssysteem moet de schijf in geen geval meer benaderen. Om toch bij de data te komen, zijn er verschillende opties. Als je op de pc nog een ander besturingssysteem hebt geïnstalleerd, heb je geluk. Ook op live-dvd’s met Linux en andere herstel-dvd’s staan tools voor dataherstel. 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 dataverlies niet per ongeluk is ontstaan, maar met opzet door toedoen van kwaadwillende software of afgeschreven hardware, moet je extra voorzichtig zijn. In dat geval kan zelfs leestoegang 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 gemarkeerde sectoren overneemt. Daarom is een tool zoals c’t-WIMage in dit geval niet geschikt.

De beste optie

Ondanks alle hier genoemde herstelmogelijkheden, 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 reservekopie achter de hand te hebben dan om te proberen om met veel graafwerk verloren gegane data te herstellen.

(Hajo Schulz, c’t magazine)

Meer informatie en praktische tips en workshops in c't magazine. Nieuwste uitgave: c't jul-aug/2019

Deel dit artikel

Lees ook

Antivirus programma voor Windows: Defender vs. betaalde software

Heb je een antivirus programma voor Windows nodig in plaats van de standaard geïnstalleerde Windows Defender? We zijn op zoek gegaan naar een antwoord...

Windows 7 support stopt: gevolgen en oplossingen

Wat betekent het concreet dat de Windows 7 support stopt in 2020 en waar moet je op letten? We gaan in op de belangrijkste vragen en geven de oplossin...

3 Praat mee

3

avatar
  Abonneer  
nieuwsteoudste
Laat het mij weten wanneer er
Anna
Lezer
Anna

ik heb samsung tel. Ik wil graag een Back-up maken van de data in mijn eigen cloud. mijn One drive of NAS. Is dit mogelijk?

Anna
Lezer
Anna

een BU maken met mijn samsung telefoon op externe cloud? wie kan me helpen?