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


Capitolo 317.   Avvio di terminali LTSP con GRUB 1

GRUB 1 è un ottimo sistema di avvio, che normalmente viene diffuso con funzionalità limitate all'accesso ai dischi locali (capitolo 51). Tuttavia, a partire dai sorgenti è possibile generare componenti speciali per l'avvio di un sistema attraverso la rete. Sotto questo aspetto, GRUB 1 si può integrare felicemente con LTSP.

Sono possibili due strade per avviare un sistema attraverso la rete con GRUB 1: si può creare un dischetto di avvio, in grado di usare il protocollo DHCP per configurarsi automaticamente e prelevare il kernel da avviare; si può usare come programma caricato attraverso PXE o Etherboot, allo scopo di fornire un menù di avvio, prima di passare al caricamento del kernel.

Questo capitolo si rifà a esempi che appaiono in altri capitoli su LTSP. A ogni modo, per poter comprendere il funzionamento di GRUB 1 secondo quanto descritto in questo capitolo, occorre conoscere già il funzionamento di LTSP.

317.1   Sorgenti e compilazione

Come accennato nella premessa, per ottenere le funzionalità di GRUB 1 relative alla rete, occorre ricompilare i sorgenti, che si possono ottenere da <ftp://alpha.gnu.org/gnu/grub/>. Il pacchetto dei sorgenti va estratto da qualche parte, anche senza privilegi particolari, quindi va configurato e compilato.

tar xzvf grub-n.n.tar.gz[Invio]

cd grub-n.n[Invio]

./configure[Invio]

make[Invio]

Per ottenere la gestione della rete, occorre dare delle opzioni al comando di configurazione. Lo script seguente serve a ottenere la maggior parte delle funzionalità di rete disponibili nella versione 0.97 di GRUB 1:

#!/bin/sh
#
make clean
#
if ./configure  --enable-diskless \
                --enable-3c509 \
                --enable-3c595 \
                --enable-3c90x \
                --enable-cs89x0 \
                --enable-davicom \
                --enable-depca \
                --enable-eepro \
                --enable-eepro100 \
                --enable-epic100 \
                --enable-3c507 \
                --enable-exos205 \
                --enable-ni5210 \
                --enable-lance \
                --enable-ne2100 \
                --enable-ni6510 \
                --enable-natsemi \
                --enable-ni5010 \
                --enable-3c503 \
                --enable-ne \
                --enable-complex-r12000-fix \
                --enable-wd \
                --enable-otulip \
                --enable-rtl8139 \
                --enable-sis900 \
                --enable-smc9000 \
                --enable-tiara \
                --enable-tulip \
                --enable-via-rhine \
                --enable-w89c840
then
    make
fi

Dopo la compilazione, non è necessario procedere all'installazione nel sistema, perché è sufficiente prelevare i file che servono. La tabella successiva riepiloga i file che possono essere utili.

File o directory Descrizione
grub/grub File eseguibile da usare per installare il sistema di avvio.
stage1/stage1 Settore di avvio, noto come file stage1.
stage2/stage2 Programma di avvio di secondo livello, noto come file stage2.
stage2/*_stage1_5 Programma di avvio intermedio per scopi particolari (di solito per consentire la lettura di un certo tipo di file system.
stage2/nbloader Programma di avvio di GRUB 1 attraverso la rete, con la procedura Etherboot.
stage2/pxeloader Programma di avvio di GRUB 1 attraverso la rete, con la procedura PXE.

317.2   Avvio post PXE o Etherboot

L'avvio di un terminale senza disco, attraverso Etherboot o PXE, può essere mediato da GRUB 1, in modo da poter offrire un menù di avvio prima del caricamento del kernel. In pratica, attraverso PXE o Etherboot si avvia un file di GRUB 1 attraverso la rete; questo file ha funzionalità comparabili a quello di un file stage2 tipico di GRUB 1 che legge il file di configurazione (di solito menu.lst) e si comporta di conseguenza.

Viene proposto un esempio che si basa sulle convenzioni di LTSP. Per prima cosa, presso l'elaboratore che offre il servizio TFTP, viene creata la directory /var/lib/tftpboot/grub/, all'interno della quale vengono collocati i file nbloader, pxeloader e menu.lst. I file usati da LTSP per il caricamento del sistema si trovano nella directory /var/lib/tftpboot/lts/; in particolare si intende utilizzare quanto si trova in /var/lib/tftpboot/lts/n.n.n-ltsp-3/.

In base a queste premesse, il file /var/lib/tftpboot/grub/menu.lst viene realizzato nel modo seguente:

default 0
bootp
title LTSP
kernel (nd)/lts/2.6.9-ltsp-3/bzImage-2.6.9-ltsp-3 root=/dev/ram0 rw init=/linuxrc
initrd (nd)/lts/2.6.9-ltsp-3/initrd-2.6.9-ltsp-3.gz

La configurazione del servente DHCP va modificata in modo da caricare uno dei file di GRUB 1 (nbloader o pxeloader), specificando anche il file di configurazione da usare (menu.lst). Segue un esempio del file /etc/dhcp3/dhcpd.conf, del servente DHCP di ISC:

ddns-update-style none;
option option-128 code 128 = string;
option option-129 code 129 = text;
option option-150 code 150 = text;

subnet 172.17.0.0 netmask 255.255.0.0 {
  range 172.17.17.1 172.17.17.250;
  option broadcast-address 172.17.255.255;
  option routers 172.17.1.254;
  option domain-name-servers 172.17.1.254;
  option time-servers pool.ntp.org;
  option ntp-servers pool.ntp.org;
  option root-path "172.17.1.254:/opt/ltsp/i386";
  option nis-domain "nis.domain";
  option nis-servers 172.17.1.254;
  option lpr-servers 172.17.1.254;
  option log-servers 172.17.1.254;
  use-host-decl-names      on;
  filename "/grub/pxeloader";
  option option-150 "(nd)/grub/menu.lst"
}

In questo caso, si fa riferimento a un avvio secondo il metodo PXE; eventualmente volendo usare il metodo originale di Etherboot, basta modificare le ultime righe nel modo seguente:

...
  filename "/grub/nbloader";
  option option-150 "(nd)/grub/menu.lst"
...

317.3   Avvio indipendente

GRUB 1, utilizzato da dischetto, può avviare un terminale senza bisogno di Etherboot o di PXE, con il vantaggio di poter realizzare un dischetto uguale per terminali aventi interfacce di rete differenti.

Dopo aver compilato GRUB 1 con la gestione di tutte le interfacce di rete di proprio interesse, servono i file stage1, stage2 e menu.lst, da collocare nella directory /grub/ di un dischetto (di solito un dischetto con un file system Dos-FAT).

Seguendo gli esempi noti di LTSP, il file menu.lst potrebbe essere realizzato nel modo seguente. Rispetto a quanto mostrato a proposito dell'avvio di GRUB 1 tramite la rete, si può osservare l'istruzione bootp, con la quale si richiede di interrogare il protocollo DHCP per ottenere gli indirizzi IPv4 necessari al collegamento:

default 0
bootp
title LTSP
kernel (nd)/lts/2.6.9-ltsp-3/bzImage-2.6.9-ltsp-3 root=/dev/ram0 rw init=/linuxrc
initrd (nd)/lts/2.6.9-ltsp-3/initrd-2.6.9-ltsp-3.gz

Successivamente occorre avviare l'eseguibile grub per sistemare l'avvio nel dischetto:

grub[Invio]

grub> root (fd0)[Invio]

grub> setup (fd0)[Invio]

grub> quit[Invio]

317.4   Riferimenti


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

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

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory