Publicatie:Bestanden exporteren van disk images van diskettes uit de jaren tachtig en negentig

Uit Cultureel Erfgoed Standaardentoolbox
Ga naar: navigatie, zoeken


Samenvatting

In 2017 en 2018 kreeg PACKED vzw van drie organisaties (Liberaal Archief, ADVN en HeK (House for Electronic Arts)) de vraag om data te capteren van diskettes. De dragers zijn afkomstig uit de periode eind jaren tachtig tot midden jaren negentig. Van iedere diskette werd een disk image gemaakt. Om de bestanden bruik- en leesbaar te maken, werden de disk images verder behandeld: het bestandssysteem werd geïdentificeerd en de bestanden werden van de disk images gehaald en geïdentificeerd.


Referentie
Titel Bestanden exporteren van disk images van diskettes uit de jaren tachtig en negentig (Voorkeurstitel)
Locatie
Uitgever
Jaar van uitgave 2018
Rechten CC-BY-SA
Persistent ID


Auteur

Nastasia Vanderperren (PACKED vzw)

Probleemstelling

In een vorige fase hebben we van de 218 diskettes van Liberaal Archief, ADVN en HeK een disk image gemaakt. Disk images verschillen van gewone bestandskopieën doordat bij een disk image alle informatie van één drager in één digitaal bestand bewaard wordt. In een disk image worden niet enkel de bestanden van de drager, maar ook alle systeeminformatie bewaard, terwijl je bij de aanmaak van gewone kopieën enkel de bestanden en de mappen van een drager overbrengt naar een andere locatie. Om de bestanden en de mappen van een disk image te lezen of te gebruiken, moet je de disk image aansluiten of mounten op je computer. Dat kan risicovol zijn omdat sommige besturingssystemen (onzichtbare) bestanden wegschrijven op de aangesloten opslagmedia. Ook is het soms niet mogelijk om een disk image te mounten omwille van zijn bestandssysteem. Bestandssystemen zijn softwarematige indelingen van een opslagmedium (bv. een harde schijf of een externe drager) dat het besturingssysteem gebruikt om de data op het medium weer te geven als bestanden en om ze te kunnen gebruiken in applicaties. Er bestaan zowel bestandssystemen die enkel op een bepaald besturingssysteem gebruikt kunnen worden als bestandssystemen die op meerdere besturingssystemen toegankelijk zijn.[1]

Om ervoor te zorgen dat de collectiebeherende instellingen toegang hebben tot de bestanden op de disk images, werden de bestanden geëxporteerd en geïdentificeerd. Naar aanleiding van het Resurrection Lab-project ontwierp PACKED vzw een workflow voor het identificeren van data op disk images. De disk images waren een geschikte case om de deze workflow te testen.

Status

In de periode april - juli 2018 hebben we 218 disk images behandeld. We konden van 149 disk images de bestanden van de disk image halen. Dit resulteerde in 3166 bestanden. De identificatietools slaagden erin om van 1155 bestanden de bestandsformaten te identificeren. Van de 2011 bestanden waarvan de tools de bestandsformaten niet konden identificeren, konden we van 1007 bestanden het bestandsformaat gissen op basis van metadata. 1004 bestanden bleven ongeïdentificeerd.

Methode

We volgden het artikel Digital Archaeology and/or Forensics: Working with Floppy Disks from the 1980s van John Durno. Hij maakte disk images van diskettes in allerhande formaten (o.a. PC/MS-DOS, Classical Macintosh, AppleDOS, Kaypro CPM en Atari) en exporteerde de bestanden van de disk images. Hij gebruikte daarvoor een reeks command line tools en emulatoren[2].

Bepaal het bestandssysteem

Vooraleer we met command line tools aan de slag konden gaan om bestanden van de disk images te exporteren, dienden we te weten welk bestandssysteem de disk images hadden. De keuze voor een tool is namelijk afhankelijk van het bestandssysteem. Die informatie is ook nodig in het geval je de bestanden zou willen openen in een emulatieomgeving. Op basis van het bestandssysteem kan de geschikte emulatieomgeving gekozen worden.

Voor diskettes die gebruikt zijn in MS-DOS/Windows en Classical Macintosh zijn de meest gebruikte bestandssystemen FAT12[3] en HFS[4]. FAT is een bestandssysteem dat ontwikkeld werd voor MS-DOS en Windows, waarvan FAT12 specifiek voor diskettes. Het wordt breed ondersteund, o.a. door bijna alle moderne besturingssystemen (Windows, Mac en Linux). HFS is een obsoleet bestandssysteem dat ontwikkeld werd door Apple en gebruikt werd voor diskettes en harde schijven. HFS disk images kunnen enkel gelezen worden op Mac (zowel klassieke Macintosh als de moderne OS X/macOS).

Om het bestandssysteem te bepalen, gebruikten we disktype[5]. Dat is een command line tool die gebruikt kan worden in UNIX-omgevingen zoals Linux of Mac, of via Cygwin[6] op Windows, om bestandssystemen van een disk of disk image vast te stellen. Met het commando disktype image.img > disktype.txt schreven we de info weg in het tekstbestand disktype.txt voor de disk image met naam image.img.

disktype kon slechts voor vijf disk images het bestandssysteem niet bepalen. We kwamen tot de conclusie dat de disk images van diskettes die gebruikt werden in een Windowsomgeving inderdaad FAT12 als bestandssysteem hebben. De disk images van Macintoshdiskettes hebben voornamelijk HFS. In drie gevallen werd echter MFS (Macintosh File System)[7] gebruikt. MFS is de voorloper van HFS en werd ontwikkeld voor diskettes met een capaciteit van 400 kB. Het werd ontwikkeld in 1984 voor de allereerste Macintoshcomputer, maar werd al snel vervangen door HFS. MFS-schijven kunnen op geen enkele hedendaagse laptop meer gelezen worden, tenzij met behulp van een emulator. De vijf disk images waarvan disktype het bestandssysteem niet kon bepalen waren afkomstig van beschadigde diskettes.

Kopieer de bestanden van de disk images

Het is veiliger om de disk images niet rechtstreeks te mounten op de computer. Besturingssystemen zoals Windows en macOS hebben immers de gewoonte om extra (onzichtbare) bestanden weg te schrijven.[8] We maakten daarom gebruik van verschillende tools om bestanden van de disk images te exporteren.

Van iedere disk image maakten we een indexbestand waarin alle bestanden van de oorspronkelijke diskette met hun grootte en hun laatste bewerkingsdatum opgelijst werden. Dat bestand noemden we ‘index.txt’. Vervolgens kopieerden we alle bestanden uit de disk image naar een map met de naam ‘content’. De werkwijze daarbij verschilt per type disk image.

Afbeelding 1: De structuur van de map per drager. De hoofdmap bestaat uit een submap 'meta' voor alle bestanden met metadata, een submap 'content' voor de export van de bestanden en een submap 'image' voor de disk image.

Bestanden van FAT12 disk images exporteren

Er bestaan verschillende tools waarmee je bestanden van FAT12 geformatteerde disk images kunt kopiëren. Wij maakten, net zoals in het artikel van John Durno, gebruik van mtools[9]. Dat is een verzameling van command line tools waarmee het mogelijk is om met Mac- of Linuxcomputers met MS-DOS-volumes te werken.

We hebben de volgende commando’s gebruikt voor de disk image met naam image.img:

  • mdir -/ -a -i image.img > index.txt: dit commando maakt een oplijsting van alle bestanden uit de disk image, inclusief verborgen bestanden, en schrijft die weg in het bestand index.txt.
  • mcopy -psmi image.img ::* content: dit commando kopieert alle bestanden en mappen uit de disk image naar de map met de naam ‘content’. De originele eigenschappen en de laatste bewerkingsdatum van de bestanden worden daarbij bewaard.
Afbeelding 2: een indexbestand.

Een andere tool die we uitgetest hebben is BitCurator Disk Image Access. BitCurator[10] is een gespecialiseerde versie van Ubuntu die bestaat uit een verzameling van forensische tools om archivarissen en bibliothecarissen te helpen bij het preserveren van data op externe dragers. De BitCurator Disk Image Access is software waarmee je alle bestanden op een disk image kunt exporteren. Je kunt zelfs alle verwijderde bestanden op de schijf zien en exporteren. De verwijderde bestanden op de disk images bestonden hoofdzakelijk uit tijdelijke tmp-bestanden. Ook leken sommige disk images afkomstig te zijn van diskettes waar eerst computerspellen op stonden die vervolgens overgeschreven werden. Wij kozen ervoor om de verwijderde bestanden niet te exporteren omdat ze niet relevant of nuttig leken. Tijdelijke tmp-bestanden kunnen bijvoorbeeld niet meer geopend worden.

Afbeelding 3: een disk image geopend in Disk Image Access. Het rode bestand is een bestand dat van de diskette verwijderd was.'

In tegenstelling tot mcopy kun je met BitCurator Disk Image Access ook verborgen mappen en bestanden exporteren. Dat zijn doorgaans systeembestanden waar je weinig mee kan doen. Niettemin, als je de diskette in zijn volledigheid wil exporteren, dan is Disk Image Access een betere tool. Wij verkozen mtools omdat we het proces dan eenvoudiger konden automatiseren met behulp van een script.

Op die manier zijn we er in geslaagd om de bestanden van 54 van de 55 FAT12 disk images te kopiëren. De disk image waarvan we de bestanden niet konden kopiëren, konden we noch met mtools, noch met Disk Image Access openen.

Bestanden van HFS disk images exporteren

hfsutils

Ook voor het exporteren van de 160 HFS geformatteerde diskettes hebben we verschillende tools gebruikt. De eerste tool die we hebben uitgetest was hfsutils.[11] Dat is een verzameling van commando’s waarmee je op UNIX-systemen HFS-volumes kunt manipuleren. De commando’s zijn gelijkaardig aan die van mtools.

We hebben de volgende commando’s gebruikt voor een disk image met naam image.img:

  • hmount image.img > hmount.txt: dit commando zorgt ervoor dat het volume van de disk image virtueel gemount wordt. De metadata wordt weggeschreven in het bestand ‘hmount.txt’. De metadata bestaat uit de naam van het volume, de datum waarop het volume gecreëerd werd[12], de laatste bewerkingsdatum en het aantal vrije bytes.
  • hls -ialR image.img > index.txt: hiermee worden alle mappen en hun bestanden, inclusief degene die verborgen zijn, in de disk image opgelijst. De oplijsting gebeurt in het ‘lange formaat’. Dat betekent dat naast de bestanden ook de file type en de creator code weergegeven worden. In de klassieke Macintoshomgevingen werden bestanden niet geïdentificeerd op basis van bestandsextensies, maar door middel van het file type (een code voor het type bestand) en de creator code (een code voor de applicatie waarmee het bestand gemaakt werd). Het is een handig mechanisme om de bestanden op de disk image te identificeren. De lijst wordt weggeschreven in het bestand ‘index.txt’.
  • hcopy -m :* image.img content/: de bestanden op het volume worden samen met hun resource fork gekopieerd naar de map ‘content’. Resource fork is een mechanisme op oude en hedendaagse Mac-omgevingen dat gestructureerde data bewaart van bestanden, zoals o.a. iconen, de vorm van de vensters en het menu van het bestand. Resource forks kunnen enkel gebruikt worden op Mac-systemen.
  • humount: de disk image wordt virtueel uitgeworpen.
Afbeelding 4: output van het hmount-commando.
Afbeelding 5: output van het hls-commando. In de derde kolom zie je de creator code en de file type.

Met hmount konden we 102 disk images mounten en het indexbestand creëren. Met het hcopy konden we van 83 disk images de bestanden kopiëren. We stelden vast dat het indexbestand soms meer bestanden telt dan wat hcopy geëxporteerd heeft. Met de tool hcopy konden we geen bestanden kopiëren die zich in submappen bevinden. Soms kon de tool niet alle bestanden te kopiëren. Dat is mogelijk een gevolg van fouten op de oorspronkelijke diskette. Het ging namelijk altijd om disk images van diskettes die niet foutloos gecapteerd konden worden. Een nadeel aan het commando hcopy is dat het de originele metadata van de bestanden, zoals creatiedatum en laatste bewerkingsdatum, verandert naar de datum en het tijdstip waarop de bestanden gekopieerd worden.

hdiutil

Vervolgens hebben we hdiutil getest. hdiutil[13] is een command line tool op macOS die disk images in allerlei formaten (.dmg, .img, .iso) kan manipuleren. We wilden er in eerste instantie mee testen of het de disk images kon mounten die hfsutils niet kon inladen en exporteren. Eenmaal het volume met hdiutil gemount was, konden we de bestanden kopiëren met rsync. rsync[14] is een command line tool waarmee je bestanden kunt kopiëren van de ene locatie naar de andere. De software controleert steeds via checksums of het kopiëren succesvol verlopen is en kan uitgevoerd worden in archive modus. Hierbij worden de originele metadata van de bestanden behouden. tree[15], een command line tool om bestanden op te lijsten in een boomstructuur, werd gebruikt om een index te maken van de bestanden.

We gebruikten volgende commando’s op een disk image met de naam image.img:

  • hdiutil attach -readonly image.img: met dit commando wordt de disk image als een alleen-lezen medium gemount. Je ziet hierbij het volume van de disk image in de zijbalk van Finder verschijnen. `hdiutil` geeft als antwoord de locatie waar de disk gemount werd[16] en de naam van het volume.
  • rsync -ra /Volumes/image/ content/: alle mappen en bestanden op het volume met de naam image worden gekopieerd naar de map ‘content’. rsync wordt uitgevoerd in archive modus.
  • hdiutil detach /dev/disk2: nadat alles gekopieerd is, wordt de disk uitgeworpen.
Afbeelding 6: gebruik van hdiutil. Het volume verschijnt in de zijbalk van Finder.
Afbeelding 7: output van het tree-commando.

Met hdiutil en rsync konden we nog van een vijftal disk images de bestanden kopiëren. We merkten een aantal voordelen ten opzichte van hfsutils. Ze maakten het mogelijk om bestanden in submappen te exporteren. Bovendien werd de originele aanmaak-, geopend- en bewerkingsdatum behouden en konden we ook de verborgen bestanden exporteren. We besloten dan ook om die twee tools bij alle disk images te gebruiken. We merkten daarbij wel dat hdiutil sommige disk images niet kon mounten die hfsutils wel kon mounten. Voor die disk images waren we dus wel verplicht om hfsutils te blijven gebruiken. Omwille van de rijke metadata van de tools hmount en hls bleven we die voor alle disk images gebruikten.

HFSExplorer

Er waren nog steeds een zeventigtal disk images waarvan we de bestanden niet konden kopiëren. We hebben daarom een derde tool uitgetest: HFSExplorer.[17] HFSExplorer is gelijkaardig aan Disk Image Access. Je kunt ermee een disk image openen en de bestanden exporteren. Ook met deze tool wordt de originele bewerkingsdatum bewaard en konden verborgen bestanden geëxporteerd worden.

Afbeelding 8: een disk image geopend met HFSExplorer.

Met HFSExplorer konden we nog van twee extra disk images de bestanden exporteren. Opdat de originele metadata van de bestanden behouden bleef, hebben we de tool ook gebruikt voor de disk images die de tool hdiutil niet kon exporteren, maar hfsutils wel.

Mini vMac

Om de bestanden van de andere disk images te halen, hebben we nog een laatste tool uitgetest: Mini vMac. Mini vMac[18] is een emulator waarmee je de klassieke Macintoshomgevingen van System 1 (° 1983)[19] tot System 7.5.5 (° 1996)[20] kunt openen. In die emulator konden we onze disk images inladen alsof we een diskette in een echte computer staken. Met de applicatie ExportFl[21] konden we vervolgens de bestanden op de disk image exporteren van de emulatieomgeving naar de echte computer. Op die manier konden we nog de bestanden van een tweetal disk images exporteren.

Afbeelding 9: De disk image met naam ‘PERSMEDEDELINGEN’ is "gemount" in Mini vMac. Met ExportFl kunnen de bestanden op de disk image geëxporteerd worden.
Afbeelding 10: De inhoud van de disk image geopend in Mini vMac.

Met bovenstaande vier methodes konden we in totaal de bestanden van 94 disk images exporteren. In sommige gevallen hadden de vier tools problemen bij het lezen van een disk image en kon slechts een deel van de bestanden geëxporteerd worden. De 66 andere disk images waren vermoedelijk gemaakt van diskettes die te beschadigd en daarom niet meer functioneel zijn. Er was geen enkele tool die alle 94 nog functionele disk images kon lezen. HFSExplorer en hdiutil in combinatie met rsync konden zowel verborgen bestanden exporteren als de originele metadata behouden. Die bestanden en metadata missen we bij de disk images waarvoor we Mini vMac en hfsutils moesten gebruiken. Met hfsutils konden we dan weer de beste indexbestanden maken doordat het de bestanden inlaadt in een virtuele HFS-omgeving. We kregen daarmee niet enkel een lijst van alle bestanden die op de disk image staan, maar ook de code van het bestandstype en de applicatie waarmee de bestanden gemaakt zijn. Dat is nuttige metadata voor het identificeren van de bestanden.

Bestanden van MFS disk images exporteren

Er bestaat geen software om MFS disk images te manipuleren. Om bestanden van de disk images te halen, probeerden we daarom de emulator Mini vMac te gebruiken. Die emulator kon twee van de drie disk images mounten, maar we konden van slechts één disk image de bestanden exporteren. Bij de andere disk image crashte Mini vMac steeds. Vermoedelijk waren de twee niet-functionele disk images gemaakt van diskettes die te beschadigd waren.

De bestanden identificeren

Wanneer de bestanden van de disk images gehaald waren, hebben we het identificeren van de bestandsformaten gestart. We gebruikten daarbij twee tools: Siegfried en DROID. Beide tools maken voor de identificatie gebruik van de PRONOM-databank. Er was weinig verschil tussen de resultaten van beide tools. Het verschil lag in nuance: soms was DROID meer zeker over het bestandsformaat van een aantal bestanden terwijl Siegfried nog twijfelde, en omgekeerd.

De tools waren slechts in ongeveer één op de drie gevallen zeker over het bestandsformaat. Een verklaring daarvoor kan zijn dat in het HFS-bestandssysteem bestanden geen bestandsextensies hadden of dat de bestanden te beschadigd waren door schade aan de diskette. Doordat in klassieke Macintoshomgevingen bestanden geïdentificeerd werden met hun file code en creator code, krijgen we met deze metadata een indicatie over hun bestandsformaat. De codes konden we gebruiken om met de online lijst Signatures of Macintosh Files de bestanden te identificeren. We zien in de ongeïdentificeerde bestanden van Liberaal Archief voornamelijk volgende codes terugkeren:

  • ALB3/ALD3: staat voor Aldus Pagemaker 3.0;
  • ALB4/ALD4: staat voor Aldus Pagemaker 4.0;
  • MACA/WORD: staat voor MacWrite 4.6/5;
  • MWII/MW2D: staat voor MacWrite II.

Als we die bestandsformaten opzoeken in de PRONOM-databank zien we dat de databank sommige bestanden niet kent (MacWrite en MacWrite II) of dat het voor de bestanden enkel de extensie kent. Aangezien in klassieke Macintoshomgevingen geen extensies bewaard worden, is het voor DROID of Siegfried onmogelijk om de bestanden te identificeren. Je kunt de tools deze formaten wel leren kennen door een custom signature file te creëren. Dat hebben we voor deze case (nog) niet uitgetest. Ook is het mogelijk om een nieuw bestandsformaat aan te melden in de PRONOM-databank. Ook dat hebben we nog niet uitgetest.

Conclusie

Door verschillende tools te gebruiken, zijn we er in geslaagd om van 213 disk images het bestandssysteem te bepalen. Van 149 van de 218 disk images van diskettes uit de jaren tachtig en negentig konden we de bestanden afhalen en laten identificeren. De 69 disk images waar dat niet bij lukte zijn vermoedelijk afkomstig van te beschadigde diskettes, waardoor ook de disk images corrupt zijn en niet meer geopend kunnen worden. Niettemin zijn de slaagkansen ook afhankelijk van de gebruikte tools. Vooral bij de HFS disk images viel het ons op dat de ene tool disk images kon lezen die een andere niet kon lezen. Geen enkele van de vier gebruikte tools kon alle functionele disk images lezen.

Acties Aantal geslaagd Aantal niet geslaagd Totaal
Bestandssysteem bepalen 213 disk images 5 disk images 218 disk images
Bestanden afhalen 149 disk images 69 disk images 218 disk images
Bestanden identificeren 1155 bestanden (met manuele identificatie: 2162) 2011 bestanden (met manuele identificatie: 1004) 3166 bestanden (van 149 disk images)

Bestandsidentificatie lukte slechts in een minderheid van de gevallen. Vooral bij de HFS disk images slaagde de identificatiesoftware er niet in om de bestanden te analyseren. Dat is een gevolg van het feit dat bestanden in HFS geen extensie hebben. De metadata waarmee HFS bestanden identificeert (de creator code en de type code) gaven ons wel de mogelijkheid om zelf de bestanden te identificeren. Op de disk images stonden hoofdzakelijk tekstbestanden van brieven en publicaties geschreven en uitgegeven door de archiefvormers. In het geval van HeK waren het twee kunstwerken die uiteindelijk verloren zouden gaan als ze niet van de diskettes gehaald werden.

Alle bestanden die van de disk images gehaald werden, en ook de disk images zelf, werden onderworpen aan een viruscontrole. Diskettes waren een populair medium om virussen te verspreiden. Die virussen kunnen nog steeds gevaarlijk zijn, waardoor viruscontrole nodig is. Er werden geen virussen gevonden.

Literatuur

DURNO, John, Digital Archaeology and/or Forensics: Working with Floppy Disks from the 1980s, http://journal.code4lib.org/articles/11986

Referenties

  1. Voor meer informatie, zie https://nl.wikipedia.org/wiki/Bestandssysteem.
  2. Een emulator is software die het mogelijk maakt om een computersysteem na te bootsen in een nieuwe of eigen omgeving.
  3. Voor meer informatie, zie https://en.wikipedia.org/wiki/File_Allocation_Table#FAT12.
  4. Voor meer informatie, zie https://en.wikipedia.org/wiki/Hierarchical_File_System.
  5. Voor meer informatie, zie http://disktype.sourceforge.net/
  6. Cygwin is een verzameling van vrije hulpprogramma's bedoeld om Unix-programma's op de meeste versies van Microsoft Windows te draaien, https://nl.wikipedia.org/wiki/Cygwin.
  7. Voor meer informatie, zie https://en.wikipedia.org/wiki/Macintosh_File_System.
  8. HFS kan sinds OS X 10.6 enkel gelezen worden op Mac. Voor MacBooks met moderne besturingssystemen is er dus geen gevaar dat onzichtbare bestanden in de disk images opgenomen worden.
  9. Voor meer informatie, zie https://www.gnu.org/software/mtools/intro.html.
  10. Voor meer informatie, zie https://bitcurator.net/bitcurator/.
  11. Voor meer informatie, zie https://linux.die.net/man/1/hfsutils.
  12. De datum waarop het volume gecreëerd werd, is de datum waarop de diskette voor het eerst gebruikt/geformatteerd werd.
  13. Voor meer informatie, zie https://ss64.com/osx/hdiutil.html.
  14. Voor meer informatie, zie https://nl.wikipedia.org/wiki/Rsync.
  15. Voor meer informatie, zie https://en.wikipedia.org/wiki/Tree_(command).
  16. Als je geen externe schijven aan je computer aangesloten hebt, is dit normaal /dev/disk2.
  17. Voor meer informatie, zie http://www.catacombae.org/hfsexplorer/.
  18. Voor meer informatie, zie https://www.gryphel.com/c/minivmac/.
  19. Voor meer informatie, zie https://en.wikipedia.org/wiki/System_1
  20. Voor meer informatie, zie https://en.wikipedia.org/wiki/Classic_Mac_OS
  21. Voor meer informatie, zie https://www.gryphel.com/c/minivmac/extras/exportfl/index.html.

Contactgegevens

Nastasia Vanderperren: nastasia@packed.be