giovedì, Novembre 21, 2024

Solaris Netinstall su SPARC da server Linux/BSD

Alessandro Torchia
Alessandro Torchiahttp://www.areanetworking.it
Trent'anni, sistemista Unix, specializzato su Solaris, sistema Operativo di casa Sun. Attualmente lavora come consulente presso una delle aziende sanitarie presenti sul territorio italiano. Certificato Sun SCSA (Solaris Certified System Administrator) e Sun SCNA (Solaris Certified Network Administrator), è responsabile dei sistemi cluster Sun SPARC Midrange, e della Storage Area Network FC presenti nei CED dell'azienda. Attualmente studia per conseguire la certificazione Sun Cluster 3.2 Administrator. In passato ha lavorato in ambito networking presso varie realtà prevalentemente su apparati Cisco e Nortel. Ha frequentato l'Academy CCNA e Fundamentals of Wireless, e cerca di mantenere vive le conoscenze acquisite in quest'ambito, nonostante la sua predilezione per l'ambito sistemistico Unix e la passione per Solaris siano la sua prima scelta.

Intro

Sono di recente venuto in possesso di una “antica” SPARC Ultra1 headless e non dotata di lettore CD. Il sistema operativo preinstallato era un Linux, e insoddisfatto, mi sono detto: avrà mica speso questa manciata di euro per una “noiosa”, “solita” macchina Linux o BSD? Con le “tasche piene” (e anche quasi tutte le mie macchine) di sistemi Linux, ho deciso di soddisfare un desiderio che da troppo tempo turbava il mio subconscio, vedere Solaris, il sistema operativo di Sun, “girare” sulla sua architettura prediletta. Come installarlo se non via rete, con l’ausilio di una console seriale per riuscire nell’impresa?

Il Dilemma

Alla ricerca di informazioni in giro per la rete sono giunto davanti all’evidenza dell’inevitabilità di dovermi dannare l’anima prima di riuscire ad avere qualcosa di sano e funzionante. Le possibilità erano fondamentalmente due: – Usare il sistema di installazione da rete di Sun, incluso in Solaris; il che avrebbe richiesto un sistema Solaris già funzionante e molto poco lavoro e grattacapi, essendo il metodo composto di scripts preconfezionati per installare da rete – da e su – varie combinazioni di architetture e media disponibili. – Sfortunatamente e ovviamente, secondo Sun, non esiste altro metodo che il suddetto, e il pensiero che il server di installazione usato sia dotato di altro OS, non li sfiora minimamente. Quindi, sporadici e un pò incasinate guide all’installazione sparse per la rete, sono le uniche informazioni che sono riuscito a trovare, grazie a una ricerca estesa, molto molto estesa.

Naturalmente sono andato per la seconda scelta, e qual’ora le informazioni che cercate contemplino l’installazione da server Solaris, vi rimando al sito Sun e alla sezione apposita dove troverete tutta la documentazione necessaria. Qui.

Preparazione e Teoria

Il necessaire per questa installazione da server Linux/BSD è il seguente:
– Cavo Seriale null-Modem (praticamente lo standard su hardware Sun, con poche eccezioni)
Una macchina Linux/BSD dotata di:
– La DVD ISO di Solaris 8/9/10
– Minicom o simile
– Rarpd
– Tftpd
– BootParamd
– Nfsd
– Rpcbind
– Mettere SPARC e server Linux/BSD in rete (stessa subnet secondo questa guida)

In poche parole, questo è ciò che avviene:
la sparc boota, con un nostro “piccolo” aiuto, e tramite una richiesta a broadcast a cui darà risposta un demone Rarp, ottiene un proprio IP; a questo punto, dotata di indirizzamento logico è in grado di eseguire richiesta per il file di boot al demone tftp, chiamandolo con un nome che è l’equivalente in Hex del proprio IP. tftp glielo serve e inizia il boot. Questo file, inetboot, si occupa di caricare il kernel via rete. E’ l’equivalente per postazioni diskless del file ufsboot, che è invece in grado di avviare il kernel da disco. A questo punto son necessari due punti di mount NFS, contenenti rispettivamente un file system root minimale temporaneo e il contenuto del cd di installazione. Le informazioni necessarie alla SPARC per individuare questi due punti di mount, sono passati via BootParamd. A questo punto, viene caricato il sistema operativo temporaneo e poi viene fatto partire l’installer.
E il resto potete immaginarlo…

La Pratica: reperire il materiale

Sulla mia SPARC, ho dovuto installare Solaris9, in quanto la versione 10 richiede risorse minime al di fuori della portata del vetusto hardware di una Ultra1 (cpu =>250mhz); semplicemente Solaris10 rifiuta di installarsi (si, ci ho provato), quindi, dopo aver subito lo smacco ho deciso di prendere più sul serio la documentazione Sun e i requisiti minimi di sistema indicati, e son passato alla versione 9, non senza fastidio. Cercando informazioni, ho appreso che ci sarebbe la possibilità di installare comunque Solaris10 su Ultra1, facendo delle modifiche ai contenuti dell’installer, ma non ho approfondito, ne ha importanza ai fini di questa guida.
Se avete un hardware superiore installate Solaris10, questo è quanto. Al momento in cui scrivo è uscita la prima Update u1. Cominciate a scaricare il DVD, visto che ci metterà un pò anche se avete una connessione decente: Get Solaris10
Se non avete un lettore DVD, niente paura, non vi serve, tanto ci limiteremo a montare la ISO. Quindi registratevi, scaricate i 5 segmenti del DVD versione 01/06 e poi, dopo averli scompattati incollateli con cat.

Se siete fra i più intraprendenti, e volete deviare dalla guida, mi raccomando, di utilizzare comunque il DVD, in quanto i CD di installazione contengono componenti che ci sono necessari, “nascosti” in una slice che non sarete in grado di montare se non sotto Solaris (se qualcuno ha informazioni su questo, sono ben accette, magari qualche tool esiste). Questi componenti, nel DVD, sono accessibili senza problema alcuno nella directory Solaris_X/Tools.

Per la mia installazione mi sono appoggiato a due macchine, una Linux per servire i componenti di installazione, e un BSD per la connessione seriale con Minicom e poche altre cosette. Questa è stata una scelta dettata dalla comodità. Voi potete fare tutto senza problemi da un singolo sistema, o invertire usando BSD come server, insomma, fate vobis. Prenderemo come reference Debian GNU/Linux, tenendo conto che tutto si può adattare senza problemi a qualsiasi altra distribuzione o a *BSD. Detto questo:

apt-get install tftpd-hpa bootparamd rarpd nfs-kernel-server minicom

Configurazione del Server di installazione

I servizi appena installati vanno configurati per servire il necessario al boot del sistema minimo e all’installer. Io ho preferito avviare tutti i servizi in modalità debug, in modo da poter tracciare istantaneamente qualsiasi problema possa occorrere. Se uno dei servizi interessati dovesse essere mal configurato o avesse problemi legati a motivi terzi, sarebbe facile accorgersene. Se volete fare in questo modo, dovete necessariamente tener conto della eventuale gestione di questi servizi da parte di inetd andando a commentare nel file /etc/inetd.conf le righe interessate o modificandole, riavviando poi il demone inet. Inoltre montiamo la iso di Solaris, dalla quale dovremo prendere alcuni files e che naturalmente servirà per il resto dell’installazione:

mount -o ~/loop solaris-9-dvd.iso /vcdrom 

Configurare rarpd

Cominciamo col demone Reverse ARP: esso fa riferimento al file /etc/ethers per dispensare indirizzi ip in base a chi fa la richiesta. La sintassi è semplicissima, un cat autoesplicativo:

wallbox:/films# cat /etc/ethers 
08:00:20:86:af:87       10.0.0.10

Una richiesta pervenuta dal mac address 08:00:20:86:af:87 (l’unica eth della mia SPARC), vedrebbe rispondersi l’assegnazione dell’ip 10.0.0.10. Questo è appunto ciò che succede facendo partire il boot da rete di OBP. Avviamo il demone rarp dedicandogli un prompt:

wallbox:/films# rarpd -Avde

A voi il compito di scoprire cosa fa ciascuna opzione servendovi di man rarpd. Potete “scoprire” il mac address della scheda di rete digitando il comando “banner” all’ok prompt della SPARC.

Configurare tftpd

La scelta dell’indirizzo ip va a influenzare il nome del file di boot che la SPARC andrà a richiedere al prossimo servizio coinvolto: tftpd. Infatti, la prossima azione che la vostra SPARC andrà a svolgere, sarà richiedere a broadcast via tftp un file con nome l’equivalente esadecimale dell’indirizzo ip che ha appena ricevuto da rarpd. Prepariamo una directory /sol che farà da root per il server tftp, copiamoci dentro il necessario e avviamo il demone:

mkdir /sol
cp /vcdrom/Solaris_9/Tools/Boot/usr/platform/sun4u/lib/fs/nfs/inetboot /sol
cd /sol
ln -s inetboot 0A00000A
chown -R nobody:nogroup /sol (facoltativo se non usate inetd)
/usr/sbin/in.tftpd -l -s /sol

l’immagine di boot viene copiata nella root del server tftp, e linkata al nome di file che la SPARC si aspetta di trovare, ovvero, come detto precedentemente, la trasposizione in esadecimale del proprio indirizzo IP. E’ necessario fare un chown in modo che i files siano leggibili e servibili dal demone tftp via inetd.

inetboot verrà caricato dalla SPARC e procederà con la prossima richiesta. Naturalmente dovrete sostituire “sun4u” nel path con l’architettura della vostra macchina, che nel mio caso è una Ultra1

Configurare Bootparamd

Bootparamd è appunto un servizio che passa i parametri di boot; fa riferimento a l file /etc/bootparams per sapere cosa passare o meno a chi fa richieste. La vostra SPARC ha bisogno di conoscere il path della root di un file system minimo bootabile, e successivamente dove trovare il contenuto del cdrom di installazione. Il tutto verrà poi servito via NFS. Il sistema minimo di boot si trova nel DVD; lo copieremo nella dir /sol

cp -R /vcdrom/Solaris_9/Tools/Boot /sol/

Inoltre dovremo fare l’advertisement con bootparamd di questa posizione e di quella del cdrom montato. Ecco /etc/bootparams:

sunbox root=wallbox:/sol/Boot install=wallbox:/vcdrom boottype=:in root_opts=:rsize=8192

bootparamd fa riferimento al file /etc/hosts per risolvere i nomi dei sistemi coinvolti nella configurazione:

wallbox# cat /etc/hosts
10.0.0.10       sunbox
10.0.0.50       wallbox

Avviamo Bootparamd:

bootparamd -d -r 10.0.0.50

Questo è quanto per quanto riguarda Bootparamd. Naturalmente c’è bisogno di un server nfs che serva i percorsi.

Configurare nfs server

La SPARC sa dove trovare la root del filesystem e anche il cdrom di installazione. Chiederà che gli vengano servite via nfs. Quindi aggiungiamo questi due percorsi nel file /etc/exports:

/sol/Boot    10.0.0.0/8(sync,ro,no_root_squash)
/vcdrom        10.0.0.0/8(sync,ro,no_root_squash)

e avviamo il server nfs, che, se abbiamo scelto la versione kernel-space, necessita del solo:

/etc/init.d/nfs-kernel-server start

Se non dimentico qualcosa :), dovrebbe essere tutto pronto…

E via all’installazione

Possiamo accendere la nostra SPARC, premurandoci di metterla in rete, necessariamente nella stessa subnet del server di installazione. Ci sono un paio di variabili che potete impostare da OBP per aiutare il boot del vostro sistema. Potete digitare “help” al prompt per avere una descrizione dei principali comandi disponibili. Noi imposteremo:

setenv keymap=it     (tastiera in italico!)
setenv boot-file=kernel/sparcv9/unix  (kernel 64bit)

Potete anche impostare boot-device a “net” ricordandovi che al boot da sistema installato dovrete poi reimpostarla al disco in cui avete installato Solaris, nel mio caso disk1.

Ora prompt ok potete digitare: boot net. Potete usare le options -rv per avere più informazioni.

ok boot net                                                                     
Boot device: /sbus/SUNW,hme@e,8c00000  File and args: kernel/sparcv9/unix       
Timeout waiting for ARP/RARP packet                                             
SunOS Release 5.9 Version Generic_118558-11 64-bit                              
Copyright 1983-2003 Sun Microsystems, Inc.  All rights reserved.                
Use is subject to license terms.                                                
Configuring /dev and /devices                                                   
Using RPC Bootparams for network configuration information.                     
Configured interface hme0                                               
Searching for configuration file(s)...                                          
Search complete.      

Se tutto va come deve, vedrete apparire un output come quello qui sopra, o simile. Un problema che potreste incontrare è uno “stallo” del boot nel punto dove leggete “Configured interface hme0”. Dalle informazioni che ho reperito, dovrebbe essere un sistema di controllo o qualcosa del genere, dal momento che l’installazione continua inviando un echo request alla volta della SPARC dal server di installazione. Nel caso, nonostante il ping, il boot non dovesse continuare c’è una piccola operazione da fare. Nel file system root, c’è uno script, dal nome “get_netmask”, che è la causa del problema. E’ sufficiente rimuoverlo:

rm /sol/boot/sbin/get_netmask

e ripetere l’installazione premendo CTRL+A e poi F se state usando Minicom (che equivale al segnale di Break), e ripetendo il boot (net) al prompt ok

Epilogo

L’installazione avrà inizio con la scelta della lingua, schermata classica, che rassicurerà chi ha familiarità con l’installer di Solaris. Da lì in poi l’installazione è pressochè simile a quella da DVD, e quindi questa guida ha esaurito i suoi argomenti. Vi lascio, se ne sentite il bisogno, a una delle tante guide che coprono l’installazione di Solaris, comprese quelle ufficiali, reperibili qui

come al solito, vi invito a scrivermi per qualsivoglia chiarimento, aggiunta, correzione, estensione: insomma, tutto ciò che può giovare a questo articolo e migliorarlo. Il mio indirizzo: [email protected]

Alla prossima, sempre qui su AreaNetworking.

Articoli correlati

Noleggia una Tesla per il tuo evento ICT!

Categorie