Sådan gendanner du tabte familiebilleder med open source-værktøj
Forleden fik jeg en henvendelse fra en ven, hvis søsters familie var havnet i digital ulykke. Problemet var en ekstern Iomega-disk af ældre dato. Den var blevet brugt til lagring af familiebilleder i tidens løb. Det vil sige billeder af børnene, da de var mindre og den slags.
Nu var disken stået af og billederne lå kun på den. Følgende er en nogenlunde nøjagtig (enkelte detaljer fortaber sig i hukommelsens tåger) gengivelse af, hvordan det lykkedes at redde filerne via nogle open source-værktøjer og styresystemet Ubuntu.
Den nævnte fremgangsmåde forudsætter nok et vist kendskab til Linux. Har man ikke det, kan fortællingen måske inspirere til at få det. Og har man masser af Linux-kendskab, så er fortællingen måske banal - byd i så fald gerne ind med yderligere tips og tricks til filgendannelse i kommentarsporet.
Og så lige en disclaimer om, at forsøg på filgendannelse - som det, der beskrives på de følgende linjer - kan resultere i, at de data, man vil gendanne, går tabt evigt.
Min umiddelbare tanke var, at filerne relativt enkelt burde kunne reddes, med mindre disken var overskrevet eller på en eller anden måde mekanisk i stykker.
En Google søgning på file recovery ubuntu ledte til en ganske udførlig guide til, hvordan en række forskellige værktøjer kan bruges til filgendannelse via styresystemet Ubuntu. Jeg brugte på tidspunktet version 16.04 af Ubuntu, så nedenstående tager afsæt i denne udgave, men burde kunne anvendes uden videre på andre versioner også.
https://help.ubuntu.com/community/DataRecovery
Jeg havde på dette tidspunkt sikret mig, at disken umiddelbart så ud til mekanisk at fungere. Det vil sige, jeg kunne se to partitioner på den, når jeg satte den i USB-porten.
Det indbyggede disk-oversigts-værktøj i Ubuntu viste en mindre og indledende Iomega-partition, jeg mener, det var FAT. Og så en større partition på lige under 500 GB, der ikke umiddelbart kunne læses.
Disk-værktøjet kan startes ved at trykke super/Windows-tasten på tastaturet og skrive disks.
Som nogen vil vide, så er det en dårlig idé at begynde at skrive til en disk, som man vil redde data fra. Så det første jeg gjorde - med hjælp fra linket fra før - var at kopiere hele disken over i en image-fil på et andet drev.
Det kan gøres på Ubuntu ved at åbne en terminal (ctrl+alt+t) og installere pakken gddrescue med:
sudo apt install gddrescue
Herefter skal det opklares, hvor USB-disken fra før sidder på systemet. Har man kun en disk tilsluttet på 500 GB kan det relativt let opklares, har man flere skal man fare med lempe, så man ikke får fat i den forkerte enhed.
En relativ enkel og visuel måde at identificere disken på, såfremt man befinder sig i et desktop-miljø på Ubuntu, er via disk-værktøjet fra før.
Herefter klikker man på den rigtige enhed i listen, og ser efter hvad der står ud for Device.
Det kan eksempelvis være /dev/sdb
I terminalen kan en mulighed være at skrive følgende:
lsblk
Og så spotte den enhed der af navn og størrelse passer med USB-drevet. Det er stadig noget med /dev/sdb (eller sdc, sdd etc. alt afhængig af setup) vi skal have fat i. Der er flere måder at identificere det rigtige drev på.
Nu til datakopieringen. Fordi vi før installerede gddrescue, har vi nu adgang til at køre ddrescue. Hvis vores USB-disk sidder på eksempelvis /dev/sdb, så kunne en kommando til at kopiere data med se således ud (skift [brugernavn] ud med den aktuelle bruger):
sudo ddrescue -f -r3 /dev/sdb /home/[brugernavn]/disk.img /home/[brugernavn]/logfil
Ovenstående forsøger at kopiere så meget data som muligt fra hele disken. Under fejllæsninger forsøges det tre gange at kopiere data (-r3). Hvis der havde stået sdb1 i stedet for bare sdb, så var kun første partition - det vil sige den lille Iomega-partition - blevet kopieret. Med sdb bliver hele disken forsøgt kopieret, hvilket er det, jeg vil i dette tilfælde, da jeg ikke på forhånd ved, hvor meget data, der har ligget i de enkelte partitioner.
Processen tager lidt tid alt efter størrelsen på den disk, der kopieres data fra.
Nu installeres pakken foremost:
sudo apt install foremost
Foremost kan bruges til at gennemgå et disk-image, som det vi lige har lavet, en disk partition eller andet i forhold til kendte fil-typer. Blandt andet billed- og videofiler. Det er, hvad vi er på jagt efter i dette tilfælde. Ud fra filnavnet fra før, kører vi:
sudo foremost -i /home/[brugernavn]/disk.img -o /home/[brugernavn]/foremost
Igen går der lidt tid. Potentielt ret lang tid, alt efter disk-størrelse.
Når processen er færdig, og der forhåbentligt er fundet flere filer, som er blevet placeret i /home/[brugernavn]/foremost, så ejes mappen i første omgang af root. Kør følgende, for at lave om på ejerskabet, hvor brugernavn er dit eget brugernavn:
sudo chown -R brugernavn:brugernavn /home/[brugernavn]/foremost
-R i ovenstående betyder, at kommandoen køres rekursivt, så ejerskabet af de underliggende mapper og filer også overgår til brugeren.
Herefter kan du inspicere det fundne fil-indhold ved at navigere til din hjemmemappe med eksempelvis Ubuntu-filbrowseren Nautilus.
Filnavne går fløjten i ovenstående proces. Det vil sige, at filtyperne rubriceres i foremost-mappen i undermapper, der matcher filtyperne. Alle jpg-filer får et tal og havner på i en jpg-mappe. Det er lidt noget rod, men det er uendeligt meget bedre end ingenting.
Via en proces, der minder om ovenstående, lykkedes det at redde ca. 15GB data, herunder en del familiebilleder. Dataene blev flyttet over på en ny ekstern harddisk, som var formateret til Microsofts NTFS-filsystem, så familiens Windows-maskine kunne læse indholdet af disken.
Der er flere andre beskrivelser og værktøjer på https://help.ubuntu.com/community/DataRecovery.
Blandt andet fiduser til, hvordan en tabt fil-tabel eventuelt kan genetableres. Jeg har afprøvet flere af teknikkerne, men havde i det konkrete forløb mest held med kombinationen af ddrescue og foremost.
Kører man ikke lige Ubuntu, kan man måske alligevel få glæde af de tips og tricks, der nævnes i linket ved at køre en Ubuntu live.
Det vil sige, man booter en Windows, Mac eller Linux-maskine direkte ind i Ubuntu fra eksempelvis en usb-pind. Det kan generelt være en fordel at boote Ubuntu live på den måde i forbindelse med recovery - blandt andet hvis de data, man vil redde, ligger på en system-disk på den maskine, man kører redningsaktionen fra.

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.