• Proviamo Gnu/Hurd su qemu

    by  • settembre 4, 2007 • Altro informatica, Debian, Distribuzioni, Etica, Hurd, Open source/Free software, Smanettamenti, Software • 0 Comments • 2.004 visite

    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! :D

    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!! :D

    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

    L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *