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


Capitolo 791.   nanoLinux e PXE

Con nanoLinux è possibile gestire l'avvio di elaboratori remoti, privi di disco fisso, principalmente per avviare un sistema completo, in un file system remoto, in sola lettura, funzionante in modo analogo a quello del DVD live. La configurazione di questo tipo di servizio riguarda il protocollo DHCP, ma può essere generata in modo guidato attraverso nanorc.

Tabella 776.10. Script nanorc: configurazione del servizio DHCP.

Comando Descrizione
nanorc dhcp-server config
nanorc dhcp-server unconf
Attiva o disattiva il funzionamento in qualità di servente DHCP.
nanorc dhcp-server edit
Modifica la configurazione del servente DHCP, intervenendo nel file di configurazione in modo libero.

791.1   PXE

Un sistema nanoLinux installato secondo le modalità descritte in altri capitoli, dispone della directory /var/lib/tftpboot/, accessibile attraverso il protocollo TFTP (lo si vede nel file /etc/inetd.conf). A partire da questa directory si articolano altre directory e file che servono all'avvio di un sistema remoto, utilizzando inizialmente il protocollo PXE.

Per attivare il protocollo PXE si utilizza PXELINUX che fa parte in generale di SYSLINUX. PXELINUX richiede il caricamento e l'esecuzione di un piccolo programma, pxelinux.0, con il quale viene letto un menù, conforme al formato usato dai vari sistemi di SYSLINUX. Precisamente, in base alla configurazione prevista per nanoLinux, attraverso il protocollo DHCP e TFTP, l'elaboratore remoto carica ed esegue il file pxelinux/pxelinux.0;(1) successivamente questo programma carica il menù pxelinux/pxelinux.cfg/default.(2) Il file pxelinux/pxelinux.cfg/default viene prodotto automaticamente da nanorc, quando lo si usa per configurare il servente DHCP.

Il menù contenuto nel file pxelinux/pxelinux.cfg/default offre diverse tipologie di avvio remoto. In generale è possibile selezionare la voce diskless che si riferisce all''avvio di un sistema nanoLinux su disco remoto e in sola lettura (analogamente al caso di un sistema su DVD live); in alternativa sono disponibili le voci auto e oauto, il cui comportamento è esattamente uguale a quello delle stesse voci disponibili in un DVD, pertanto con queste è possibile avviare sia un sistema locale, sia un sistema di emergenza, per la manutenzione. È anche disponibile la voce mem, per avviare Memtest86+.

banner

This is the nanoLinux PXE boot loader. Please insert a name and then press
[Enter]. The default action is to boot the "diskless" label:

    diskless
    auto
    oauto
    mem

Come riferisce anche la guida del menù, se non si seleziona alcuna voce, ma si preme ugualmente [Invio], si ottiene implicitamente la selezione della voce diskless.

791.2   nanoLinux in un file system di rete

Se gli elaboratori remoti, senza disco fisso, dispongono di memoria centrale sufficiente, oppure hanno un piccolo disco fisso con una partizione per lo scambio della memoria, è possibile fare in modo che si avvii un sistema completo, con le stesse facoltà di un nanoLinux avviato da DVD, ovvero con un file system principale in sola lettura.

Per realizzare questo obiettivo occorre installare, manualmente, una copia del DVD di nanoLinux nella directory /opt/nanoLinux/. La sequenza di comandi successiva riassume il procedimento con cui si ottiene questo, supponendo di innestare il DVD nell'unità /dev/hdc:

mount /mnt/hdc[Invio]

mkdir /opt/nanoLinux[Invio]

cp -dpRv /mnt/hdc/* /opt/nanoLinux[Invio]

umount /mnt/hdc[Invio]

Fatta la copia, conviene modificare la parola d'ordine dell'utente root; per farlo occorre utilizzare chroot, ricordando la struttura del file system di nanoLinux quando è in sola lettura:

chroot /opt/nanoLinux/HD-ROOT[Invio]

passwd[Invio]

...

...

exit[Invio]

Naturalmente, il file /etc/exports deve consentire un accesso in lettura a tale gerarchia, lasciando all'utente root tutti i suoi privilegi, come nell'esempio seguente che va adattato eventualmente alla propria rete locale:

...
/opt/nanoLinux   172.16.0.0/12(ro,no_root_squash,sync,nohide,subtree_check)
...

Avendo sistemato questo, con l'ausilio di nanorc si va a completare la configurazione, cosa che comporta anche la copia dei file dei kernel e dei dischi RAM iniziali corretti:(3)

nanorc dhcp-server config[Invio]

.----------------------------DHCP range------------------------------.
| Current "/etc/dhcp3/dhcpd.conf" file might be set as it follows:   |
| ...                                                                |
| subnet 172.21.0.0 netmask 255.255.0.0 {                            |
| #  range 172.21.254.100 172.21.254.199;                            |
|   option broadcast-address 172.21.255.255;                         |
|   option routers 172.21.254.254;                                   |
|   option domain-name-servers 172.21.254.254;                       |
|   option time-servers pool.ntp.org;                                |
|   option ntp-servers pool.ntp.org;                                 |
|   option root-path "172.21.254.254:/opt/nanolinux";                |
|   option nis-domain "nis.nano";                                    |
|   option nis-servers 172.21.254.254;                               |
|   option lpr-servers 172.21.254.254;                               |
|   option log-servers 172.21.254.254;                               |
|   ...                                                              |
| }                                                                  |
|                                                                    |
| Please insert or confirm the DHCP address range:                   |
| .----------------------------------------------------------------. |
| |172.21.254.100 172.21.254.199                                   | |
|-`----------------------------------------------------------------'-|
|                   <  OK   >          <Annulla>                     |
`--------------------------------------------------------------------'

Si ipotizza di voler utilizzare dinamicamente gli indirizzi da 172.21.1.100 a 172.21.1.199:

[Canc][Canc]...

172.21.1.100 172.21.1.199<OK>

.--------------DHCP server configuration----------------.
| Is the following configuration correct?               |
|                                                       |
| ddns-update-style none;                               |
| option option-128 code 128 = string;                  |
| option option-129 code 129 = text;                    |
| subnet 172.21.0.0 netmask 255.255.0.0 {               |
|   range 172.21.1.100 172.21.1.199;                    |
|   option broadcast-address 172.21.255.255;            |
|   option routers 172.21.254.254;                      |
|   option domain-name-servers 172.21.254.254;          |
|   option time-servers pool.ntp.org;                   |
|   option ntp-servers pool.ntp.org;                    |
|   option root-path "172.21.254.254:/opt/nanoLinux";   |
|   option nis-domain "nis.nano";                       |
|   option nis-servers 172.21.254.254;                  |
|   option lpr-servers 172.21.254.254;                  |
|   option log-servers 172.21.254.254;                  |
|   use-host-decl-names      on;                        |
|   filename "/pxelinux/pxelinux.0";                    |
| }                                                     |
|-------------------------------------------------------|
|               < Yes >          < No  >                |
`-------------------------------------------------------'

Se la configurazione proposta è quella che si desidera, si può confermare:

<Yes>


1) Il percorso assoluto è /var/lib/tftpboot/pxelinux/pxelinux.0.

2) Il percorso assoluto è /var/lib/tftpboot/pxelinux/pxelinux.cfg/default.

3) Il sistema che viene installato nella directory /opt/nanoLinux/, per funzionare in sola lettura attraverso la rete, ha un proprio insieme di moduli e una propria coppia di kernel, potenzialmente differenti rispetto al sistema complessivo che lo ospita. Pertanto, il sistema di avvio attraverso la rete, con il protocollo PXE, deve utilizzare questi kernel e i dischi RAM iniziali relativi.


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 nanolinux_e_pxe.htm

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

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory