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 19: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