[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume]


Capitolo 797.   Adattamento di nanoLinux

Una volta installato nanoLinux, è possibile aggiungere o eliminare dei pacchetti applicativi secondo la procedura prevista dalla distribuzione GNU/Linux Debian. In condizioni normali, è sufficiente il comando nanorc nanolinux make per riprodurre il tutto in un nuovo DVD.

Alle volte potrebbe essere necessario un adattamento più consistente e a tale scopo possono servire le note di questo capitolo.

797.1   Gerarchia doppia

Quando nanoLinux è installato nel disco fisso secondo la procedura normale, oltre alla struttura comune di file e directory, appare la directory /CD-ROOT/, all'interno della quale, tra le altre cose, appare anche la directory HD-ROOT/ (in pratica /CD-ROOT/HD-ROOT/).

La directory /CD-ROOT/ rappresenta la radice del DVD live che si va a creare, mentre la directory /CD-ROOT/HD-ROOT/ deve innestare nuovamente la struttura installata nel disco fisso; pertanto, nel file /etc/fstab devono apparire due righe simili a quelle seguenti:

/dev/hda2  /                 auto  defaults,errors=remount-ro   0   1
/dev/hda2  /CD-ROOT/HD-ROOT  auto  defaults,noauto              0   0

In questo caso la seconda riga non prevede un innesto automatico all'avvio, ma a ciò provvede comunque nanorc nanolinux make.

Quando si avvia il DVD live, la struttura che si vede si compone in particolare della directory /HD-ROOT/, la quale contiene dati non modificabili e serve per copiare il suo contenuto nel disco fisso, quando si va a installare nanoLinux.(1)

Figura 797.2. Confronto tra i file system durante il funzionamento da disco fisso rispetto al funzionamento da DVD.

confronto tra i file system

797.2   Creazione di un DVD

La creazione di un nuovo DVD di nanoLinux si ottiene tramite il comando nanorc nanolinux make. Lo script nanorc (/etc/script/nanorc) è molto lungo e articolato; le istruzioni che riguardano la creazione di un nuovo disco sono racchiuse in una struttura if...elif...fi. In questa struttura si verifica se il comando selezionato è ammissibile, in base al fatto che l'avvio dello script avvenga da disco fisso o da DVD-ROM e al tipo di utente che lo esegue. L'istruzione che introduce la creazione di un nuovo disco è quella seguente:

elif [ "$UID" = "0" ] && [ "$CDROM" = "0" ] \
  \&& [ "$COMMAND" = "nanolinux" ] && [ "$DIRECTIVE" = "make" ] then istruzioni_creazione_disco elif ... ...

Tra le tante cose che avvengono qui dentro, si preparano le directory /CD-ROOT/etc/ e /CD-ROOT/var/, utilizzando anche il contenuto di /CD-ROOT/etc.CD-ROM/ e /CD-ROOT/var.CD-ROM/.

In pratica, la directory /CD-ROOT/etc/ viene ottenuta copiando la stessa struttura contenuta in /etc/, sostituendo ogni file che non sia una directory con un collegamento simbolico che punta alla stessa cosa a partire da HD-ROOT/etc/; in modo analogo procede la preparazione della directory /CD-ROOT/var/. Quindi, viene ricopiato sopra il contenuto di /CD-ROOT/etc/ e di /CD-ROOT/var/, quanto si trova dentro /CD-ROOT/etc.CD-ROM/ e /CD-ROOT/var.CD-ROM/ rispettivamente. Naturalmente, questa è una semplificazione; in pratica, prima di passare alla sovrapposizione delle directory /CD-ROOT/*.CD-ROOT/, lo script fa qualche ritocco indispensabile.

Dovendo intervenire in modo da modificare il contenuto delle directory /etc/ o /var/ durante il funzionamento da DVD, si può agire nelle directory /CD-ROOT/etc.CD-ROM/ e /CD-ROOT/var.CD-ROM/, a meno che si tratti di una situazione che non si risolve con la semplice copia di qualcosa di diverso. Per esempio, se un collegamento simbolico contenuto in una di queste directory può creare problemi, lo si può sostituire con un file vero e proprio, che in fase di funzionamento da DVD risulterebbe modificabile. Quello che non si può fare è rimpiazzare una directory con un file e nemmeno cancellare qualcosa; in queste situazioni estreme, diventa necessario intervenire nello script nanorc.

797.3   Avvio del sistema

nanoLinux prevede alcuni script speciali che entrano in funzione durante la fase di avvio.

797.3.1   Script «/etc/init.d/rc.hardware»

Lo script /etc/init.d/rc.hardware viene eseguito all'avvio (attraverso il collegamento simbolico /etc/rcS.d/S31rc.hardware) per una prima scansione dei componenti installati, allo scopo di caricare i moduli relativi se necessario.

In generale, non dovrebbe essere necessario intervenire in questo script, salvo il caso in cui si vogliano caricare moduli di componenti che non possono essere rilevati automaticamente.

797.3.2   Script «/etc/init.d/rc.config»

Lo script /etc/init.d/rc.config viene eseguito all'avvio (attraverso il collegamento simbolico /etc/rcS.d/S32rc.config) per ripristinare alcuni file di configurazione, secondo quanto richiesto dall'organizzazione di nanoLinux.

In generale, non dovrebbe essere necessario intervenire in questo script, salvo per estendere tale sistema ad altri file di configurazione che non siano stati già previsti.

797.3.3   Script «/etc/init.d/rc.network»

Lo script /etc/init.d/rc.network è completamente diverso da quanto prevede la distribuzione GNU/Linux Debian, perché configura e instrada le interfacce di rete in base all'impostazione di nanoLinux, provvedendo anche alla configurazione automatica di diverse cose se si utilizza il DHCP.

Teoricamente, questo script dovrebbe andare bene così come è già impostato, anche per la gestione del firewall. Eventualmente, all'interno della funzione network_reactivation() si possono cercare alcuni riferimenti se si vogliono apportare delle modifiche:

797.3.4   Script «/etc/init.d/rc.nano»

Lo script /etc/init.d/rc.nano viene eseguito all'avvio del sistema operativo (attraverso il collegamento simbolico /etc/rcS.d/S98rc.nano). Lo scopo di questo script è quello di sistemare alcune cose, che riguardano espressamente nanoLinux. In particolare viene configurata la console per il funzionamento con la codifica UTF-8.

797.3.5   Script «/etc/rc.local»

Dopo lo script /etc/init.d/rc.nano viene eseguito lo script /etc/rc.local (tramite una chiamata contenuta in /etc/init.d/rc.local). Questo script viene svuotato alla creazione di un nuovo DVD di nanoLinux ed è pensato soprattutto per la personalizzazione di un gruppo di elaboratori sincronizzati tra di loro.

In generale, quello che si fa nello script /etc/rc.local si potrebbe fare nello stesso modo alla fine di /etc/init.d/rc.nano, ma può risultare più comodo tenere intatto /etc/init.d/rc.nano e intervenire solo in /etc/rc.local.

797.3.6   Script «/etc/init.d/rc.last»

Alla fine, o quasi, della procedura di avvio, viene eseguito lo script /etc/init.d/rc.last, il quale serve a contenere istruzioni che, per qualche ragione, non possono essere impartite prima, all'interno di /etc/init.d/rc.nano.

797.3.7   Script «/etc/init.d/rc.CD-ROM»

Lo script /etc/init.d/rc.CD-ROM viene eseguito all'avvio del sistema operativo (attraverso il collegamento simbolico /etc/rcS.d/S19rc.CD-ROM), quando il sistema funziona da DVD, o comunque da un file system in sola lettura. Lo scopo di questo script è quello di predisporre e attivare le directory come /etc/ e /var/, che richiedono di essere modificabili durante il funzionamento; inoltre si occupa di attivare la memoria di scambio (per l'estensione della memoria virtuale), se nei dischi locali può individuare una partizione già predisposta per questo scopo.

Per fare in modo che questo script si metta in funzione soltanto quando il sistema operativo è avviato da DVD, quando si «guarda» il file system installato nel disco fisso, si trova nella directory /CD-ROOT/etc.CD-ROM/init.d/, così come il collegamento simbolico si trova effettivamente in /CD-ROOT/etc.CD-ROM/rcS.d/.

Teoricamente non ci dovrebbe essere alcun bisogno di modificare questo script; tuttavia il procedimento può servire da esempio per crearne altri specifici, da collocare sempre in /CD-ROOT/etc.CD-ROM/init.d/, o anche direttamente in /CD-ROOT/etc.CD-ROM/rcS.d/, da eseguire in momenti differenti.

797.4   Configurazione predefinita di nanoLinux

Lo script /etc/init.d/rc.config di nanoLinux rimpiazza alcuni file di configurazione con altri che hanno generalmente l'estensione .nanoLinux. La tabella successiva riepiloga alcuni di questi file.

Tabella 797.6. Alcuni file di configurazione predefiniti di nanoLinux, secondo lo script /etc/init.d/rc.config.

File originale Configurazione predefinita Descrizione
/etc/oops/oops.cfg /etc/oops/oops.cfg.nanoLinux Configurazione del servizio proxy HTTP.
/etc/dansguardian/* /etc/dansguardian/*.nanoLinux Alcuni file della configurazione del filtro dei contenuti, associato al proxy HTTP.
/etc/Muttrc /etc/Muttrc.nanoLinux Configurazione del programma Mutt.
/etc/X11/fvwm/system.fvwm2rc /etc/X11/fvwm/system.fvwm2rc.nanoLinux Si tratta della configurazione predefinita del menù di Fvwm, per nanoLinux.
/etc/X11/xinit/xinitrc /etc/X11/xinit/xinitrc.nanoLinux Si tratta della configurazione predefinita dello script usato per avviare il gestore di finestre con qualcosa sullo sfondo.

Molti altri file con estensione .nanoLinux servono a conservare una copia della configurazione standard di nanoLinux, ma non vengono rimpiazzati automaticamente; inoltre, la configurazione di Exim viene comunque rigenerata automaticamente in base alle informazioni contenute in altri file.

797.5   Aggiornamento dei pacchetti installati

Una volta installato nanoLinux, l'aggiornamento o l'aggiunta di pacchetti può avvenire con gli strumenti consueti della distribuzione GNU/Linux Debian. In pratica conviene usare apt-get, come spiegato nel capitolo 58.

Dal momento che si presume nanoLinux venga installato prevalentemente a scuola, è da considerare che la rete tipica che si incontra in quel contesto obbliga l'attraversamento di un proxy HTTP, che spesso è in grado di consentire l'accesso esclusivamente da navigatori funzionanti su macchine MS-Windows. Teoricamente, apt-get può essere configurato per attraversare un proxy, come si può anche vedere negli esempi che appaiono nel file /usr/share/doc/apt/examples/configure-index.gz, ma non è detto che il proxy della propria realtà consenta effettivamente questo approccio.

Per risolvere il problema occorre procurarsi i pacchetti in modi differenti, per esempio usando una macchina (MS-Windows) che consenta l'attraversamento, per accedere direttamente al sito <http://www.debian.org/>, da dove si può raggiungere la pagina di ricerca dei pacchetti (<http://www.debian.org/distrib/packages>). Una volta prelevati i pacchetti e copiati in qualche modo nell'elaboratore che si vuole aggiornare, si può tentare di usare dpkg con l'opzione -i:

dpkg -i file_deb...[Invio]

Purtroppo si tratta di un metodo brutale di installazione che rischia di bloccarsi per colpa di dipendenze che non sono soddisfatte; ma dagli errori che si ottengono si possono determinare quali pacchetti si devono ancora prelevare.

Nel capitolo 63 vengono descritti vari accorgimenti per la gestione dei pacchetti Debian; in particolare viene mostrato un metodo per realizzare in proprio la struttura di una distribuzione (attraverso lo script make-packages), in modo da poter usare poi apt-get localmente. Anche con l'uso di apt-get rimane il problema delle dipendenze non soddisfatte, ma in questo modo si riesce almeno a realizzare qualcosa di generalizzato, che può risiedere facilmente in un disco esterno USB, o anche in un DVD masterizzato, per aggiornare facilmente le macchine che si vogliono usare.

797.6   Kernel

Il kernel di nanoLinux è molto simile a quello standard della distribuzione Debian, con la differenza più evidente che mancano del tutto le funzionalità ritenute inutili e ci sono più componenti incorporate direttamente nella parte principale (nel senso che non fanno parte di moduli separati). Vengono annotate nella tabella successiva alcune scelte fatte nella configurazione e le motivazioni relative.

Modulo Voce di configurazione Descrizione
md_mod
CONFIG_MD=y
Solo se questa funzione è incorporata nel file principale del kernel è possibile ottenere la scansione automatica degli insiemi RAID di dischi, con il comando mdadm --auto-detect.
cramfs
CONFIG_CRAMFS=y
Il file system del disco RAM iniziale è di tipo Cramfs e in quella fase la sua gestione non può trovarsi separata in un modulo.
CONFIG_USB_SUSPEND=n
Utilizzando uno scanner USB Canon LiDE, avendo attivata la funzione CONFIG_USB_SUSPEND, si ottengono solo scansioni completamente nere.

1) Va ricordato che la struttura del file system del sistema avviato da un DVD live è la stessa per qualunque altro contesto in cui il file system va usato in sola lettura.


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome adattamento_di_nanolinux.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory