Avete presente quella sensazione di sconforto che si prova quando, dopo un aggiornamento, il sistema si blocca su una misera shell di ripristino privandoci del nostro rassicurante login grafico? Incasinare l’avvio di Linux è un’eventualità piuttosto probabile: sovrascrittura del MBR, aggiornamenti di kernel e bootloader, apt-get dist-upgrade… In questi casi spesso non resta che dover recuperare un LiveCD, chrootarsi o addirittura reinstallare tutto. Cosa si può fare per prevenirlo?
Svariati anni fa, ai tempi in cui “la mia vita fin lì, entrava tutta dentro uno Iomega ZIP”, nel tentativo compilare un nuovo kernel per una RedHat riuscii nell’impresa di cancellare tutti i file vmlinuz-* in /boot ad eccezione del mio. Risultato? Sistema bloccato perché mancavano i driver per montare il filesystem. Da allora tengo sempre almeno due kernel funzionanti e testati in /boot.
Per i successivi 22 anni ho dormito sogni tranquilli, tra snapshots di btrfs e kernel di scorta, finché dopo un aggiornamento di grub su Archlinux mi sono ritrovato con un sistema non avviabile. Tutto risolvibile con un LiveCD, arch-chroot e grub-install… ma è stato fastidioso e nel prossimo articolo vedremo qualche accorgimento per salvarci le chiappe il boot anche nei casi più disperati.
Avevo bisogno di un serverino domestico per alcuni esperimenti e per taccagneria passione per il trashware ho deciso di recuperare il mio “vecchio” (2007) EeePC 701 (Celeron M 900MHz, 2GB RAM, 4GB SSD).
Sono consapevole che un Raspberry Pi 4 sarebbe molto più performante, ma quanto ci avrei messo ad ammortizzare l’investimento? L’EeePC 701 consuma:
9,5V – 2,5A max → ~24W di picco
frequenza media della CPU su un uptime di 62 giorni: 113 MHz:32.73%, 225 MHz:21.17%, 338 MHz:15.11%, 450 MHz:10.52%, 563 MHz:6.91%, 675 MHz:2.72%, 788 MHz:3.57%, 900 MHz:7.28%
Una stima verosimile si attesta attorno ad una media di 11W
Tradotto in Euro significa:
11 W × 24 h × 365 giorni = 96.360 Wh ≈ 96 kWh / anno
costo medio dell’elettricità in Italia nel 2025 = 0,30 €/kWh 96 kWh × 0,30 € = ~28,80 € / anno
Un Raspberry Pi 4 Model B invece consuma:
4,5 W × 24 × 365 = 39.420 Wh ≈ 39 kWh / anno
39 kWh × 0,30 € = ~11,70 € / anno
Un Raspberry mi farebbe risparmiare circa 17€ l’anno, ma nuovo costa un centinaio di euro e per rientrare dell’investimento mi occorrerebbero circa 6 anni!
Ma veniamo ai problemi pratici: CPU a 32bit e disco da soli 4GB! Forse non ve ne siete accorti, ma la maggior parte delle distribuzioni ha deprecato il supporto all’architettura Intel 32-bit.
Nell’ordine ho quindi scartato:
Debian 12 (supporta i686 ufficialmente “solo” fino a giugno 2028), da amante del retrocomputing non mi ha entusiasmato la scelta di Debian di eliminare il supporto agli Intel a 32bit. L’installazione di base occupa circa 750MB.
Slackware 15/current: stabile, ma è complicato contenere la dimensione del sistema di base. L’installazione della maggior parte dei pacchetti delle serie a, ap, l ed n occupa circa 1200-1300MB, in oltre per il software extra ci si deve affidare a repository non ufficiali o ai maledetti Slackbuild.
Gentoo: RICOMPILARE UNA DISTRO MODERNA SU UN PC A 900MHZ?!!
Slitaz: progetto leggero ed interessante, ma non ha i pacchetti per il software che mi serve.
Tiny Core: stesso discorso di Slitaz.
Free/Net/OpenBSD: girano tutti senza problemi anche su i586, ma l’installazione minima richiede rispettivamente 1.3GB, 900MB e 1.2GB.
Arch Linux 32: uso Arch da 20 anni, c’era ancora installata una vecchia Arch sull’EeePC quando l’ho riesumato, ma mi sono ricordato di questo fork quando ormai era troppo tardi.
Void Linux: ha il miglio rapporto leggerezza-facilità d’installazione. Scartata perché ha un gestore di pacchetti con una sintassi troppo particolare per i miei gusti. L’installazione minima richiede circa 700MB.
Alpine Linux: non è solo sinonimo di container, può essere installata anche su hardware reale. Usa musl al posto di glibc ed è più leggera e performante di tutte le soluzioni precedenti. Purtroppo il suo installer non permette di gestire manualmente le partizioni, ma dato che l’installazione minima richiede meno di 200 MB ho deciso che valesse la pena effettuare l’installazione tramite chroot (stile Arch).
Installazione Alpine Linux tramite chroot
1. Configurazioni base
setup-hostname -n serverino setup-keymap it it setup-timezone -z Europe/Rome setup-interfaces passwd
2. Preparare il disco per btrfs
apk add btrfs-progs cfdisk… [partizioni GPT con sda1 BIOS BOOT e sda2 Linux] mkfs.btrfs /dev/sda2 modprobe btrfs mount /dev/sda2 /mnt cd /mnt btrfs subvolume create rootvol umount /mnt mount /dev/sda2 -o subvol=rootvol,compress=lzo,sdd /mnt mount –bind /dev /mnt/dev mount –bind /proc /mnt/proc mount –bind /sys /mnt/sys mount -t devpts devpts /mnt/dev/pts -o gid=5,mode=620