Creare slackware-install-dvd alleggerito
Da Slacky.eu.
Versione delle 19:48, 28 gen 2009, autore: Ansa89 (Discussione | contributi)
Indice |
Descrizione
Con questo script si può creare una iso con dimensioni ridotte per l'installazione di slackware. In pratica il trucco sta nello scaricare solo i primi tre cd (quelli necessari all'installazione), scompattarli e creare una iso con il loro contenuto.
- ATTENZIONE ***
Lo script non può essere usato per creare iso dal ramo CURRENT.
Requisiti
WGET --> home
MKISOFS --> home
Download
slackware-install-dvd_lite-v1.0 (home)
Script
Di seguito è riportato il codice dello script.
Versione 1.0
#!/bin/bash
#
# Questo script scarica i primi tre cd di slackware (necessari per una
# corretta installazione) e crea l'immagine iso da masterizzare su dvd
#
# Script creato il 28/1/2009 da Ansa89 (avrei dovuto studiare analisi...)
# Funzione per controllare le dipendenze
check_dep() {
# Controllo se wget e' installato
if [ -z "$(which wget)" ]; then
echo
echo "Devi avere WGET installato per usare questo script!"
echo
exit 1
fi
# Controllo se mkisofs e' installato
if [ -z "$(which mkisofs)" ]; then
echo
echo "Devi avere MKISOFS installato per usare questo script!"
echo
exit 1
fi
# Controllo se lo script e' eseguito come root
if [ "$(whomai)" == "root" ]; then
echo
echo "Devi eseguire questo script come utente normale!"
echo
exit 1
fi
}
# Dichiarazione variabili
WHOAMI="$(whoami)"
CD_ISO_DIR="$(pwd)"
FINAL_ISO_DIR="/tmp/slackware-install-dvd/"
SLACK_URL="ftp://ftp.fu-berlin.de/unix/linux/mirrors/slackware/"
NUM="d1 d2 d3"
VERSION="12.2"
# Funzione per scaricare i tre cd
download_cd() {
echo
echo "Quale versione di slackware vuoi scaricare?"
echo -ne "($VERSION)\t"
read VER
if [ -z "$VER" ]; then
VER=$VERSION
elif [ "$VER" == "current" ] || [ "$VER" == "-current" ]; then
echo
echo "Questo script funziona solo per il ramo STABLE"
echo "Esco"
echo
exit 1
fi
echo "In quale cartella vuoi salvare le iso? (Usare un path assoluto!!)"
echo -ne "($CD_ISO_DIR)\t"
read DIR
if [ -z $DIR ]; then
DIR=$CD_ISO_DIR
elif ! [ -e $DIR ]; then
mkdir -p $DIR
fi
# Scarico le iso
echo
echo "-- Inizio dowload --"
echo
cd $DIR
for cd_num in $NUM; do
wget -c $SLACK_URL/slackware-$VER-iso/slackware-$VER-install-$cd_num.iso
done
echo
echo "-- Fine download --"
echo
}
# Funzione per scompattare le iso
extract_cd() {
cd $DIR
# Creo la cartella dove copiare il contenuto delle iso
CPY_DIR="$DIR/iso_temp/"
rm -Rf $CPY_DIR
mkdir -p $CPY_DIR
# Creo la cartella dove montare le iso
mkdir ./mnt
for cd_num in $NUM; do
echo "Inserisci la password di root per montare la iso $cd_num"
su -c "mount -t iso9660 -o loop \
slackware-$VER-install-$cd_num.iso ./mnt/ ; \
cp -R ./mnt/* $CPY_DIR ; \
umount slackware-$VER-install-$cd_num.iso"
done
rm -Rf ./mnt
echo "Inserisci la password di root per settare i permessi delle cartelle"
su -c "chown -R $WHOAMI $CPY_DIR"
}
# Funzione per creare la iso finale
final_iso() {
cd $CPY_DIR
echo
echo "-- Inizio creazione iso --"
echo
mkisofs -o $FINAL_ISO_DIR/sackware-$VER-install-dvd.iso \
-R -J -V "Slackware Install" -hide-rr-moved \
-v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table \
-sort isolinux/iso.sort -b isolinux/isolinux.bin \
-c isolinux/isolinux.boot -A "Slackware Install DVD"
if [ "$(echo $?)" != "0" ]; then
echo
echo "Qualcosa non e' andato bene :-("
echo "Esco"
echo
exit 1
else
echo
echo "-- Fine creazione iso --"
echo
echo "Congratulazioni! L'immagine iso e' stata salvata in $FINAL_ISO_DIR"
echo
fi
}
# Controllo le dipendenze
check_dep
case "$1" in
--all)
download_cd
extract_cd
final_iso
exit 0
;;
--create)
echo "Per quale versione di slackware vuoi creare la iso?"
echo -ne "($VERSION)\t"
read VER
if [ -z "$VER" ]; then
VER=$VERSION
elif [ "$VER" == "current" ] || [ "$VER" == "-current" ]; then
echo
echo "Questo script funziona solo per il ramo STABLE"
echo "Esco"
echo
exit 1
fi
echo "In quale cartella sono salvate le iso? (Usare un path assoluto!!)"
echo -ne "($CD_ISO_DIR)\t"
read DIR
if [ -z $DIR ]; then
DIR=$CD_ISO_DIR
elif ! [ -e $DIR ]; then
echo
echo "Path errato!"
echo
exit 1
fi
extract_cd
final_iso
exit 0
;;
*)
echo
echo "Opzioni valide:"
echo "$0 --all --> scarica i cd, li estrae e crea la iso"
echo "$0 --create --> estrae i cd e crea la iso"
echo -e "\t\t(I CD DEVONO ESSERE PRESENTI SU HD)"
echo
echo "Versione 1.0"
echo "By Ansa89 (ansa89@slacky.it || http://stiiv.netsons.org)"
echo
exit 1
;;
esac
#EOF
- Autore: Ansa89