Mijn specialiteit zo ongeveer ... Redelijk wat forensisch onderzoek mogen doen

... Belangrijk is eerst een aantal zaken te bepalen:
1. Hoe belangrijk vindt je die data
2. Wat wil je eigenlijk bewaren
3. Hoeveel tijd wil je eraan besteden
Waarom dit belangrijk is. Het komt voor dat er heel belangrijke foto's, muziek of herinneringen bewaard moeten worden, maar ik ben ook gevallen tegen gekomen waar het meer ging om eigenlijk niet meer heel relevante data. Welnu, relevantie is belangrijk. Immers, daarmee kun je ook bepalen of je er veel effort in wilt steken of niet.
Daarmee dwing je jezelf ook om te bepalen WAT je wilt bewaren. Gaat het om documenten, muziek, foto's, alles? Hiermee kun je ook tevens nadenken over hoeveel tijd (en eventueel geld) je wilt "uitgeven".
Welnu, dan nu over naar de orde van de dag.
Er zijn een aantal methoden om dit te doen. Afhankelijk dus, of we echt "low level" bezig gaan, de schijf echt redelijk terminaal is, of niet. Kunnen we ofwel een volledige "disk image" aanmaken waar we verder mee werken LOS van de originele schijf, of we gaan werken direct op de fysieke schijf. Beiden hebben voordelen (en nadelen).
Verder is het niet altijd ZINVOL om data te redden via MacOS X/macOS. Dit omdat bij het koppelen van schijven het OS ook automatisch verschillende kleine aanpassingen maakt, metadata wegschrijft of kleine bestandjes aanmaakt. Zeker voor corrupte schijven is dat een dooddoener. Maar goed, ik zou kiezen uit 3 opties:
1. Bootable MacOS X met een externe schijf aangekoppeld (leeg) en via een kopieer opdracht alles overzetten via de Terminal op bestandssysteemniveau
2. Bootable MacOS X systeem en een schijfkopie aanmaken en met deze schijfkopie verder werken en als dit niet (meer) mogelijk is:
3. Bootable Linux systeem: een volledige schijfkopie aanmaken vanaf de terminal (super makkelijk), deze op een externe schijf wegschrijven om daarvanuit bestanden te redden
4. Bootable Linux systeem: low level een BESTANDS-analyse uitvoeren waarbij naar bekende patronen wordt gezocht en zo bestanden "te redden". Echter, fragmentatie is hierbij een dooddoener. Je kunt geluk hebben, maar dit is een laatste redmiddel.
De opdrachten:
Optie 1 - rsync (snel en met status):
rsync -rlHptoghvO --exclude=.DS_Store --exclude=.* --update --delete-before --stats [ S1 ] [ D1] -n
Optie 2 - ditto
ditto -v [ S1 ] [ D1 ]
Optie 3 - copy
cp -Rv [ S1 ] [ D1 ]
Optie 4 - asr
asr --source [ S2 ] --target [ D2 ] --erase --verbose
Optie 5 - dd
dd if= [ S2 ] bs=1m | gzip -c > [ D3 ]
De verschillen:
copy (cp): kopieer bestanden and directories
ditto: kopieer bestanden, directories en archiveer mogelijkheden
rsync: kopieer bestanden, directories, synchronisatie mogelijkheden inclusief netwerk kopieer mogelijkheden
asr: Apple's eigen diskimage (ook bootable) tool om 1:1 kopieen te maken van een schijf naar een ANDERE schijf OF een diskimage
dd (data duplicator): kopieer gegevens (bestand/schijf/datastroom/iets) naar (iets) ... Hiermee kun je een ruwe (volwaardige) schijf kopie maken die ook op andere computers en systemen leesbaar is.
S1 = brondirectory
D1 = doeldirectory
S2 = bron-schijf
D2 = doel-schijf
D3 = bestandsnaam (mag voorafgegaan worden met een volledig path)
Voorbeelden:
rsync -rlHptoghvO --exclude=.DS_Store --exclude=.* --update --delete-before --stats /volumes/schijf/brondirectory /volumes/andereschijf/doeldirectory
ditto -v /volumes/schijf/brondirectory /volumes/andereschijf/doeldirectory
cp -Rv /volumes/schijf/brondirectory /volumes/andereschijf/doeldirectory
asr --source /dev/disk2 --target /dev/disk4 --erase --verbose
*) kanttekening: dit commando (asr) wist de doelschijf, dus zorg dat je een lege (externe) schijf gebruikt.
dd if=/dev/disk2 bs=64K | gzip -c > /volumes/andereschijf/doelbestand.dd.gz
--- Plekken om mee te nemen ---
Mijn stelling is: in ieder geval de user-data kopieeren, maar een volledige kopie om LATER rustig uit te zoeken, kan ook zinvol zijn. Mocht je een oplossing kiezen op BESTANDSNIVEAU, dan heb je de volgende opties als bron in te geven:
root, ookwel aangeduidt met
/
of
user-directory:
/Users/gebruikersnaam
of:
alle users:
/Users
Kies je voor een volledige schijfkopie, dan dien je de bronschijf te kiezen, maar kun je verder op een later tijdstip keuzes maken.
Heel veel heeft te maken met eerdere keuzes, hoe belangrijk is de data, wat wil ik nu precies redden, etc.
Hoe dan ook, er zijn vele wegen die naar Rome leiden. Denk niet dat er per definitie eentje fout is. Maar allemaal heel anders.
Tot slot de toelichting waarom je mogelijk met een bootable Linux systeem zou willen werken (op je eigen Mac). Dit omdat je in een zogeheten Linux Portable Life System kunt booten en met dit (mini, maar wel volwaardige) systeem heel veel dingen meer kunt doen. Je kunt het internet op, je kunt backups maken, je kunt data migreren, je kunt een schijf ook weer helemaal schoonvegen, je kunt dingen testen en meer ... De terminal commando's onder Linux lijken op de van macOS, alleen zijn de terminal (CLI) opdrachten bij Linux vaak iets recenter en kunnen er kleine verschillen zijn in opties. Een voorbeeld hiervan is bijvoorbeeld 'dd' die je ook een status-bericht kan geven hoever hij is met kopieren. Iets wat bij macOS enkel met een omweg kan. Dit omdat macOS een oude versie van 'dd' heeft.
Hoe dan ook: succes!