Workshopverslag: Digital Media Archeologie in de praktijk met Ben Fino-Radin (MoMA), georganiseerd door PACKED vzw en iMAL 9 april en 10 2015, Brussel

Auteur: Emanuel Lorrain (PACKED vzw)

Gepubliceerd in: 'ICOM-CC, Modern Materials and Contemporary Art Working Group Newsletter' (Mei 2015)

 

Traditional conservation practices are primarily focused on the medium (e.g., stone, wood, paper, film or textile) and how to extend its life by stabilizing its decay and limiting the impact of internal and external factors. This decay of the medium and the impact of internal and external factors also apply to floppy disks, CD-ROM and hard drives, so much that conservators and archivists are forced to preserve the content independently from the carrier. Obsolescence of hardware and software environments only leaves them with a small window to preserve their digital works still stored on original media.

 

In 2015, PACKED vzw - Expertise Centre in Digital Heritage and iMAL Centre for Digital Cultures and Technology, collaborate in a program dedicated to the preservation and access to digital art and heritage. This joint program includes exhibitions, workshops and conferences throughout the year. The launching event of this program was Welcome to the Future!, an exhibition presenting more than fifty artworks produced in the 1980s and 1990s and distributed on floppy disks and CD-Roms. In the framework of this exhibition, digital art conservator and digital repository manager at the Museum of Modern Art in New York, Ben Fino-Radin, was invited to Brussels to host a two-days Data Preservation Bootcamp. This record is a brief overview of the topics and hands-on activities that were part of this workshop.

 

Working with a 5¼-inch floppy that was used to distribute KAOS, a collection of generative literature works. Picture: iMAL.

 

Identification

The participants of the workshop were first taught how to identify and characterise different types of disks and data carriers based on their technology (optical, magneto-optical or magnetic), size (e.g.,  8", 5.25" or 3.5"), format (single-sided or double-sided) and density (high density or double density), as usual migration procedures are based on these parameters.

 

Disk imaging

The common preservation practice is to create disk images to copy the whole package of data stored on a physical disk. These images can later be mounted on a computer just like any external disk or drive. After introducing basic command lines instructions, Ben Fino-Radin showed several ways to create disk images using the computer terminal with commands such as DD and DD Rescue as well as by using software with a graphical user interface (GUI) like FTKImager and Guymager. 

 

Floppy disk geometry

Similar looking floppy disks can come with different data structures, e.g., tracks per side, sectors per track and bytes per sector. This data structure is called geometry. Before making a disk image you need to know what geometry was used to write the floppy disk. This information can be deduced from different sources, e.g. the original user, the machine that produced the disk and the label. When no information is available, trial and error is often the only way to find the right geometry.

 

Reading floppies at the lowest level possible using the KryoFlux. Picture: iMAL.

 

Stream files

Ben Fino-Radin demonstrated raw stream capture using the Kryoflux floppy controler. The Kryoflux is a board and software developed by the Software Preservation Society. It allows controlling a floppy drive (5.25" and 3.5") through a USB connection with any current operating system to create a low-level reading and capture of the magnetic flux transitions and outputs of the magnetic media. One can then work from this raw stream file to create an unlimited amount of disk images. This way damage to the original physical media by repeatedly reading it is avoided.

 

Write Blockers

The participants were trained on the use of write blockers to safely create disk images of external hard drives. When connecting an external media to current computers, some operating systems will write data in an invisible way. Some floppies have a physical tab that can serve as a write protection, but for other removable carriers and hard drives, write blockers are necessary to keep the original media unmodified and authentic.

 

File type and access

Digital media can contain a wide range of formats. Once the original medium has been stabilised through disk imaging, file identification is the next step that archivists and conservators have to carry out. During the workshop, participants used Droid, an open source file identification tool based on the PRONOM file format registry. PRONOM was developed to give technical information about file formats and the necessary software and hardware environment required to access them. Once technical information about their file was identified, the participants were able to access them using any relevant emulator (e.g., MESS, MiniVmac, Sheepshaver, and DOSBOX).

 

Making disk images of hard drives using write blockers. Picture: iMAL.

 

Other digital preservation topics such as amongst others file integrity, fixity checks, description models, technical metadata, ingest and access were also discussed during this two-day event.

More pictures of the workshop are available here: https://www.flickr.com/photos/malicy/sets/72157649551507823

 

 

More information and resources about the content of this review can be found by using these links:

 

• Welcome to the future: http://www.imal.org/en/activity/welcome-future

• FTK Imager: http://accessdata.com/solutions/digital-forensics/forensic-toolkit-ftk

• Guymager: http://guymager.sourceforge.net/

• The Kryoflux: http://www.kryoflux.com/

• DROID: http://www.nationalarchives.gov.uk/information-management/manage-informa...

 

 

logo vlaamse overheid

Uncaught exception thrown in session handler.

PDOException: SQLSTATE[HY000]: General error: 1114 The table 'sessions' is full: INSERT INTO {sessions} (sid, uid, cache, hostname, session, timestamp) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5); Array ( [:db_insert_placeholder_0] => 39D8l4Z8ADvPqhLuxs-puDsZpQW4Q2a4Y3IL3arqobk [:db_insert_placeholder_1] => 0 [:db_insert_placeholder_2] => 0 [:db_insert_placeholder_3] => 10.10.10.1 [:db_insert_placeholder_4] => messages|a:1:{s:5:"error";a:23:{i:0;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:1;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:2;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:3;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:4;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:5;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:6;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:7;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:8;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:9;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:10;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:11;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:12;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:13;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:14;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:15;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:16;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:17;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:18;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:19;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:20;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:21;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";i:22;s:247:"<em class="placeholder">Notice</em>: Trying to access array offset on value of type int in <em class="placeholder">element_children()</em> (line <em class="placeholder">6595</em> of <em class="placeholder">/data/www/html/includes/common.inc</em>).";}} [:db_insert_placeholder_5] => 1721589463 ) in _drupal_session_write() (line 209 of /data/www/html/includes/session.inc).