[precedente] StormLinux - Copertina - Indice [successivo]

Articolo


Installazione di Linux da server NFS

Sommario

1. Introduzione

Lo scopo del presente documento è dare delle indicazioni sull'installazione delle distribuzioni Debian GNU/Linux 2.1, Red Hat Linux 6.0 e SuSE Linux 6.1 da un server NFS; tale modalità di installazione può risultare particolarmente utile quando si vuole utilizzare un vecchio computer sprovvisto di lettore CDRom ma collegato in rete grazie ad una scheda di rete Ethernet (negli esempi sono state prese in considerazione le schede NE2000 compatibili) o per mezzo della porta parallela (connessione PLIP).

Questo documento non vuole essere una guida esaustiva sull'installazione delle distribuzioni di cui sopra ma illustrare gli aspetti specifici dell'installazione da server NFS spesso ignorati nella documentazione ufficiale contenuta nei CDRom di installazione; tale documentazione resta comunque di fondamentale importanza e ne consiglio la lettura prima di affrontare l'installazione in special modo se si è (come me ;-)) alle prime armi con questo sistema operativo.

2. Requisiti

Per l'installazione è necessario disporre di un server NFS (un computer che metterà a disposizione del client il contenuto del CDRom di installazione). Il server dovrà essere dotato di: Per quanto riguarda il client (il computer sul quale si vuole installare Linux) oltre ai requisiti minimi indicati nella documentazione delle varie distribuzioni è richiesta una scheda di rete Ethernet o una porta parallela correttamente collegate.

Requisito fondamentale è infine una grossa dose di pazienza :-).

3. Configurazione del server NFS

In questa sezione vengono descritte le operazione necessarie alla configurazione del server NFS.

3.1 Verifica del kernel ed eventuale ricompilazione

Occorre innanzitutto accertarsi che il kernel utilizzato supporti la connessione in rete spostandosi nella directory contenente i sorgenti del kernel (solitamente /usr/src/linux) e digitando:

make menuconfig (o make xconfig se operate in ambiente X Window)

Si deve quindi verificare che le seguenti voci siano abilitate:


Loadable module support
        Enable loadable module support
        Kernel module loader

General setup
        Parallel port support      #necessario per collegamento PLIP 
        PC-style hardware          #necessario per collegamento PLIP

Networking options
        TCP/IP networking

Network device support 
        Network device support
        Ethernet (10 or 100Mbit)     #Il supporto per la vostra
                                     #scheda di rete

oppure, in alternativa: 
        PLIP (parallel port) support

Nel caso in cui almeno una di tali opzioni non fosse abilitata sarà necessario ricompilare ed installare il kernel ed i moduli; da notare il fatto che in questo documento è stato ipotizzato che il supporto della scheda di rete e del collegamento PLIP siano stati compilati come moduli.

Se avete una scheda NE2000 compatibile può essere necessario inserire nel file /etc/conf.modules la linea:

options ne io=0x300 irq=5

(indicare dopo io ed irq rispettivamente l'indirizzo I/O e l'interrupt utilizzati dalla scheda di rete).

Se viene invece utilizzato un collegamento PLIP dovreste inserire nel file /etc/conf.modules le seguenti righe:


alias parport_lowlevel parport_pc
options partport_pc io=0x378 irq=7

(indicare dopo io ed irq rispettivamente l'indirizzo I/O e l'interrupt utilizzati dalla porta parallela).

Sempre nel file /etc/conf.modules è possibile inserire le righe:


alias net-pf-4 off
alias net-pf-5 off

al fine di evitare la visualizzazione di alcuni messaggi di errore all'avvio della macchina nel caso non si utilizzassero i moduli ipx e appletalk.

3.2 Configurazione della rete

Nel presente documento assegneremo ai due computer i seguenti nomi ed indirizzi IP:

Descrizione    Nome      Indirizzo IP
-----------    ------    ------------
Server NFS     server    192.168.1.1
Client NFS     client    192.168.1.2
Il dominio sarà denominato dom.it. Occorre a questo punto inserire tali dati nei file di configurazione:

/etc/hosts


	127.0.0.1       localhosts
        192.168.1.1     server.dom.it   server
        192.168.1.2     client.dom.it   client
/etc/hostname (/etc/HOSTNAME per la distribuzione RedHat e quelle derivate)

        server.dom.it

3.3 Installazione dei demoni nfs-server e portmap

Se nel server non fossero già installati i demoni nfs-server e portmap occorrerà installarli ad esempio utilizzando i relativi pacchetti (esempio: nfs-server-2.2beta37-1.i386.rpm, portmap-4.0-12.i386.rpm, nfs-server_2.2beta37-1.deb, ecc.) che possono essere reperiti dai CDRom di installazione o scaricati dai siti FTP delle varie distribuzioni.

3.4 Impostazione della directory da condividere

A questo punto è possibile inserire nel file /etc/exports il percorso ed il nome della directory che contiene i file di installazione (nel nostro caso è il CDRom e quindi occorrerà scrivere qualcosa come: /cdrom o /mnt/cdrom).

Ovviamente è necessario inserire nel lettore CDRom il CD di installazione e montarlo digitando:


mount -t iso9660 /dev/cdrom /cdrom 
mount -t iso9660 /dev/hdb /mnt/cdrom

o qualcosa del genere.

3.5 Impostazione delle interfacce di rete

Dopo aver riavviato la macchina possiamo caricare i moduli relativi alla periferica di rete utilizzata:

Esempio di caricamento dei moduli necessari ad una scheda di rete PCI compatibile NE2000:


insmod 8390
insmod ne2k-pci

oppure semplicemente:

modprobe ne2k-pci

Esempio di caricamento dei moduli necessari al collegamento PLIP:


insmod parport 
insmod plip

oppure semplicemente:

modprobe parport

In questo modo dovremmo avere a disposizione un dispositivo di rete denominato /dev/eth0 nel caso di una scheda di rete o /dev/plip0 nel caso di un collegamento PLIP.

Ora potremo impostare l'interfaccia di rete digitando:

ifconfig eth0 192.168.1.1 netmask 255.255.255.0

oppure:

ifconfig plip0 192.168.1.1 pointopoint 192.168.1.2 netmask 255.255.255.0

Attenzione: la numerazione delle interfacce di rete parallele può variare in base al kernel adottato per cui se il comando precedente non dovesse aver successo si può tentare con plip1 o plip2.

In ogni modo in risposta al comando ifconfig dovremmo ottenere qualcosa di simile a questo:


eth0      Link encap:Ethernet  HWaddr 00:C0:DF:EF:5B:20
          inet addr:192.168.1.1 Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 
          Interrupt:9 Base address:0x6100
	  
oppure

plip0     Link encap:Ethernet  HWaddr FC:FC:C0:A8:01:02
          inet addr:192.168.1.1 P-t-P:192.168.1.2  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0
          Interrupt:7 Base address:0x378

4. Installazione di Debian GNU/Linux 2.1

4.1 Creazione dischetti di installazione e driver

Per l'installazione di Debian GNU/Linux 2.1 occorre innanzitutto creare i dischetti di installazione e driver; le immagini dei due dischetti sono contenute nel CDRom di installazione e possono essere utilizzate sia con il computer che usiamo come server NFS che con qualsiasi sistema MS DOS/MS Windows.

Per la creazione dei dischetti di installazione e driver ci si deve innanzitutto spostare nella directory contenente le relative immagini; il file per il dischetto di installazione si può trovare in directory abbastanza semplici da individuare (ad esempio /boot o /install) mentre per l'immagine del dischetto dei driver occorre impegnarsi un po' di più (dovrebbe trovarsi in /debian/dists/stable/main/disks-i386/current).

I file immagine da utilizzare solitamente sono resc1440.bin e drv1440.bin (nel caso in cui il floppy utilizzato sia quello da 5,25" occorre utilizzare i file resc1200.bin e drv1200.bin; nel caso si avessero invece problemi si può tentare con i file resc1440tecra.bin e drv1440tecra.bin).

Creazione del dischetto di installazione da Linux:

dd if=resc1440.bin of=/dev/fd0

Creazione del dischetto di installazione da DOS: in questo caso si può utilizzare l'utility rawrite2.exe contenuta nella stessa directory dei file immagine o in tools.

rawrite2 -f resc1440.bin -d a:

Creazione del dischetto driver da Linux:

dd if=drv1440.bin of=/dev/fd0

Creazione del dischetto driver da DOS:

rawrite2 -f drv1440.bin -d a:

Nota: se si utilizza Linux, dopo aver inserito il dischetto nel drive, non è necessario montarlo nel filesystem.

4.2 Avvio dell'installazione

Possiamo finalmente inserire il dischetto di installazione nel drive del client ed avviarlo; dopo aver premuto Invio al prompt boot: viene caricato il programma dbootstrap che eseguirà l'installazione.

La prima cosa che viene richiesta è la scelta del tipo di monitor (bianco/nero o colori) e, di seguito, della tastiera utilizzata; si può quindi procedere al partizionamento dell'hard disk e, successivamente, all'inizializzazione delle partizioni ed al mount del root filesystem.

4.3 Caricamento dei moduli (driver)

Si può ora attivare la seconda console virtuale premendo contemporaneamente i tasti Ctrl-Alt-F2 e quindi Invio; si estrae quindi il floppy di installazione, si inserisce il dischetto contenente i driver e lo si monta digitando:

mount /dev/fd0 /floppy

A questo punto si possono copiare i moduli (driver) sull'hard disk nel seguente modo:

cd /target (in questa directory è montato l'hard disk)
mkdir lib (si crea la subdirectory lib/modules/2.0.36 che conterrà i moduli)


cd lib
mkdir modules
cd modules
mkdir 2.0.36
ln -s /target/lib/modules /lib/modules    
(creazione di un link simbolico)

cd /floppy
./install.sh /    
(installazione dei moduli)

La procedura illustrata sopra dovrebbe essere quella corretta ma io ho incontrato qualche problema nello smontare il floppy al termine dell'operazione quindi ho risolto in questo modo:

inserire e montare il floppy contenete i driver nel drive del server:

mount /dev/fd0 /mnt/floppy

scompattare nella directory /tmp i moduli necessari (nell'esempio nfs, plip ed i moduli delle schede di rete NE2000 compatibili):


cd /tmp 
tar zxvf /mnt/floppy/modules.tgz lib/modules/2.0.36/net/ne.o
tar zxvf /mnt/floppy/modules.tgz lib/modules/2.0.36/net/8390.o
tar zxvf /mnt/floppy/modules.tgz lib/modules/2.0.36/net/plip.o
tar zxvf /mnt/floppy/modules.tgz lib/modules/2.0.36/fs/nfs.o

smontare ed estrarre il dischetto drive:

umount /dev/fd0

inserire e montare un dischetto vuoto:

mount /dev/fd0 /mnt/floppy

copiare nel dischetto i moduli:

cd lib
cp -r modules /mnt/floppy

smontare ed estrarre il dischetto drive:

umount /dev/fd0

spostarsi sul client, inserire e montare il dischetto contenete i soli moduli necessari:

mount /dev/fd0 /floppy

copiare i moduli nella directory /lib:


cd /lib
cp -r /floppy/modules .

E' possibile ora caricare i moduli relativi alla periferica di rete utilizzata.

Esempio di caricamento dei moduli necessari ad una scheda di rete ISA compatibile NE2000:


insmod 8390
insmod ne io=0x300 irq=5

(indicare dopo io ed irq rispettivamente l'indirizzo I/O e l'interrupt utilizzati dalla scheda di rete).

Esempio di caricamento dei moduli necessari al collegamento PLIP:

insmod plip

In questo modo dovremmo avere a disposizione un dispositivo di rete denominato /dev/eth0 nel caso di una scheda di rete o /dev/plip0 nel caso di un collegamento PLIP.

Ora potremo impostare l'interfaccia di rete digitando:

ifconfig eth0 192.168.1.2 netmask 255.255.255.0

oppure:

ifconfig plip0 192.168.1.2 pointopoint 192.168.1.1 netmask 255.255.255.0

Attenzione: la numerazione delle interfacce di rete parallele può variare in base al kernel adottato per cui se il comando precedente non dovesse aver successo si può tentare con plip1 o plip2.

Possiamo verificare il funzionamento della rete digitando dal server:

ping 192.168.1.2

Se tutto fila liscio si dovrebbe ottenere in risposta (il comando ping si interrompe con Ctrl-C):


PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: icmp_seq=0 ttl=255 time=0.2 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=255 time=0.1 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=255 time=0.1 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=255 time=0.1 ms

--- 192.168.1.2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.1/0.2 ms

A questo punto sarà necessario caricare il modulo nfs che permette di montare le directory condivise dal server:

insmod nfs

Possiamo ora smontare il floppy contenente i driver (umount /floppy) e reinserire il dischetto di installazione.

4.4 Conclusione dell'installazione

Premendo Ctrl-Alt-F1 si torna al programma di installazione; invece di scegliere l'operazione di default (Install Operating System Kernel and Modules), scorrendo la lista delle alternative verso il basso, si dovrebbe scegliere l'opzione Configure the Network: In questo modo si ritorna ritorna al menù principale dal quale di può scegliere la voce Install Operating System Kernel and Modules e quindi confermare il filesystem montato.

Finalmente è possibile scegliere il tipo di media da utilizzare per l'installazione (naturalmente NFS); alla richiesta di specificare il server NFS ed il path potremmo indicare: 192.168.1.1:/cdrom (al posto di /cdrom occorre indicare la directory condivisa come descritto nel punto 3.4).

Riguardo al path per raggiungere gli archivi della distribuzione potremmo invece indicare: /debian.

Viene ora richiesta la directory contenente il file resc1440.bin e drv1440.bin: scegliendo il metodo manuale (manually) possiamo inserire: /instmnt/debian/dists/stable/main/disks-i386/current.

Dopo qualche minuto sarà possibile continuare l'installazione scegliendo la voce Configure Device Driver Modules dal menù principale; è importante in questa fase scegliere tutti i moduli necessari alla successiva installazione dei pacchetti dal server NFS (nfs, plip o i moduli relativi alla propria scheda di rete); dopo aver installato i moduli necessari si può procedere con l'installazione del Base System in modo del tutto analogo a quello precedentemente descritto per l'installazione del kernel e dei moduli.

Si può, a questo punto, configurare il Base System selezionando la Timezone, scegliere il tipo di avvio di Linux desiderato ed infine riavviare il sistema.

4.5 Riavvio ed installazione dei pacchetti

Se tutto procede bene, al riavvio del sistema secondo la modalità scelta precedentemente, verrà richiesta la password per il super-utente (root) e si avrà la possibilità di creare l'account per un utente normale, di utilizzare le shadows passwords ed eventaulmente di rimuovere dal kernel la parte relativa al supporto PCMCIA.

A questo punto viene richiesto se volete utilizzare dei profili predefiniti per l'installazione dei pacchetti e quindi viene eseguito dselect: occorre innanzitutto scegliere la modalità di accesso ([A]ccess) ai pacchetti da installare; nel nostro caso sceglieremo multi_nfs o nfs.

Verranno quindi richieste le seguenti informazioni (dopo i due punti viene indicata la risposta):

Se le parti main, contrib e non-free, non-US e local della distribuzione non sono disponibili verrà richiesto di specificare il percorso esatto o digitare none se non esistono.

Se precedentemente non è stato scelto un profilo predefinito è necessario ora selezionare quali pacchetti installare con l'opzione [S]elect. Si può quindi procedere con l'installazione scegliendo [I]nstall e, al termine dell'operazione, si può uscire con [Q]uit.

5. Installazione di Red Hat Linux 6.0

Rispetto all'installazione di Debian GNU/Linux 2.1 questa è molto più semplice tant'è che un po' mi vergogno di scrivere questa sezione. ;-)

5.1 Creazione del dischetto di installazione

Per l'installazione di Red Hat Linux 6.0 occorre innanzitutto creare il dischetto di installazione; le immagini dei dischetti sono contenute nel CDRom di installazione e possono essere utilizzate sia con il computer che usiamo come server NFS che con qualsiasi sistema MS DOS/MS Windows.

Per la creazione del dischetto di installazione ci si deve innanzitutto spostare nella directory images che dovrebbe contenere il file immagine bootnet.img da utilizzare per l'installazione da server NFS.

Se si usa Linux, dopo aver inserito un dischetto nel drive, si può digitare:

dd if=bootnet.img of=/dev/fd0

Nel caso in cui si utilizzasse DOS/Windows si dovrà utilizzare il programma rawrite.exe che dovrebbe essere nella directory dosutils del CDRom di installazione:

cd dosutils
rawrite -f ..\images\bootnet.img -d a:

5.2 Avvio dell'installazione

Si inserisce il dischetto di installazione nel drive del client e lo si avvia; dopo aver premuto Invio al prompt boot: viene caricato il programma che eseguirà l'installazione.

La prima cosa che viene richiesta è la scelta della lingua da utilizzare e, di seguito, il tipo di tastiera; si può quindi scegliere il supporto su cui sono installati i pacchetti da installare: NFS image.

A questo punto occorre specificare il driver da utilizzare per la scheda di rete o l'interfaccia PLIP quindi il protocollo di boot (nel nostro caso sceglieremo Indirizzo IP statico).

Verranno quindi richieste le seguenti informazioni (dopo i due punti viene indicata la risposta):

Se tutto procede correttamente ora dovremmo scegliere il tipo di installazione (nuova installazione o aggiornamento) e la classe (workstation, server, custom). Dopo aver configurato eventuali adattatori SCSI si potrà procedere al partizionamento dell'hard disk e, successivamente, all'inizializzazione delle partizioni ed al mount del root filesystem. Si possono scegliere, a questo punto, i pacchetti da installare ed attendere pazientemente la fine dell'operazione.

5.3 Conclusione dell'installazione

Per concludere l'installazione di Red Hat Linux 6.0 si può consultare l'esauriente documentazione presente nel CDRom di installazione.

6. Installazione di SuSE Linux 6.1

Qualcuno di voi si rotolerà per terra dalle risate pensando che ho perso tempo a descrivere una operazione così banale. :°(

6.1 Creazione dischetti di installazione e driver

Per l'installazione di SuSE Linux 6.1 occorre innanzitutto creare i dischetti di installazione e moduli; le immagini dei due dischetti sono contenute nel CDRom di installazione e possono essere utilizzate sia con il computer che usiamo come server NFS che con qualsiasi sistema MS DOS/MS Windows.

Per la creazione dei dischetti di installazione e driver ci si deve innanzitutto spostare nella directory contenente le relative immagini (dovrebbe essere all'incirca /suse/disks).

I file immagine da utilizzare solitamente sono eideXX o scsiXX (a seconda del controller dell'hard disk utilizzato) e modules; nel nome dei file immagine ho inserito XX per indicare l'esistenza di diversi file il cui nome differisce per le ultime due cifre: occorre leggere il file README che dovrebbe essere nella stessa directory delle immagini per scegliere il file giusto per la propria configurazione.

Creazione del dischetto di installazione da Linux:

dd if=eide01 of=/dev/fd0

Creazione del dischetto di installazione da DOS: in questo caso si può utilizzare l'utility rawrite.exe contenuta nella directory suse/dosutils/rawrite:

rawrite -f ..\..\eide01 -d a:

Creazione del dischetto moduli da Linux:

dd if=modules of=/dev/fd0

Creazione del dischetto moduli da DOS:

rawrite -f ..\..\modules -d a:

Nota: se si utilizza Linux, dopo aver inserito il dischetto nel drive, non è necessario montarlo nel filesystem.

6.2 Avvio dell'installazione

Si inserisce il dischetto di installazione nel drive del client e lo si avvia; dopo aver premuto Invio al prompt boot: viene caricato il programma che eseguirà l'installazione.

La prima cosa che viene richiesta è la scelta della lingua da adottare e, di seguito, del tipo di monitor (bianco/nero o colori) e della tastiera utilizzata.

Verrà ora presentato il Menù pricipale dal quale invece di scegliere la voce predefinita (Installazione / iniziare il sistema) opteremo per Modulo-Kernel (Hardware-Driver) e quindi per Caricare i driver per la rete; verranno elencati alcuni moduli relativi alle schede di rete; se il vostro dispositivo di rete non è presente nell'elenco (il collegamento PLIP non lo è di sicuro) è possibile estrarre il dischetto d'installazione, inserire quello dei moduli e scegliere la voce di menu Più moduli.

Una volta scelta la periferica di rete ed averne specificato gli eventuali parametri (indirizzo Input/Output ed interrupt; ad esempio per la mia scheda NE2000 compatibile ho inserito: io=0x300, irq=5) potremo tornare al menu principale scegliendo Indietro e procedere con Installazione / iniziare il sistema e Iniziare l'installazione.

Alla richiesta di selezione del media contenente i file della distribuzione potremo rispondere Rete (NFS) rinunciando alla successiva proposta di configurazione automatica via bootp.

In seguito verranno richieste le seguenti informazioni (dopo i due punti viene indicata la risposta):

Dopo qualche minuto verrà proposto il menù Tipo dell'installazione dal quale protremmo scegliere Nuova installazione di Linux; verranno quindi chieste disposizioni per il partizionamento e l'inizializzazione dell'hard disk.

A questo punto viene lanciato YaST, il programma di installazione pacchetti e configurazione di SuSE Linux, per mezzo del quale sarà possibile ad esempio selezionare la voce di menù Caricare la configurazione, scegliere uno dei profili di installazione predefiniti e quindi optare per la voce di menù Iniziare l'installazione.

6.3 Conclusione dell'installazione

Per concludere l'installazione di SuSE Linux 6.1 si può consultare la documentazione che dovrebbe essere presente nel CDRom di installazione.

7. Note legali

Quanto riportato funziona sul mio sistema Mandrake Linux 5.2 (kernel 2.2.7) ed è frutto di mie personali sperimentazioni; ho scritto questo documento con tutta l'accuratezza possibile comunque se usate le informazioni in esso contenute lo fate a vostro rischio e pericolo.

In nessun caso potrò essere ritenuto responsabile di eventuali danni causati dall'utilizzo del presente documento.

I marchi citati sono riconosciuti come appartenenti ai rispettivi proprietari.

8. Distribuzione

Potete copiare e distribuire liberamente questo testo; gradirei avere notizie di eventuali modifiche e pubblicazioni (mi sono un po' montato la testa :-)).

Critiche, correzioni, consigli e suggerimenti per migliorare questo testo saranno apprezzati moltissimo: contattatemi pure tramite posta elettronica (geppo@newmail.net).

L'ultima versione di questo documento è reperibile ai seguenti indirizzi:
http://bordoni.n3.net/inst_nfs.html
http://www.interpuntonet.it/linux/nfs_inst.html

9. Riferimenti

NFS HOWTO
http://www.pluto.linux.it/ildp/HOWTO/NFS-HOWTO.html
http://ldp.iol.it/HOWTO/NFS-HOWTO.html

NET 3-HOWTO
http://www.pluto.linux.it/ildp/HOWTO/NET-3-HOWTO.html
http://ldp.iol.it/HOWTO/NET-3-HOWTO.html

Kernel HOWTO
http://www.pluto.linux.it/ildp/HOWTO/Kernel-HOWTO.html
http://ldp.iol.it/HOWTO/Kernel-HOWTO.html

PLIP mini-HOWTO
http://www.pluto.linux.it/ildp/HOWTO/mini/PLIP.html
http://ldp.iol.it/HOWTO/mini/PLIP.html

Pluto Journal Aprile 1999 - Costruiamo una rete locale...
http://www.pluto.linux.it/journal/pj9904/retelocale.html

di Giuseppe Bordoni


[precedente] StormLinux - Copertina - Indice [successivo]