Avviare sidux attraverso una rete (network block device - nbd)

Attenzione: dnsmasq include un server dhcp che può andare in conflitto con un server dhcp già esistente nella rete (ad es. quello del router).L'opzione più sicura è quella di utilizzare un solo server dhcp su qualsiasi rete. Questo significa che devono essere disabilitati gli altri server dhcp presenti nella stessa rete. Le opzioni del proxy dnsmasq evidenziate più avanti dovrebbero essere in grado di coesistere con un altro server dhcp nella stessa rete, comunque non provarle a meno che si è amministratori della rete e si è pronti a fronteggiare qualsiasi conseguenza imprevista che potrebbe sorgere.

Le basi

L'avvio da rete per prima cosa richiede che si abbia una macchina capace di farlo, che può essere connessa tramite una rete che si ha con una macchina che si può impostare per offrire servizi di avvio da rete.

Non si deve fare questo nella rete del lavoro, o in ogni altra rete che non si controlla, a meno che si sia proprietari della rete o si abbia il permesso e l'assistenza di coloro che lo sono. Se si co-opera in una rete più grande si possono studiare tutte le opzioni in dnsmasq, come limitare le interfacce che ascolta oppure i client a cui rispondere, questo per restringere l'impatto della configurazione sulla rete.

I prerequisiti

Una iso sidux 2009-04 (o successiva) avviata da utilizzare come server per l'avvio da rete. Le istruzioni dovrebbero essere le stesse con ogni sidux o debian sid aggiornata e dovrebbero fornire tutte le risposte di cui si ha bisogno per l'utilizzo in altri sistemi. Linux è richiesto per servire le periferiche nbd.

dnsmasq verrà utilizzato per fornire tutto il necessario per le fasi di avvio iniziali, di nuovo, non dovrebbe essere difficile portare quanto appreso ad altri software.

Installazione
apt-get install nbd-server dnsmasq

Impostare nbd-server

Presumendo che la ISO si trovi a /dev/scd0, (potrebbe essere così se si è avviato da cd, altrimenti cambiare con ogni file o periferica adatta), quindi si può configurare un file conf per nbd-server chiamato nbd-sidux.conf con una sezione chiamata sidux-iso per esportare il cd sulla porta 9040 eseguendo le istruzioni seguenti:

echo '[generic]' > nbd-sidux.conf
nbd-server 9040 /dev/scd0 -o sidux-iso >> nbd-sidux.conf

L'header generica è sempre richiesta. Se si vuole configurare nbd-server per lavorare automaticamente in un sistema reale si deve configurare /etc/nbd-server.conf invece. Ci sono tante altre opzioni per nbd-server di quelle mostrate qui, vedere man nbd-server.

Per far partire il server adesso, come utente normale e senza preoccuparsi per la configurazione o copiare il file in /etc/nbd-server.conf, si può solo eseguire:

nbd-server -C nbd-sidux.conf

L'obiettivo di nbd-server non deve essere una iso o un cd,dvd,chiavetta usb, deve solo contenere una immagine filesystem adatta.

dnsmasq

L'esempio seguente da per scontato che si sta eseguendo in una rete semplice dove la macchina ha una connessione ethernet che è configurata tramite dhcp da un'altra macchina e che i client che si avviano tramite rete possono utilizzare per configurare le interfacce tramite dhcp.

Le principali e rilevanti opzioni per dnsmasq per avviare da rete sidux sono configurare un percorso per i file del server tftp ed un file per avviare da li.

Creare una directory tftp per avviare in /home (si può creare dove si preferisce, anche in un altro posto). Per cui il percorso diventerà /home/tftp.

Quindi creare un file di nome pxe-sidux.conf ed incollarci le righe seguenti:

dhcp-range=0.0.0.0,proxy
pxe-service=x86PC, "boot linux", pxelinux
enable-tftp
tftp-root=/home/tftp
tftp-secure

Quando si usa un proxy dhcp si deve fornire un menu pxe con pxelinux come unica voce che verrà avviata automaticamente. Questo è il motivo della sola voce pxe-service qui sopra.

Come root, muovere il nuovo file creato pxe-sidux.conf in /etc/dnsmasq.d/:

sux
mv pxe-sidux.conf /etc/dnsmasq.d/

Nota: per una rete (ad.es. 192.168.0.*) senza altri server dhcp si devono invertire le prime due linee per:

dhcp-range=192.168.0.100,192.168.0.199,1h
dhcp-boot=pxelinux.0

Per rendere disponibili gli indirizzi IP partendo da 192.168.0.100 fino a 192.168.0.199 con un tempo di lease di un ora, e per dare il nome pxelinux.0 al file da avviare soltanto come parte della richiesta dhcp (quando si utilizza il proxy invece si fornisce un menu pxe con una sola voce chiamata pxelinux che quindi lo farà partire automaticamente). Questo probabilmente non configurerà la rete come si vuole a meno che il server dnsmasq sia anche il server dns e il gateway per i client.

Per abilitare il nuovo file togliere il commento all'impostazione conf-dir=/etc/dnsmasq.d alla fine di /etc/dnsmasq.conf e quindi riavviare dnsmasq.

dnsmasq ha molte opzioni e può funzionare sia come dns server che come dhcp, pxe, tftp. Quanto sopra è solo una minima panoramica dei pezzi necessari per utilizzare pxelinux.

tftp

tftp è l'equivalente della directory boot in rete. Utilizzando l'esempio della directory /home/tftp è necessario popolarla. Se il cdrom è montato su /fll/scd0:

cp /fll/scd0/boot/isolinux/* /home/tftp
mkdir /home/tftp/pxelinux.cfg
mv /home/tftp/isolinux.cfg /home/tftp/pxelinux.cfg/default
mkdir /home/tftp/boot
cp /fll/scd0/boot/vmlin* /fll/scd0/boot/initr* /fll/scd0/boot/memtest* /home/tftp/boot/
cp /usr/lib/syslinux/pxelinux.0 /home/tftp/
# required for the tftp-secure option to dnsmasq
chown -R dnsmasq.dnsmasq /home/tftp/*

Adesso si possono modificare le opzioni di avvio per quello che server in /home/tftp su entrambi i file pxelinux.cfg/default e gfxboot.cfg. In particolare viene consigliato che sotto la sezione [install] venga impostato install= su install=nbd, install.nbd.server all'indirizzo IP del server nella rete e install.nbd.port a quella impostata quando si è creato il server nbd.

Alternativamente si può disabilitare completamente il menu F£ e modificare le linee di comando del kernel per usare qualcosa come:

fromhd=/dev/nbdroot root=/dev/nbdroot nbdroot=192.168.1.23,9040
codice di avvio toram

Se si aggiunge toram alle opzioni di avvio, le macchine con abbastanza RAM si staccheranno dal server non appena avranno copiato il file e le macchine senza RAM sufficiente andranno avanti e si avvieranno normalmente. Almeno 1 GB di RAM è richiesto per toram (idealmente 2 GB o più).

Avvio da rete

Assicurarsi che il BIOS del PC client sia impostato per utilizzare Boot from Network.

Se il BIOS supporta l'avvio da rete, la macchina è connessa ad una rete con il server ed il kernel sidux e initrd.img supportano la scheda di rete, si dovrebbe essere in grado di avviare sidux dalla rete.

Alcune scehde di rete potrebbero richiedere firmware non-free che richiede di ricostruire l'immagine initrd per includerlo.

Page last revised 05/01/2010 0650 UTC