Proviamo Gnu/Hurd su qemu

Qualche settimana fa mi sono imbattuto in un howto un pò scarno e non del tutto aggiornato che spiegava come installare Gnu/Hurd in un’immagine virtuale con qemu. È stata un’occasione per imparare un paio di cose riguardo questo software di virtualizzazione e di scrivere un articolo. Se non siete pratici di qemu consiglio prima di leggere quell’articolo per capire un pò meglio quello che faremo.

INFO GNU/HURD

Da gnu.org

GNU Hurd sostituisce, all’interno del progetto GNU, il kernel Unix. Hurd è un insieme di server che vengono eseguiti sul microkernel Mach per implementare file system, protocolli di rete, controlli di accesso ai file, e altre caratteristiche che sono implementate nel kernel Unix o in altri kernel simili (come Linux).

Il nome è tutto un programma, è un acronimo ricorsivo di un acronimo ricorsivo e sta per: “Hird of Unix-Replacing Daemons’. Mentre, “Hird” significa “Hurd of Interfaces Representing Depth”.

In sostanza Hurd è un kernel, Gnu/Hurd è il nostro Gnu/Linux ma senza Linux. Hurd può dare l’idea di essere un progetto portato avanti dalla Free Software Foundation per un semplice motivo etico ideologico. Probabilmente senza Linus e il suo kernel il progetto Gnu ci avrebbe messo molto più tempo per decollare, ma c’è chi pensa che sarebbe stato molto meglio.

A noi ce ne frega relativamente…le motivazioni ideologiche (seppur forti) le lascio a voi…pensiamo a farlo funzionare per ora! 😀

Il nostro obbiettivo sarò ottenere questo 😉

INSTALLAZIONE

Abbiamo bisogno di:

  • Qemu + kqemu (oppure kvm)
  • 2GB di spazio libero
  • L’iso di Debian/Hurd (si useremo debian! Attualmente l’ultima versione disponibile è la k14)
  • Un’immagine floppy di Grub
  • La nostraGnu/Linux box funzionante (non sia mai che qualche winzozziano pensi che Hurd sia un nuovo antivirus che gli salva il sedere…o chissà quale altra diavoleria) 😉

Procediamo:

1) Prima creiamo l’immagine con qemu-img

qemu-img create hurd.img 2G

2) Ora installiamo il sistema con l’installer classico di debian.

Avviamo qemu così:

qemu -boot d -hda hurd.img -cdrom debian-K10-hurd-i386-CD1.iso

Ci troveremo davanti all’installer

Ora facciamo i punti 1 2 4 6 7:

  • Configuriamo la tastiera (anche se sembra inutile purtroppo).
  • Partizioniamo l’hard disk in un’unica partizioneprimaria da 2GB.
  • Inizializziamo una partizione Gnu/Hurd.
  • Installiamo il sistema base, per ora limitiamoci a usare il cd come fonte dei pacchetti. (ci può mettere un bel pò)
  • Riavviamo e chiudiamo qemu con Ctrl-C nel terminale.

3) Configuriamo grub

Ora montiamo l’immagine del floppy di grub per poterla modificare:

mkdir grub
mount -o loop grub-0.97-i386-pc.ext2fs grub
nano grub/boot/grub/menu.lst

Nel file menu.lst di grub mettiamo questo (scarica il file e rinominalo, wordpress storpia alcuni caratteri meglio non rischiare sennò non parte niente)

Smontiamo l’immagine di grub prima di far ripartire qemu

4)Avviamo GNU/Hurd per la prima volta

qemu -boot a -hda hurd.img -fda grub-0.97-i386-pc.ext2fs -M isapc


Prima schermata di grub con la scritta GNU/Hurd…la soddisfazione inizia a salire.

Prima di poter dire di essere riusciti ad installare Hurd bisogna eseguire 2 volte uno script che troviamo appena effettuto il boot.Nota: la tastiera sarà configurata come tastiera americana (immagino) bisognerà arrangiarsi con alcuni simboli ma non è impossibile.

./native-install
reboot
./native-install


Se fino ad ora vi eravate spaventati, ora c’è qualcosa di famigliare 😉

Dopo il secondo native-install chiudete hurd e qemu.

5) Configuriamo la console

Bisogna fare un paio di accorgimenti per far partire di default la console vera e propria.

Rimontiamo l’immagine di grub e apriamo con nano il file menu.lst; la terza riga la trasformiamo così:

kernel (hd0,0)/boot/gnumach.gz root=device:hd0s1 -s

In pratica aggiungiamo “-s” alla fine.

Smontiamol’immagine di grub e riavviamo qemu

Finito il boot digitiamo:

mount / -o remount,rw
export TERM=mach
nano /etc/default/hurd-console

Cambiamo il valore di ENABLE da false in true

mount / -o remount,ro

Chiudiamo Hurd e qemu, ora rimontiamo l’immagine di grub e togliamo il “-s” da dove l’avevamo messo prima.

Riavviamo qemu ma questa volta togliamo il “-M isapc” finale:

qemu -boot a -hda hurd.img -fda grub-0.97-i386-pc.ext2fs

Per loggarsi diamo un “login root” 😉

Ora abbiamo GNU/Hurd installato configurato e funzionante, si spera 😉

6) Configuriamo la rete e aggiorniamo il sistema

Per configurare la rete diamo questi comandi (i valori si riferiscono alla scheda di rete che emula qemu)

settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 -a 10.0.2.16 -g 10.0.2.2 -m 255.255.0.0
nameserver 10.0.2.3
nano /etc/apt/sources.list

Nel sources.list mettiamo questi repository

deb http://ftp.gnuab.org/debian unreleased main
deb http://ftp.de.debian.org/debian unstable main

E via con apt-get update e dist-upgrade!! 😀

A questo punto io ho avuto parecchi problemi con i pacchetti, non mi metto a scrivere come ho risolto perchè alla fine è semplice ma soprattutto probabilmente è un problema momentaneo. Ora avete Gnu/Hurd installato funzionante e aggiornato, io ho installato anche il server grafico xorg e un paio di DE minori (da quello che so mancano alcuni porting quindi kde/gnome ce li sognamo) però non sono mai andato oltre al login grafico. È comunque interessante pensare che alla fin fine pur essendo un kernel diverso ci si senta comunque a casa, questo grazie a tutti i tool Gnu che abbiamo a disposizione ma che a volte diamo per scontato pensando solo al kernel Linux

Auguri 😉

Ah…la lista italiana di Hurd hurd-it.sourceforge.net

Lascia un commento