mar
2010
5
Mount di un file ISO su Sun Solaris 8
venerdì, 5 marzo 2010 at 4:57 - Pubblicato da: in Informatica, ScriptingDovendo installare due firewall (Checkpoint) su hardware Sun, ho dovuto “rispolverare” le mie ormai sepolte conoscenze del sistema operativo Unix proprietario di casa Sun Microsystem (di recente acquisizione Oracle).
Devo dire, una volta terminato, che l’operazione non è poi stata così ardua, anzi il risultato ottenuto si presenta pulito e ordinato.
I server utilizzati sono due Netra T1 105 con processory UltraSPARC-II 440MHz (hardware di del 2002 o giù di lì) 512 MB di RAM 2 dischi da 18 GB, 2 schede di rete onboard, una scheda di rete “qfe” (Quad Fast Ethernet) e ovviamente NESSUN lettore cdrom.
Per coloro non avvezzi a questo tipo di hardware, è bene specificare che la famiglia Netra in genere viene fornita SENZA cdrom e non ha (nel senso che NON ESISTE) scheda grafica; l’output video viene inviato alle (2) “LOM” (Lights Out Manager) in pratica, delle porte seriali.
Per l’installazione, non potendo utilizzare la rete vicino ai server per il “Jumpstart” (installazione da rete), ho optato per un lettore CDROM collegato alla posta scsi esterna e una volta installato il sistema operativo minimale (poichè si tratta di firewall) avendo necessità di accedere ai packages necessari ad installare il resto dei servizi “essenziali”, ho realizzato tre immagini ISO dei cdrom (2 per l’OS + 1 per la patch “recommended”), che ho poi trasferto sui dischi interni servendomi del servizio FTP.
Avendo quindi necessità di “saltare” da un disco all’altro, alla ricerca di quanto necessario, per “montare” e “smontare” le ISO velocemente, senza dovermi preoccupare di quale immagine fosse in uso al momento, ho realizzato questo script, che permette di montare l’immagine al “volo” senza dovermi preoccupare di verificare se e quale delle tre fosse in uso.
Lo script è “essenziale”, ovviamente è possibile migliorarlo introducendo qualche controllo di errore, ma sicuramente svolge bene il proprio compito anche così.
La shell utilizzata è la Bash, su Solaris 8 non si tratta di un package installato di default, va quindi installata manualmente dal cdrom #2.
#!/usr/bin/bash
MPOINT=/mnt/iso
LOOPDEV=""
ISOFILE=$2
showhelp() {
echo "Usage:
$0 { isomount isofile }
$0 { isoumount }
$0 { status }"
echo
exit 1
}
checkavail() {
AVAIL=`df -k "$MPOINT" |grep "$MPOINT"`
}
isoumount() {
checkavail
if [ -n "$AVAIL" ]
then
LOOPDEV=`df -k "$MPOINT" |grep "$MPOINT" | awk
'{ print $1 }'`
umount $MPOINT
lofiadm -d $LOOPDEV
fi
}
isomount() {
if [ ! -d $MPOINT ]
then
mkdir -p $MPOINT
fi
x=1
while [ $x -eq 1 ]
do
checkavail
if [ -z "$AVAIL" ]
then
LOOPDEV=`lofiadm -a $ISOFILE`
mount -F hsfs -o ro $LOOPDEV $MPOINT
echo `df -k "$MPOINT" |grep "$MPOINT"`
else
isoumount
x=$(( $x + 1 ))
fi
x=$(( $x - 1 ))
done
}
status() {
STATUS=`df -k "$MPOINT" |grep "$MPOINT"`
if [ -n "$STATUS" ]
then
echo "$STATUS"
else
echo "Nothing Mounted on $MPOINT"
fi
}
if [[ "$1" == "isomount" && -z "$2" ]]
then
showhelp
fi
case "$1" in
isomount)
isomount
;;
isoumount)
isoumount
;;
status)
status
;;
*)
showhelp
esac
exit $?
|

Lascia un commento