Repository 32bit  Forum
Repository 64bit  Wiki

Creare slackware-install-dvd alleggerito: differenze tra le versioni

Da Slacky.eu.
Riga 4: Riga 4:
** ATTENZIONE **
+
*** ATTENZIONE ***
Lo script non può essere usato per creare iso dal ramo CURRENT.
Lo script non può essere usato per creare iso dal ramo CURRENT.
Riga 12: Riga 12:
MKISOFS --> [http://cdrecord.berlios.de/old/private/mkisofs.html home]
MKISOFS --> [http://cdrecord.berlios.de/old/private/mkisofs.html home]
  +
  +
= Download =
  +
[http://stiiv.netsons.org/modules/wfdownloads/singlefile.php?cid=1&lid=8 slackware-install-dvd_lite-v1.0 (home)]
  +
  +
= Script =
  +
Di seguito è riportato il codice dello script.
  +
  +
Versione 1.0
  +
  +
<pre>
  +
#!/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
  +
</pre>
  +
* Autore: Ansa89

Versione delle 18:48, 28 gen 2009

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
Strumenti personali
Namespace

Varianti