spacer

Sysresccd-manual-it PXE network booting

History


Informazioni

L'ambiente PXE permette di avviare un computer con SystemRescueCd anche se il computer non dispone di lettore CDRom o porta USB. Permette di avviare SystemRescueCd dalla rete, e quindi è più veloce risolvere i problemi dei computer della propria rete una volta che un server di avvio PXE sia installato. E' anche utile se si desidera avviare un computer che non ha lettore ottico (CD o DVD) o per risolvere problemi di un computer remoto sul quale non si abbia accesso fisico per inserire il disco. Al momento, SystemRescueCd supporta solo avvio PXE sull'architettura x86 (Personal Computer).

SystemRescueCd ha implementato il processo di avvio da rete con HTTP invece che NFS, dato che HTTP è più facile da configurare (solo una porta per HTTP sulla rete, NFS è complesso da configurare specialmente per i firewall), e HTTP è basato sull'affidabile protocollo di trasporto TCP, i dati non possono essere corrotti.

Requisiti

  • Un computer che possa avviare un CD/USB che agisca da server PXE. Si può usare una semplice macchina virtuale VMWare se non si dispone di un computer libero per questo compito.
  • Un computer client con almeno 300MB di memoria e una scheda di rete compatibile con PXE.
  • SystemRescueCd versione 1.0.0 o più recente se si usano queste opzioni, dato che le precedenti versioni avevano bug importanti.

Come funziona il processo di avvio PXE

Il server di avvio PXE

Il server di avvio PXE è costituito da tre parti:

  • server DHCP che invia un indirizzo IP al cliente
  • server TFTP che invia i primi files di boot (boot loader + kernel) al client
  • server HTTP che invia il filesystem radice al client (http non è più necessario)

Queste tre parti possono essere installate o su una macchina singola o su molti computer. SystemRescueCd fornisce un completo server di avvio PXE pronto all'uso che si può eseguire su un computer singolo. Il servizio pxebootsrv gestisce autonomamente questi tre servizi.

Il processo di avvio PXE

Si può aver bisogno di capire cosa succede quando si avvia SystemRescueCd dalla rete. Si avrà bisogno di questa conoscenza per risolvere problemi in caso ce ne fosse bisogno. Ecco i passi più importanti del processo di avvio PXE:

  1. Quando il computer client prova ad avviare con PXE, prima di tutto invia una richiesta DHCP sulla rete per ottenere un indirizzo IP.
  2. Quindi un server DHCP risponde con un'offerta DHCP che contenga un nuovo indirizzo IP che non fosse già allocato e alcune opzioni specifiche (DNS, gateway) e l'indirizzo IP del server TFTP.
  3. Il client riceve questa offerta DHCP e la accetta. Si connette al server TFTP (riceve il suo indirizzo IP nella fase precedente) per ottenere i files del boot loader.
  4. Il server TFTP invia i files del boot loader (pxelinux) e i files di testo mostrati sullo schermo da pxelinux.
  5. Il client visualizza il prompt pxelinux, e l'utente può scegliere le opzioni di avvio. Quindi richiede al server TFTP il kernel e i files initramfs, necessari per avviare il sistema.
  6. Il server TFTP invia il kernel e i files initramfs (rescuecd + rescuecd.igz) al client.
  7. Il client si avvia con questo kernel e esegue gli script linuxrc che sono forniti con initramfs.
  8. Durate la sua inizializzazione, il kernel effettua di nuovo una richiesta DHCP per via dei parametri di avvio del kernel id=dhcp. Il kernel non conosce realmente l'indirizzo IP usato dal computer nella fase di pxelinux.
  9. Il client scarica il file sysrcd.dat nella RAM da un server HTTP. L'indirizzo IP di questo server era stato mandato al client dal server tftp con le opzioni di avvio del kernel. Il file sysrcd.dat è abbastanza grande (circa 120MB) e contiene tutto il sistema SystemRescueCd eccetto il kernel.
  10. Il client monta sysrcd.dat ed ora può completare il processo di boot.
  11. In questa fase, il client ha tutti i file in memoria e non ha più bisogno del server di avvio.

Il servizio pxebootsrv

In SystemRescueCd l'installazione del server PXE è eseguito con un singolo servizio chiamato pxebootsrv. Questo servizio si occupa di preparare la configurazione del server e di eseguire i tre servizi funzionanti, coinvolti nel processo di avvio PXE. Quano si esegue il pxebootsrv con etc/conf.d/pxebootsrv, quindi prepara i file di configurazione degli altri servizi e i files in /tftpboot e quindi avvia questi servizi.

Il servizio pxebootsrv è stato scritto per rendere il processo di avvio pxe più facile da usare. L'utente finale ha solo bisogno di configurare pxebootsrv invece dei tre servizi separati. Ma in caso non si sia contenti di questa situazione, si è liberi di usare i servizi dhcpd/tftpd/thttp direttamente.

Setup del server di avvio PXE su una configurazione tipica

Informazioni

Questa sezione spiega come eseguire il setup di un server di avvia PXE del SystemRescueCd con tutti i servizi in funzione su una singola macchina. Significa che il server DHCP e il server TFTP e il server HTTP sono in esecuzione su una singola macchina della propria rete. Se si vuole eseguire questi servizi su computer separati, per favore leggere la sezione successiva.

Panoramica

Si deve semplicemente avviare un SystemRescueCd da CD/USB/HDD e configurarlo per agire come un server di avvio PXE sulla propria rete locare. La configurazione è molto semplice, si devono soltanto scrivere i propri settaggi in un file di configurazione e avviare il servizio pxebootsrv e questo è tutto. Si può quindi avviare un altro computer con almeno 280MB di memoria dalla rete con PXE.

Passi per configurare PXE sul server

  • Avviare SystemRescueCd da CD/USB/HDD su un computer.
  • Rete con ipconfig e route. Ecco un tipico esempio:
    • ifconfig eth0 192.168.1.5/24
    • route add default gw 192.168.1.254
  • Modificare i propri settaggi di pxe/rete in /etc/conf.d/pxebootsrv
  • Avviare il servizio con /etc/init.d/pxebootsrv start. In caso di errori, controllare il file /var/log/messages per maggiori dettagli.
  • Il computer dovrebbe essere pronto per agire come un server di avvio PXE.

Ecco una copia di un file di configurazione tipico /etc/conf.d/pxebootsrv

# ------------------------ CONFIGURATION -------------------------------
# By default the current systems acts as DHCP and TFTP and HTTP server
# If you want another machine of you network to act as one of those
# you will have to turn the appropriate option yo "no"
# Set to "yes" if you want this machine to act as a DHCP server PXEBOOTSRV_DODHCPD="yes" # Set to "yes" if you want this machine to act as a TFTP server PXEBOOTSRV_DOTFTPD="yes" # Set to "yes" if you want this machine to act as an HTTP server PXEBOOTSRV_DOHTTPD="yes"
# Here is a typical PXE-Boot configuration --> update with your settings PXEBOOTSRV_SUBNET="192.168.1.0" PXEBOOTSRV_NETMASK="255.255.255.0" PXEBOOTSRV_DEFROUTE="192.168.1.254" PXEBOOTSRV_DNS="192.168.1.254" PXEBOOTSRV_DHCPRANGE="192.168.1.100 192.168.1.150" PXEBOOTSRV_LOCALIP="192.168.1.5"
# Keep these values to $PXEBOOTSRV_LOCALIP if the current computer # acts as TFTP server and HTTP server as well as DHCP server PXEBOOTSRV_TFTPSERVER="$PXEBOOTSRV_LOCALIP" # IP address of the TFTP server PXEBOOTSRV_HTTPSERVER="http://$PXEBOOTSRV_LOCALIP/sysrcd.dat" # download URL

Setup del server di avvio PXE su una configurazione personalizzata

Informazioni

In questa sezione si imparerà come installare un ambiente di avvio PXE con i tre servizi (DHCP, TFTP, HTTP) in esecuzione su macchine differenti. Bisogna assicurarsi di aver capito Come funziona il processo di avvio PXE prima di installare il server di avvio PXE con una configurazione diversa dal caso tipico.

Personalizzazione del servizio pxebootsrv

Si può configurare il servizio pxebootsrv perchè funzioni solo con i requisiti che si hanno. Per esempio se si dispone già di un server DHCP funzionante sulla propria rete, si può evitare di installare di nuovo un altro DHCP. In questo caso si può configurare SystemRescueCd pxebootsrv perchè funzioni solo da server TFTP/HTTP. Si deve semplicemente disattivare l'opzione PXEBOOTSRV_DODHCPD in /etc/conf.d/pxebootsrv:

# ------------------------ CONFIGURATION -------------------------------
# By default the current systems acts as DHCP and TFTP and HTTP server
# If you want another machine of you network to act as one of those
# you will have to turn the appropriate option yo "no"
# Set to "yes" if you want this machine to act as a DHCP server PXEBOOTSRV_DODHCPD="no" # Set to "yes" if you want this machine to act as a TFTP server PXEBOOTSRV_DOTFTPD="yes" # Set to "yes" if you want this machine to act as an HTTP server PXEBOOTSRV_DOHTTPD="yes"

Se si utilizza un altro server DHCP, si dovrà aggiornare l'opzione next-server nei settaggi DHCP per essere sicuri che il servizio DHCP mandi l'indirizzo IP del server TFTP al client. Ecco un esempio di come usare quella opzione con il server ISC DHCPD:

next-server 192.168.1.5; # IP addr of the TFTP server

Passi per avviare il client con PXE

  • Controllare che il server di avvio PXE sia pronto a rispondere alle richieste del client PXE.
  • Controllare che il proprio computer client abbia almeno 280MB di RAM.
  • Configurare il proprio BIOS per l'avvio dalla rete mediante PXE.
  • Controllare che il proprio computer sia connesso alla stessa rete del server.
  • Avviare il proprio computer client e dovrebbe funzionare.

Riparare una macchina remota con PXE

SystemRescueCd fornisce un set di [Avvio di SystemRescueCd#Opzioni_generali_di_avvio opzioni di boot] che configurano automaticamente la rete all'avvio. E' molto conveniente usare entrambi rootpass e le opzioni di avvio della rete, significa che si può remotamente avviare SystemRescueCd ed usarlo per Gestire server windows/linux in remoto con ssh. E' molto utile con i server installati in un datacenter.

  • dodhcp: Usare il dodhcp se si dispone di un server DHCP sulla propria rete e si desidera che il sistema ottenga un indirizzo IP dinamico all'avvio.
  • ethx=ipaddr: Setta l'indirizzo IP statico di tutte le interfacce di rete trovate sul sistema. Per esempio, se si usa l'opzione ethx=192.168.0.1 su una macchina con due porte ethernet, entrambi etho ed eth1 verranno configurati con 192.168.0.1. Si può anche scrivere qualcosa come ethx=192.168.0.1/24
  • dns=ipaddr: Setta l'indirizzo IP statico del DNS che si desidera usare per risolvere i nomi. Per esempio dns=192.168.0.254 significa che si desidera usare 192.168.0.254 come server DNS.
  • gateway=ipaddr: Setta l'indirizzo IP statico del default gateway della propria rete. Per esempio gateway=192.168.0.254 significa che il computer può connettersi ad un computer fuori la rete locale mediante 192.168.0.254.
  • rootpass=1234: Setta la password di root del sistema in esecuzione sul livecd a 1234. In questo modo ci si può connettere dalla rete e mediante ssh al livecd e dare 1234 come password di root
spacer