Piero V.

Un tuffo nel passato

Devo ammettere di essere un po’ un accumulatore.

In tanti anni, non ho mai buttato via i miei computer vecchi, pur sapendo che realisticamente non li riaccenderò mai. Soprattutto quelli degli anni ‘90, che sono potenziali bombe a causa della piaga dei condensatori. Ma alla fine ho deciso di buttare via quelli che un tempo erano stati protagonisti della categoria muletto di questo sito.

Prima, però, ho deciso di creare un’immagine dei loro dischi. E, dato che c’ero, ho deciso di avviarle con Qemu per vedere cosa avevo lasciato dentro.

Il primo computer era dotato di un Pentium MMX. Probabilmente risaliva a circa il 1996, ma non sono troppo sicuro perché mi è stato donato da una conoscente di famiglia, che altrimenti lo avrebbe buttato. Se ben ricordo, aveva 64MB di RAM, che io avevo portato a 128MB (di più non supportava). Mi sembra che proprio per comprarla fossi andato per la prima volta alla fiera dell’elettronica di Pordenone. E quella volta avevo comprato anche la scheda wireless Edimax EW-7128g, che mi aveva fatto tribolare non poco.

Invece il disco era da 1,6GB. Purtroppo, quando ho provato ad accedervi, ho avuto diversi errori di input/output, quindi ho dovuto creare l’immagine con ddrescue.

Diverse modifiche risalgono a settembre 2009, il periodo in cui avevo appunto scritto diversi articoli. Poi devo non averlo più usato, probabilmente per le limitatissime risorse. Inoltre, un paio di mesi dopo sostituimmo il computer di famiglia. Quindi quello vecchio andò a me, e il mio computer diventò il nuovo “muletto”.

Per cercare di ottenere almeno un processore simile, ho specificato questa riga di comando a qemu:

qemu-system-i386 -m 128M -cpu pentium,mmx -hda disco.qcow2

Non c’è modo di specificare la frequenza, quindi nel mio caso mi sono trovato con un bel Pentium MMX a 4,5GHz 😂️.

All’avvio, ho subito visto che c’era Debian, con kernel Linux 2.6.26-2-486 e il bootloader GRUB 1.97.

Ma mi sono incagliato subito: avevo effettuato un’installazione di Debian per esperti e una delle domande aggiuntive è se si vuole creare un initrd generico oppure ottimizzato solo per l’hardware in uso. Io avevo scelto quest’ultima opzione, perciò mi mancavano i moduli per il controller IDE di qemu. Me ne sono accorto mettendo un rootdelay basso e spulciando in giro una volta entrato nella busybox di initrd.

La soluzione è stata semplice: copiare più moduli nell’initrd. All’inizio avevo copiato solo i moduli IDE, ma poi si era fermato a

Waiting for /dev to be fully populated...

quindi ho copiato tutti i moduli del kernel.

Per farlo ho montato il filesystem nella macchina host. Il tool di GNOME è molto comodo, perché gestisce automaticamente le immagini con tabelle delle partizioni. Altrimenti, potete usare kpartx da riga di comando, o metodi simili. Poi ho seguito questa guida per creare un nuovo initrd:

cp .../boot/initrd.img-2.6.26-2-486 initrd.img.gz
gunzip -k initrd.img.gz
fakeroot # Fa in modo che per i comandi successivi sembri che si stia usando root, non sono sicuro sia necessario
mkdir cpio
cd cpio
cpio -id < ../initrd.img
cp -r .../lib/modules/2.6.26-2-486 lib/modules/
find . | cpio --create --format='newc' > ../newinitrd
exit # da fakeroot
gzip newinitrd

Non ho voluto modificare l’immagine disco, perché volevo che il sistema partisse come se non fosse mai stato toccato da anni. Quindi ho creato una partizione FAT al volo:

dd if=/dev/zero of=boot.img bs=1M count=200
/usr/sbin/mkfs.vfat boot.img
gnome-disk-image-mounter --writable boot.img

Dpodiché ho usato la GUI per popolarla.

GRUB può usare il volume FAT senza che ci sia una tabella delle partizioni. Siccome non mi interessava abilitare la scrittura di questa nuova immagine, l’ho passata senza convertirla come hdb, anziché usare -drive format=raw:

qemu-system-i386 -m 128M -cpu pentium,mmx -hda disco.qcow2 -hdb boot.img

Sulla console di GRUB poi ho usato questi comandi:

set root=(hd1)
linux /vmlinuz root=/dev/hda1 ro
initrd /newinitrd.gz
[Ctrl-X]

Con questo trabotrucco sono riuscito ad arrivare al login. Mi sono ricordato le credenziali (almeno del mio utente) e quindi ho cominciato a spulciare in giro.

Ho subito notato che ero in Debian squeeze/sid, a quei tempi non davo abbastanza valore alla stable 😅️. Ero partito da lenny.

Poi ho guardato i vari servizi che avevo installato: il classico apache2 più tutta una serie di servizi per creare un server mail. Mi ricordo che volevo proprio averne uno. Forse a quei tempi non era necessario avere un relay host, o magari mi bastava ricevere le email.

Tra l’altro nella shell avevo avuto la notifica di aver ricevuto delle email. Sono abbastanza sicuro che all’epoca non avessi ben capito gli utenti di sistema e ricordo che volevo configurare gli utenti su un database MySQL. Forse pensavo che non stesse funzionando niente proprio perché non mi ero accorto che in realtà la posta fosse stata recapitata al mio utente di sistema in /var/mail/piero 😅️.

Ma sono riuscito a fare ben di peggio: nella mia home avevo creato uno script cron.sh, in cui c’era un bel commento che diceva che mi aspettavo che quello script fosse eseguito da root (nonostante lo fosse rimasto di proprietà dell’utente 🙈️):

## Script che verrà eseguito da cron
#  Solo per super-user
apt-get update > /dev/null
apt-get upgrade -y > /dev/null
apt-get clean > /dev/null
freshclam > /dev/null

Perlomeno non avevo messo anche dist-upgrade su sid 🙈️. O magari non avevo ancora imparato a usarlo? Stando allo User-Agent delle email, all’epoca usavo Fedora 11 nel mio computer, non ero ancora passato a Debian:

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.1) Gecko/20090814 Fedora/3.0-2.6.b3.fc11 Thunderbird/3.0b3

Per completare l’epic fail, non lo avevo reso lo script eseguibile, quindi avevo pure ricevuto una bella email che mi diceva che il cronjob era fallito:

[...]
Date: Sat, 12 Sep 2009 19:29:01 +0200 (CEST)

/bin/sh: /home/piero/bin/cron.sh: Permission denied

e infatti, ls .../home/piero/bin:

-rw-r--r-- 1 piero piero 167  9 set  2009 cron.sh

Nel server web c’erano solo roundcube, pfadmin e un phpinfo. A quei tempi avevo già un sito, ma probabilmente mi interessava di più che rimanesse sempre online, che hostarlo da solo con la schifosa ADSL che avevo.

Sono andato a rivedere la categoria muletto, così mi sono accorto che avevo installato anche un server FTP. Nell’articolo menziono sempre proftpd, ma nel sistema c’è pureftpd. Non ho assolutamente idea del motivo.

Ricordo che in passato avevo avuto anche Ubuntu sullo stesso computer (in tempi che precedono il sito). Quei sistemi però sono andati perduti, ma probabilmente erano davvero i miei primi tentativi di “creare un server Linux”, magari solo con OpenSSH o poco più.

Dopo aver scritto quella serie di articoli, penso che questo computer sia rimasto spento per sempre.

L’altro computer era dotato di un Pentium III Katmai (la prima variante) a 450MHz, 320MB di RAM (64MB in origine) e una configurazione di dischi… particolare. Inizialmente aveva solo un Quantum Fireball da meno di 10GB. Alla fiera dell’elettronica di Pordenone avevo trovato un Maxtor da 80GB, che però non veniva riconosciuto dal BIOS. Il sistema non superava il POST, a meno che non disabilitassi quel disco. Però Linux lo riconosceva lo stesso, quindi mi era bastato mettere /boot nel disco piccolo e il resto del sistema nel disco più grande.

Ho usato quel computer diversi anni, imparando tanto tanto. Cercare di usare quel computer nel 2006 o successivamente è stata un’ottima motivazione per passare a Linux.

Pur essendo vecchio, lavorarci era più facile rispetto al computer precedente (era persino ATX e non AT 🙂️), quindi l’installazione di Debian era più regolare ed è partita subito nella VM.

Sono stato subito salutato da Grub 1.98+20100804 e kernel 2.6.32-5-686. Appena avviato, il sistema ha voluto fare un fsck, perché erano ben 4220 giorni che non ne faceva uno! Quindi stiamo parlando di agosto 2012 come ultimo avvio. Ancora una volta il filesystem era ext3, nonostante ext4 fosse stabile da anni.

Questa volta avevo tenuto la stable, anche se sid era comunque abilitato. Secondo una guida che avevo scritto più di 12 anni fa, avevo fatto pinning per poter installare noip2.

Invece non ho trovato nessun tentativo di server di posta e come server web avevo usato Nginx. Pensavo di essere passato per la prima volta a Nginx quando mi sono trasferito su un VPS nel 2014, quindi circa 3 anni dopo, ma a quanto pare mi sbagliavo!

Tuttavia, ancora una volta non c’era nessun contenuto particolare servito dal web server, solo un phpinfo.

A parte questo, avevo installato pyLoad, ma avevo cancellato tutti i download. Magari potrei ritrovarli con un qualche tool di analisi forense.

Poi non c’era nient’altro, ma avevo appunto parlato di una versione leggera all’epoca.

Rileggendo quegli articoli ho tutta una serie di sentimenti diversi e talvolta contrastanti, dalla tenerezza alla vergogna. Però alla fine prevalgono la sensazioni positive, perché questi articoli mi consentono di rivivere ciò che pensavo 😄️.