Mikko Uuksulaisen kotisivu

26. elokuuta 2026

Korppujen säilöntä

Olen sen verran muinainen, että hiljattain kaappeja siivotessa tuli vastaan hyvä kasa korppuja (tai levykkeitä, diskettejä, floppyjä, rakkaalla lapsella on monta nimeä). Milleniumin jälkeen syntyneille tiedoksi, että kyseessä on vuosikymmeniä eri fyysisessä koossa myyty magneettinen tiedontallennusväline ajalta ennen muistitikkuja ja pilvipalveluita. Hallussani olevat korput ovat loppukauden 3½ tuuman versioita eli omassa tapauksessani varustettuna joko 1440 tai 2880 kilotavun muistilla.

Korppuja oli yhteensä noin 80. Kuvassa oikealla myös nykylapsille tuntematon korppukotelo.

Korppujen kulta-aikaa itselleni olivat lapsuudessa vietetyt vuodet Windows 95:n ja 98:n parissa vuosituhannen vaiheen kieppeiltä. Muistan, että korppuja tuli silloin käytettyä tiedonsiirtoon eri tietokoneiden välillä sekä jonkinlaisena viattomana varmuuskopiovarastona. Onpahan joukossa toki kokeellisempiakin käyttöjä, kuten esimerkiksi oma yhden kappaleen "pelijulkaisuni" sekä pelkkiin nollakokoisiin tiedostoihin perustuva keräilypelini (taisin tuohon aikaan katsoa liikaa Digimonia).

Epäilen vahvasti, että näilläkään korpuilla ei juurikaan sellaista tietoa ole, jota en olisi jo joskus ottanut talteen vanhojen tietokoneiden kovalevyiltä, mutta magneettisen median katoavaisuuden vuoksi nyt on viimeistään hyvä hetki käydä korput läpi ja tehdä niistä asialliset kopiot.

Suunnitelma

Korppuja on kaikkinaan noin 80 kappaletta, ja halusin käydä niistä jokaisen läpi käyttäen USB-liitännäistä korppuasemaa. Koska en halunnut korppuja nostalgiamielessä hävittää operaation jälkeenkään, ajattelin, että merkkaisin korput jotenkin niin, että voisin tehdä niistä katalogin ja tietäisin tarkasti, mikä levykuva kuuluu mihinkin korppuun. Itseni tuntien tämä vähentää myös tarvetta käydä korppuja jälleen kerran läpi, kun olen kerta kaikkiaan unohtanut, mistäs minulla nyt onkaan jo kopiot (ja rakas lukija, saatat jo arvata, että tämä ei suinkaan ollut ensimmäinen kerta, kun olen näitä samoja korppuja kopioinut).

Tärkeimmät työkalut eli USB-korppuasema sekä viivakoodinlukija.

Sain idean liimata jokaiseen korppuun viivakoodin, johon olisi enkoodattuna yksilöivä tunnus. Tämä viivakoodi luettaisiin ennen jokaista taltiointia. Taltiointi tapahtuisi tietokoneella yksinkertaisella skriptillä, joka mahdollistaisi korppujen taltioinnin sarjatyönä ja mahdollisimman vaivattomasti.

Viivakoodit

Viivakoodeista minulla on paljon kokemusta jo aikaisemman retroharrastuksen parista, ja tiesin jo ennakkoon, miten niitä generoidaan helposti massoittain. Omistan myös käsikäyttöisen USB-liitännäisen viivakoodinlukijan, joka näyttäytyy tietokoneelle tarvittaessa näppäimistönä simuloiden näppäinpainalluksia. Selvitin, että lukija lukee yleisiä yksiulotteisia (1D) viivakoodeja, ja päädyin valitsemaan Code 128 -tyypin lähinnä sen tiheyden vuoksi.

Seuraavaksi tuli selvittää, kykeneekö tulostimeni tulostamaan näin tarkkoja kuvia ja miten pieniä viivakoodeja lukija ylipäänsä pystyy lukemaan. Generoin viivakoodeja mainiolla Zint-työkalulla, joka käytännössä pystyy luomaan minkä tyyppisiä viivakoodeja tahansa. Haarukoin kokoa käyttäen -scale-parametria ja tulostin muutaman koevedoksen lasertulostimellani.

zint -b CODE128 --bind -d "123456789" -o barcode.png -scale 1.5

Päädyin kuitenkin lopulta käyttämään skaalaamatonta versiota, jonka tulostimeni tulosti ja lukijani luki varsin ongelmitta. Annoin korpuille nimeksi KORPPUXX, jossa XX oli juokseva numero, ja generoin näitä sata kappaletta.

#!/bin/bash
for i in {0..100}
do
  zint -b CODE128 \
       --bind \
       -d "KORPPU${i}" \
       -o "barcode_${i}.png" \
       -w 10
done

Laatikon kätköistä löytyi sopivasti myös tarrapaperia, joten aseteltuani kuvat nättiin nippuun Gimpissä tulostin tarrat. Tämän jälkeen leikkasin ja liimasin tarroja korppujen taakse noin tunnin ajan.

Liimasin viivakooditarroja korppujen taakse, jossa niille oli hyvin tilaa ja ne eivät sotkeneet etikettiä.

Softaratkaisu

Promptailin Claude Codella Python-skriptin palvelemaan tarkoitustani. Prompti on aika ohut, koska ajan agenttia kansiossa, johon olen alustanut tekoälylle jo valmiiksi itseäni miellyttävän rikkaan maaperän erityisesti erilaisille pienille skripteille.

I need a tool to batch process floppy disks.

Prerequisites:
USB floppy drive is connected to the Linux machine and appears as /dev/sde.

Process:
- Script will ask for floppy ID; I will provide it by typing the ID
- I insert the floppy disk, script tries to mount the disk
- If mount succeeds, see if there are any files; if so, continue
- If mount fails, write the ID and failure status to the log file
- Unmount the drive; if there were files, continue
- Make a copy with "dd" to the same directory as the log file; name the file with the ID that was given
- Write the final status to the log file.
- The process will start again unless exited

The script can run with root; I think the copying does not work otherwise. Make sure the script is resilient to errors and does not crash easily.

Käytännössä skripti kyselee tunnusta, jonka pystyn toimittamaan skannaamalla korpun viivakoodin. Tämän jälkeen työnnän korpun asemaan, ja skripti aloittaa sen kopioinnin käyttäen dd-työkalua. Iteroin skriptiä jonkin verran matkan varrella, kun tajusin, että pystyn helpostikin automatisoimaan korpun syöttämisen ja poistamisen havainnoinnin, ja päädyin lopulta myös käyttämään ddrescue-työkalua kopiointiin, koska näin lopputulos todennäköisesti on eheämpi ja antaa näin paremman mahdollisuuden sille, että kopiointi ei riko korpun tiedostojärjestelmää.

Jos haluat ihmetellä itse skriptiä, löytyy se täältä. Koodi on vapaasti MIT-lisensoidusti jatkojalostettavissa omaan käyttöön.

Lopputulos

Kun pohjatyöt oli huolella tehty, varsinainen kopiointiprosessi oli varsin helppo homma. Kopiointi oli paikoin aika hidasta, varsinkin jo elämänsä ehtoopuolella olevien korppujen kanssa, joissa kopioinnin uudelleenyrittämiseen kului aikaa. Yhteensä puhutaan kuitenkin jokusen tunnin työstä, jonka aikana pystyi odotellessa helposti tekemään muutakin.

Jotain sanoinkuvaamattoman tyydyttävää tässä taltiointiprosessissa on. Uskoisin, että sama prosessi skaalautuisi helposti, vaikka korppuja olisi ollut paljon enemmänkin. Ehkä prosessin henki välittyy seuraavan demon kautta myös ruudun toiselle puolelle.

Osaa korpuista alkaa jo ikä painaa, mutta suurimmasta osasta oli silti mahdollista saada tärkeimmät tiedot talteen. Korpuilla oli esimerkiksi tekstiedostoja, joissa tavun puuttuminen sieltä tai täältä ei ole niin vaarallista. Sattui joukkoon jokunen DriveSpace-pakattu korppukin, mutta nämä aukesivat PCem-emulaattoriin mounttaamalla Windows 98 SE:ssä. Yleisesti ottaen olin varsin tyytyväinen siihen, miten monen korpun tiedot sain vielä pelastettua.

Seuraavasta grafiikasta saa käsityksen siitä, missä kunnossa omat noin 20–40 vuotta vanhat korput olivat. Prosentit kertovat, kuinka paljon ddrescue palautti onnistumisprosentiksi kopioinnin jälkeen.

Osissa korppuja alkoi jo ikä painaa, mutta suurimmasta osasta oli silti mahdollista saada tärkeimmät tiedot talteen.

Jos tästä jotain oppia kannattaa jakaa eteenpäin, niin se varmasti on, että nyt jos koskaan on aika taltioida ne vähänkin tärkeät tiedostot korpuilta ja muilta magneettisilta medioilta, koska joka päivä niiden kopioiminen käy hankalammaksi magneettisen median katoavaisuuden vuoksi. Historian säilöminen on tärkeää, ja olen siinä mielessä ollut kaukaa viisas, että sitä on tullut tehtyä aivan pienestä pitäen muodossa tai toisessa. Nämäkin nyt kopioidut tiedostot päätyvät osaksi varmuuskopioiden ketjua, joka varmistaa, että näitä voi Mikko-pappa joskus vanhoilla päivilläänkin vielä nostalgisoida.