Old:NFS: Networking FileSystem tramite nfs-user-server: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
 
(34 versioni intermedie di 11 utenti non mostrate)
Riga 1: Riga 1:
Beh, non tutti possono fare a meno di avere installato anche un sistema Windows sulla propria macchina e quindi spesso � necessario far convivere questi due OS.<br>
{{Old}}
Storicamente questa convivenza si � dimostrata spesso poco "pacifica", infatti a non pochi di noi � capitato di non poter accedere a questo o quel sistema operativo, ben sapendo che all'ultima accensione tutto funzionava per il meglio.<br>
__TOC__
Di solito, per quella che � la mia esperienza in fatto di dual boot, posso "addossare" buona parte della colpa di questi malfunzionamenti, alla poca apertura del boot loadr di Windows rispetto agli altri sistemi operativi esistenti.<br>
Per ovviare a questo tipo di problema � possibile percorrere diverse scelte:


1) Installare un bootloader pi� comprensivo (grub, lilo, gag, etc. etc.) e gestire tutto tramite quello;<br>
==Creare una directory shared tra macchine Linux (NFS: Network File System)==
2) Usare il bootloader di Windows, per avviare anche gli altri OS a cui siamo interessati;
Per far comunicare due macchine Linux si possono utilizzare diversi metodi: il più veloce consiste nell'utilizzare NFS per mettere in condivisione una particolare directory del filesystem, rendendola così disponibile ad altri client.<br>
Di seguito è descritta una semplice procedura per configurare ed avviare il daemon di NFS sul server e per istruire il client a raggiungere la directory esportata. Questa non vuole essere una guida esaustiva ad NFS, ma solo una breve descrizione di come risolvere velocemente lo scambio di dati tra macchine Linux.


Questo articolo prova a spiegare in modo semplice come impostare ed utilizzare il secondo metodo.<br>
== Impostazione del Server ==
Lo spunto e le nozioni riportate derivano dall'articolo di '''Rover''' presente a [http://www.littlewhitedog.com/content-52.html questo indirizzo].
Dopo aver installato con apt-get i pacchetti <code>'''nfs-user-server'''</code> (un demone Linux che lavora in userspace) e <code>'''portmap'''</code>, bisogna modificare il file <code>'''/etc/exports'''</code> (se non esiste, occorre crearlo) aggiungendo una riga per ognuna delle directory da esportare.<br>


Installeremo in sequenza, prima Windows e poi Linux: per il primo baster� seguire le varie schermate, mentre per il secondo occorr� qualche accortezza in pi�.<br>
{{Box | Importante |Per accedere a file con dimensione maggiore di 2 Gb, bisogna installare il pacchetto <code>'''unfs3'''</code> (nfs userspace daemon v3) anziché <code>nfs-user-server</code>}}
Durante l'installazione della distro infatti, verr� richiesto di configurare un bootloader (di solito LILO o grub) e pertanto dovremo fare attenzione alla posizione dove verr� posizionato tale software.<br>
In altre parole, un boot loader pu� essere installato nell'inizio di un disco (il famoso '''MBR''' o Master Boot Record), in una partizione ben precisa o in un floppy.


Visto che siamo decisi a lasciare al boot loader di Windows l'onere di tutto il lavoro, � necessario scegliere la seconda opzione, specificando la partizione corrispondente alla / usata per installare Linux.
{{Box | Nota |Per impostazione predefinita Portmap è associato solo all'indirizzo di localhost, mentre nell'uso consueto è diretto verso una o più reti LAN. Per permettere alle varie reti di accedere al server è necessario modificare (oppure eliminare, per permettere un accesso completo) il parametro <code>'''OPTIONS'''</code>, presente nel file <code>'''/etc/default/portmap'''</code> }}
Ad esempio, nel mio caso ho:


/dev/hda7 ---> /<br>
Un esempio di entry per il file export può essere:
/dev/hda6 ---> /home


quindi devo scegliere /dev/hda7.<br>
<pre>/mnt/Data/download 192.168.2.3 (rw)</pre>  
Una volta completata la procedura di installazione, SENZA riavviare il sistema, � nessario accedere come utente.<br>
Dopo aver aperto una shell eseguite questo comando:


<pre>$ dd if=/dev/hda7 bs=512 count=1 of=/home/USER/linux.bin</pre>
in cui:
* <code>'''/mnt/Data/download'''</code> è la directory da esportare
* <code>'''192.168.2.3'''</code>        è il client che può raggiungere la directory in questione;
* <code>'''(rw)'''</code>               sono le opzioni impostabili ('''rw''':permessi di scrittura/lettura);


dove USER � il vostro utente.<br>
Qualora, invece, volessimo esportare la directory a tutte le macchine presenti all'interno di una sottorete:
Questo comando crea un file chiamato '''linux.bin''' (ci servir� in seguito), contenente i primi 512 byte della nostra partizione /, la stessa in cui, guarda caso, abbiamo installato il bootloader.<br>
Tale file ci servir� per istruire Windows ad avviare anche l'altro sistema operativo.<br>
Sempre dalla shell, copiamo '''linux.bin''' su un floppy vuoto, precendentemente inserito nell'apposito lettore con


<pre>$ mcopy /home/USER/linux.bin a:</pre>
<pre>/mnt/Data/download    192.168.0.1/255.255.255.0(rw)</pre>


NB: '''mcopy''' fa parte del pacchetto degli '''mtools''', nel caso non fosse installato e possibile usare i metodi standard di mount del device e di copia di un file.<br>
{{Box | Nota |Nelle nuove versioni di NFS è necessario inserire un flag aggiuntivo (<code>'''sync'''</code> oppure <code>'''async'''</code>) per definire la modalità di accesso ed uso dei file.
Nel caso non si disponga di un drive floppy, e possibile usare un qualsiasi supporto utilizzabile in scrittura da Linux (una partizione di fat32, una pen drive, un cdrw, etc etc)<br>
<code>'''Sync'''</code> forza la scrittura immediata dei dati man mano che questi arrivano al server, mentre <code>'''async'''</code> consente di scrivere tali dati in intervalli successivi, migliorando così le performance del trasferimento.
A questo punto dobbiamo riavviare il sistema: � da notare come Windows ancora non rilevi la presenza di Linux.
Vista la peculiarità di questo tipo di trasferimento è conveniente usare <code>'''sync'''</code> nelle situazioni di rw, ed <code>'''async'''</code> in quelle di <code>ro</code>, in modo da eliminare il pericolo di dati non salvati correttamente (e quindi persi) durante le fasi di scrittura nel caso di crash del server. }}
Una volta loggati come utente Administrator o equivalente, possiamo dedicarci alle modifiche.


Il boot manager di Windows (almeno nelle versioni pi� recenti come 2000 o Xp) viene impostato nel file nascosto '''boot.ini''', presente nella directory radice dove � installato il sistema, come ad esempio c:\ .<br>
È possibile inoltre definire gli accessi in modo più fine utilizzando i file <code>/etc/host.access</code> e <code>/etc/host.denied</code>, ma per un uso basilare di NFS non è necessario applicare alcuna modifica.
Una volta attivata la '''visualizzazione dei file nascosti''' e quella dei '''file di sistema''', � possibile aprire boot.ini ed osservarne il contenuto.<br>
Il file in questione si presenta originariamente cos�:


<pre>  [boot loader]
== Impostazione del Client ==
    timeout=15
Bisogna innanzitutto installare '''nfs-common''' con apt-get, e successivamente modificare il proprio <code>'''/etc/fstab'''</code>, aggiungendo una voce relativa alla directory che si vuole raggiungere via NFS; ad esempio:
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect</pre>  


<pre>192.168.2.2:/mnt/Data/download  /mnt/nfs nfs rw,users,noauto  0  0</pre>


Per poter gestire Linux � sufficiente aggiungere la seguente riga:
in cui:
*    '''<code>192.168.2.2:/mnt/Data/download</code>''': è la URL completa della directory da raggiungere (sintassi, ip:path);
*    '''<code>/mnt/nfs</code>''':  è la directory dove si vuole montare il device (la directory deve essere stata creata precedentemente);
*    '''<code>nfs</code>''': indica il tipo di filesystem da usare (in questo caso NFS, filesystem di rete);
*    '''<code>rw,users,noauto</code>''': sono i flag di mount del device (rw: permessi di scrittura/lettura, users: device montabile e smontabile dai vari user, noauto: device da non avviare automaticamente al boot del sistema);
*    '''<code>0 0</code>''': sono i flag relativi al check del device da parte dei programmi di controllo della coerenza del filesystem.


<pre>c:\linux.bin="Linux"</pre>
A questo punto basta un semplice:


personalizzabile sia nel nome del file (linux.bin) che nell'etichetta da visualizzare (Linux).<br>
<pre>$ mount /mnt/nfs</pre>  
Preleviamo il file '''linux.bin''' che abbiamo prodotto con il comando '''dd''' e copiamolo nella directory c:\ .<br>
A questo punto possiamo riavviare il sistema e scopriamo che non si avvia pi� automaticamente Windows, ma ci viene proposta anche la scelta di Linux!!!<br>
Una volta selezionata quest'ultima voce, ci troviamo davanti il bootloader fornito dall'istallazione di Linux.


Ai pi� questa soluzione pu� sembrare contorta quanto inutile, ma a mio avviso consente di gestire Linux in modo decisamente pi� trasparente se � presente un dual boot con Windows, visto che quest'ultimo non dovr� essere "spodestato" dall'MBR per far posto al LILO o grub di turno.<br>
per poter usare normalmente la share NFS, come una normale directory del sistema.
E, finora, questo metodo non mi ha '''MAI''' abbandonato!<br>
 
In caso di malfunzionamenti, inoltre, è possibile controllare lo stato della share NFS sia dal client che dal server, utilizzando le applicazioni '''rpcinfo''' e '''nfsstat''' in modo da verificare visualmente le risorse condivise attive nella rete.
 
{{Autori
| Autore = [[Utente:Ldonesty|Ldonesty]]
}}

Versione attuale delle 13:00, 19 giu 2016

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Creare una directory shared tra macchine Linux (NFS: Network File System)

Per far comunicare due macchine Linux si possono utilizzare diversi metodi: il più veloce consiste nell'utilizzare NFS per mettere in condivisione una particolare directory del filesystem, rendendola così disponibile ad altri client.
Di seguito è descritta una semplice procedura per configurare ed avviare il daemon di NFS sul server e per istruire il client a raggiungere la directory esportata. Questa non vuole essere una guida esaustiva ad NFS, ma solo una breve descrizione di come risolvere velocemente lo scambio di dati tra macchine Linux.

Impostazione del Server

Dopo aver installato con apt-get i pacchetti nfs-user-server (un demone Linux che lavora in userspace) e portmap, bisogna modificare il file /etc/exports (se non esiste, occorre crearlo) aggiungendo una riga per ognuna delle directory da esportare.

Info.png Importante
Per accedere a file con dimensione maggiore di 2 Gb, bisogna installare il pacchetto unfs3 (nfs userspace daemon v3) anziché nfs-user-server


Info.png Nota
Per impostazione predefinita Portmap è associato solo all'indirizzo di localhost, mentre nell'uso consueto è diretto verso una o più reti LAN. Per permettere alle varie reti di accedere al server è necessario modificare (oppure eliminare, per permettere un accesso completo) il parametro OPTIONS, presente nel file /etc/default/portmap


Un esempio di entry per il file export può essere:

/mnt/Data/download 192.168.2.3 (rw)

in cui:

  • /mnt/Data/download è la directory da esportare
  • 192.168.2.3 è il client che può raggiungere la directory in questione;
  • (rw) sono le opzioni impostabili (rw:permessi di scrittura/lettura);

Qualora, invece, volessimo esportare la directory a tutte le macchine presenti all'interno di una sottorete:

/mnt/Data/download    192.168.0.1/255.255.255.0(rw)
Info.png Nota
Nelle nuove versioni di NFS è necessario inserire un flag aggiuntivo (sync oppure async) per definire la modalità di accesso ed uso dei file.

Sync forza la scrittura immediata dei dati man mano che questi arrivano al server, mentre async consente di scrivere tali dati in intervalli successivi, migliorando così le performance del trasferimento. Vista la peculiarità di questo tipo di trasferimento è conveniente usare sync nelle situazioni di rw, ed async in quelle di ro, in modo da eliminare il pericolo di dati non salvati correttamente (e quindi persi) durante le fasi di scrittura nel caso di crash del server.


È possibile inoltre definire gli accessi in modo più fine utilizzando i file /etc/host.access e /etc/host.denied, ma per un uso basilare di NFS non è necessario applicare alcuna modifica.

Impostazione del Client

Bisogna innanzitutto installare nfs-common con apt-get, e successivamente modificare il proprio /etc/fstab, aggiungendo una voce relativa alla directory che si vuole raggiungere via NFS; ad esempio:

192.168.2.2:/mnt/Data/download  /mnt/nfs nfs rw,users,noauto   0   0

in cui:

  • 192.168.2.2:/mnt/Data/download: è la URL completa della directory da raggiungere (sintassi, ip:path);
  • /mnt/nfs: è la directory dove si vuole montare il device (la directory deve essere stata creata precedentemente);
  • nfs: indica il tipo di filesystem da usare (in questo caso NFS, filesystem di rete);
  • rw,users,noauto: sono i flag di mount del device (rw: permessi di scrittura/lettura, users: device montabile e smontabile dai vari user, noauto: device da non avviare automaticamente al boot del sistema);
  • 0 0: sono i flag relativi al check del device da parte dei programmi di controllo della coerenza del filesystem.

A questo punto basta un semplice:

$ mount /mnt/nfs

per poter usare normalmente la share NFS, come una normale directory del sistema.

In caso di malfunzionamenti, inoltre, è possibile controllare lo stato della share NFS sia dal client che dal server, utilizzando le applicazioni rpcinfo e nfsstat in modo da verificare visualmente le risorse condivise attive nella rete.




Guida scritta da: Ldonesty Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized