{"id":260,"date":"2015-08-24T01:19:05","date_gmt":"2015-08-23T23:49:05","guid":{"rendered":"http:\/\/huf.org\/wp\/?p=260"},"modified":"2018-07-14T23:39:28","modified_gmt":"2018-07-14T22:09:28","slug":"archiving-my-old-floppy-disks","status":"publish","type":"post","link":"https:\/\/huf.org\/wp\/?p=260","title":{"rendered":"archiving my old floppy disks"},"content":{"rendered":"<p>the other day i stumbled upon those boxes with the 3.5&#8243; floppy disks from \u00a0about 20 years ago (blyme! is it 20 years already?). so i decided to get rid of them. w<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-274 alignright\" src=\"http:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/4floppies-4-300x229.png\" alt=\"4floppies-4\" width=\"168\" height=\"130\" \/>hile browsing through the disks with the handwritten labels, i remembered all that time that went into the programs, documents and other data on there. i was on the verge of packing them away again, not being able to simply thrash them, when i decided to solve the dilemma once and for all: i would be brave and back up all that was on there!<\/p>\n<p>the first challenge was to find the hardware to read 3.5 floppies: merely two weeks earlier i had thrown away the last pc capable of connecting a floppy drive. sifting through the treasure trove in my dungeon, i unearthed my very first laptop computer: a dell dpi-a 366xt, outfitted with a pentium-II and\u00a0a multifunction bay for a cd-rom or a floppy drive. the laptop now runs a console version of linux (some outdated ubuntu). the only reason, this machine had not been auctioned off at ebay years ago was my emotional attachment to it&#8230;.<\/p>\n<h2>software<\/h2>\n<p>I wanted to put as little effort as necessary into the workflow. however, i was not ready to build myself a full-blown auto ripper <a href=\"http:\/\/dwellertech.blogspot.de\/2012\/02\/converting-all-my-amiga-disks.html\" target=\"_blank\" rel=\"noopener\">like this guy did<\/a>. in the end, i counted only around 250 floppy disks that i wanted to backup.<\/p>\n<p>i started to hack together a short bash script that will allow for the following tasks:<\/p>\n<ul>\n<li>take\u00a0a description for the current floppy. at best this was something from the label (if it was still readable) or from the floppy&#8217;s directory listing.<\/li>\n<li>if the user gives no description, the script creates\u00a0a unique one (the current date and time).<\/li>\n<li>maintain and increase a running number for the backup. this comes in handy later on when referencing the label pix (see below)<\/li>\n<li>create a target directory on the local hdd with the information above<\/li>\n<li>copy all the files from the disk to the target directory<\/li>\n<li>create a block image from the floppy and save it in the target directory as well<\/li>\n<li>create a text file with the original directory listing<\/li>\n<li>record all the errors we&#8217;re running into, during the process<\/li>\n<\/ul>\n<p>after reading dweller&#8217;s writeup (in the link above), i saw that he also took a picture of the floppy label. after looking at my disks, i\u00a0decided to go the same way. labels tend to hold additional information like licenses or serial numbers. an automatic match\u00a0between label pic and floppy data seemed pretty hard, so i decided to just snap a photo of each of the labels and match them manually afterwards. i set up a camera on a tripod, looking down on the floppies and slightly ahead in order to minimize flash glare on the labels.<\/p>\n<h2>the workflow<\/h2>\n<ul>\n<li>take the floppies out of the boxes and stack them in front of the camera<\/li>\n<li>take a photo of the topmost floppy<\/li>\n<li>read the label and\/or run a directory listing for the description<\/li>\n<li>put the floppy into the disk drive and start the script with a floppy name\/description on the command line<\/li>\n<li>wait until the script finishes doing its magic, praying the gods of magnetic data storage have been merciful to your digital treasures.<\/li>\n<li>take the disk out and throw it away<\/li>\n<li>GOTO 10<\/li>\n<\/ul>\n<p><a href=\"http:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/DSC_3821-Heap.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-272\" src=\"http:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/DSC_3821-Heap-300x201.jpg\" alt=\"DSC_3821-Heap\" width=\"300\" height=\"201\" srcset=\"https:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/DSC_3821-Heap-300x201.jpg 300w, https:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/DSC_3821-Heap-1024x685.jpg 1024w, https:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/DSC_3821-Heap-448x300.jpg 448w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>pitfalls encountered in the process:<\/p>\n<ul>\n<li>the script requires a fair amount of mounting and unmounting of devices. i therefore run it in an su&#8217;d shell (sudo -i)<\/li>\n<li>some floppies were partially or completely dead. those lead to a non responding or endlessly looping script. In that case &#8230; well ^C and move on.<\/li>\n<li>the hardware is a standard pc floppy drive. i have\u00a0a few amiga and old macintosh \u00a0formatted floppies. the dell was of course not able to read those. i will keep them for now.<\/li>\n<\/ul>\n<p>creating the floppy image through the dd utility requires the floppy to be dismounted. this may be a problem when you run the \u00a0directory listing in order to grasp an idea on the content. the dir list command therefore includes mounting\/dismounting the floppy:<\/p>\n<pre>mount \/media\/floppy0 ; ls -la \/media\/floppy0 ; umount \/media\/floppy0<\/pre>\n<p>&nbsp;<\/p>\n<p>using this workflow and the simple script below i was able to harvest the data from about 200 floppy disks, now hogging a moot 240 megabytes on my nas device. this doesn&#8217;t include the the label pics with an additional 270 mb.<\/p>\n<p><a href=\"http:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/floppyLabels.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-270 aligncenter\" src=\"http:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/floppyLabels-255x300.png\" alt=\"floppyLabels\" width=\"127\" height=\"148\" srcset=\"https:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/floppyLabels-255x300.png 255w, https:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/floppyLabels.png 638w\" sizes=\"auto, (max-width: 127px) 100vw, 127px\" \/><br \/>\n<\/a><\/p>\n<p>so without further ado, here&#8217;s ..<\/p>\n<h2>the script:<\/h2>\n<pre>#!\/bin\/bash\r\n#\r\n#\r\n# Floppy disk copy script\r\n# 2015-08-22 Oliver Huf oli@huf.org\r\n#\r\n\r\n## where the floppy images end up\r\nexport targetroot=\"\/root\/fdstack\"\r\n## where your floppy gets mounted to\r\nexport fdd=\/media\/floppy0\r\n## this is where we store the last number\r\nexport cntf=cnt.txt\r\n\r\n## get, increase and write back running number\r\nexport counter=`cat $cntf`\r\n((counter++))\r\n## leading zeroes on the directory names allows for cleaner sorting later on\r\n## padding to 4 digits. YMMV\r\nexport lz=`printf \"%04d\" $counter`\r\n## write the current number to disk:\r\necho $counter &gt; $cntf\r\n\r\n## in case we forget to add a name on the command line, we want at least a time-stamped directory name:\r\nexport datetime=`date +%Y-%m-%d_%H-%M`\r\nexport dname=$1\r\nif test -z $dname; then\r\n export dname=$datetime\r\nfi\r\n\r\n## adding the padded number to the directory name:\r\ndname=${lz}\"_\"${dname}\r\n## setting up the directories\r\nexport targetdir=$targetroot\/$dname\r\nmkdir -p $targetroot\r\nmkdir -p $targetdir\r\n## the directory listing\r\nexport dirfile=$targetdir\/_FloppyDir.txt\r\n## the error log\r\nexport errfile=$targetdir\/_FloppyERR.txt\r\n\r\n## Say Hello!\r\necho Diskname= $dname\r\n\r\n## aaand they're off..\r\n\r\n## we're mounting the floppy read-only. This saves us from an annoying warning, when the floppy is write-protected.\r\nmount -r $fdd\r\n\r\n## we output the start timestamp and the dir listing \r\necho $datetime &gt; $dirfile\r\necho \"\" &gt;&gt; $dirfile\r\nls -laR $fdd &gt;&gt; $dirfile\r\n\r\n\r\n## while a simple 'cp' would work, I like to use rsync for this\r\n## option -t retains the original timestamp on the files\r\n## all output (stdout as well as stderr) goes to the errfile\r\nrsync -avtz $fdd\/ $targetdir 2&gt;&amp;1 | tee -a $errfile\r\n\r\n## in order to create the floppy image, we need to unmount the floppy...\r\numount $fdd\r\necho creating image...\r\ndd if=\/dev\/fd0 of=$targetdir\/_Floppy${counter}IMG.DD\r\n\r\n## show what we did:\r\nls -laR $targetdir\r\n\r\necho \"Disk $dname successfully copied!\"\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h2>one more thing<\/h2>\n<p>depending on the confidentiality of the data, it&#8217;s never enough to just trash the floppies. someone could try to salvage the data (and nobody wants to see their ex -spouses pics on 4chan &#8230; well &#8230; different story).<\/p>\n<p>in order to make sure the data is unusable you should destroy the floppies: you could snip them apart with some scissors, shoot at them &#8230; again: YMMV<\/p>\n<h2><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-273\" src=\"http:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/schuette-1-300x195.png\" alt=\"schuette-1\" width=\"256\" height=\"170\" \/>recycling<\/h2>\n<p>living in an environmentally aware culture, I wanted to make the best out of it. taking the floppies apart is not too hard. even a nine year-old can do it:<\/p>\n<p><a href=\"http:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/Entsorgung2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-271\" src=\"http:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/Entsorgung2-300x252.png\" alt=\"Entsorgung2\" width=\"300\" height=\"252\" srcset=\"https:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/Entsorgung2-300x252.png 300w, https:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/Entsorgung2-1024x859.png 1024w, https:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/Entsorgung2-357x300.png 357w, https:\/\/huf.org\/wp\/wp-content\/uploads\/2015\/08\/Entsorgung2.png 1817w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>the extraction leaves you with a lot of\u00a0plastics from the casing. some metal from the protective slider, a tiny spring and the center nave and the magnetic film-disc.<\/p>\n<p>the discs can be cut up or fed into a <a href=\"https:\/\/www.intimus.com\" target=\"_blank\" rel=\"noopener\">shredder<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>that&#8217;s all.. let me know\u00a0when you use it or improve on it.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>the other day i stumbled upon those boxes with the 3.5&#8243; floppy disks from \u00a0about 20 years ago (blyme! is it 20 years already?). so i decided to get rid of them. while browsing through the disks with the handwritten &hellip; <a href=\"https:\/\/huf.org\/wp\/?p=260\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[19],"tags":[30,26,29,28,27,31],"class_list":["post-260","post","type-post","status-publish","format-standard","hentry","category-english","tag-backup","tag-datatextmce-internal","tag-floppy","tag-floppy-disk","tag-imgclassaligncenterwp-image-273srchttphuf-orgwpwp-contentuploads201508schuette-1-300x195-pngaltschuette-1width256height170","tag-linux"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/huf.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/huf.org\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/huf.org\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/huf.org\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/huf.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=260"}],"version-history":[{"count":12,"href":"https:\/\/huf.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/260\/revisions"}],"predecessor-version":[{"id":329,"href":"https:\/\/huf.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/260\/revisions\/329"}],"wp:attachment":[{"href":"https:\/\/huf.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/huf.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/huf.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}