Repository 32bit  Forum
Repository 64bit  Wiki

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

Da Slacky.eu.
(Download)
(Script)
Riga 15: Riga 15:
Di seguito è riportato il codice dello script.
Di seguito è riportato il codice dello script.
Versione 1.0
+
Versione 2.0
<pre>
<pre>
Riga 22: Riga 22:
# Questo script scarica i primi tre cd di slackware (necessari per una
# Questo script scarica i primi tre cd di slackware (necessari per una
# corretta installazione) e crea l'immagine iso da masterizzare su dvd
# corretta installazione) e crea l'immagine iso da masterizzare su dvd
#
+
#
# Script creato il 28/1/2009 da Ansa89 (avrei dovuto studiare analisi...)
+
# Script creato il 30/1/2009 da Ansa89 (avrei dovuto studiare analisi...)
# Funzione per controllare le dipendenze
# Funzione per controllare le dipendenze
check_dep() {
check_dep() {
# Controllo se wget e' installato
+
# Controllo se wget e' installato
if [ -z "$(which wget)" ]; then
+
if [ -z "$(which wget)" ]; then
echo
+
echo
echo "Devi avere WGET installato per usare questo script!"
+
echo "Devi avere WGET installato per usare questo script!"
echo
+
echo
exit 1
+
exit 1
fi
+
fi
# Controllo se mkisofs e' installato
+
# Controllo se mkisofs e' installato
if [ -z "$(which mkisofs)" ]; then
+
if [ -z "$(which mkisofs)" ]; then
echo
+
echo
echo "Devi avere MKISOFS installato per usare questo script!"
+
echo "Devi avere MKISOFS installato per usare questo script!"
echo
+
echo
exit 1
+
exit 1
fi
+
fi
# Controllo se lo script e' eseguito come root
+
# Controllo se rsync e' installato
if [ "$(id -u)" == "0" ]; then
+
if [ -z "$(which rsync)" ]; then
echo
+
echo
echo "Devi eseguire questo script come utente normale!"
+
echo "Devi avere RSYNC installato per usare questo script!"
echo
+
echo
exit 1
+
exit 1
fi
+
fi
  +
  +
# Controllo se lo script e' eseguito come root
  +
if [ "$(id -u)" == "0" ]; then
  +
echo
  +
echo "Devi eseguire questo script come utente normale!"
  +
echo
  +
exit 1
  +
fi
}
}
# Dichiarazione variabili
# Dichiarazione variabili
WHOAMI="$(whoami)"
+
USER_ID="$(id -u)"
CD_ISO_DIR="$(pwd)"
CD_ISO_DIR="$(pwd)"
FINAL_ISO_DIR="/tmp/slackware-install-dvd/"
FINAL_ISO_DIR="/tmp/slackware-install-dvd/"
SLACK_URL="ftp://ftp.fu-berlin.de/unix/linux/mirrors/slackware/"
SLACK_URL="ftp://ftp.fu-berlin.de/unix/linux/mirrors/slackware/"
  +
RSYNC_URL="rsync://slackware.mirrors.tds.net/slackware/"
NUM="d1 d2 d3"
NUM="d1 d2 d3"
VERSION="12.2"
VERSION="12.2"
# Funzione per scaricare i tre cd
+
# Funzione per chiedere informazioni all'utente
download_cd() {
+
question() {
echo
+
echo
echo "Quale versione di slackware vuoi scaricare?"
+
echo "Per quale versione di slackware vuoi creare la iso?"
echo -ne "($VERSION)\t"
+
echo -ne "($VERSION)\t"
read VER
+
read VER
if [ -z "$VER" ]; then
+
if [ -z "$VER" ]; then
VER=$VERSION
+
VER=$VERSION
elif [ "$VER" == "current" ] || [ "$VER" == "-current" ]; then
+
fi
echo
+
echo "In quale cartella vuoi salvare i dati? (Usare un path assoluto!!)"
echo "Questo script funziona solo per il ramo STABLE"
+
echo -ne "($CD_ISO_DIR)\t"
echo "Esco"
+
read DIR
echo
+
if [ -z $DIR ]; then
exit 1
+
DIR=$CD_ISO_DIR
fi
+
elif ! [ -e $DIR ]; then
echo "In quale cartella vuoi salvare le iso? (Usare un path assoluto!!)"
+
mkdir -p $DIR
echo -ne "($CD_ISO_DIR)\t"
+
fi
read DIR
+
if [ "$VER" != "current" ] && [ "$VER" != "-current" ]; then
if [ -z $DIR ]; then
+
echo "Vuoi scaricare le iso dei primi tre cd di slackware"
DIR=$CD_ISO_DIR
+
echo "oppure usare rsync? (consigliato rsync)"
elif ! [ -e $DIR ]; then
+
echo -ne "[cd / rsync]\t"
mkdir -p $DIR
+
read MODE
fi
+
else
  +
VER="current"
  +
MODE="rsync"
  +
fi
  +
}
  +
  +
# Funzione per scaricare le tre iso
  +
download_wget() {
# Scarico le iso
+
# Scarico le iso
echo
+
echo
echo "-- Inizio dowload --"
+
echo "-- Inizio dowload --"
echo
+
echo
cd $DIR
+
cd $DIR
for cd_num in $NUM; do
+
for cd_num in $NUM; do
wget -c $SLACK_URL/slackware-$VER-iso/slackware-$VER-install-$cd_num.iso
+
wget -c $SLACK_URL/slackware-$VER-iso/slackware-$VER-install-$cd_num.iso
done
+
done
echo
+
echo
echo "-- Fine download --"
+
echo "-- Fine download --"
echo
+
echo
  +
}
  +
  +
# Funzione per scaricare slackware usando rsync
  +
download_rsync() {
  +
  +
# Creo la cartella dove scaricare i dati
  +
CPY_DIR="$DIR/iso_temp/"
  +
rm -Rf $CPY_DIR
  +
mkdir -p $CPY_DIR
  +
  +
# Scarico i dati
  +
echo
  +
echo "-- Inizio dowload --"
  +
echo
  +
cd $DIR
  +
rsync -avzh --progress --delete --delete-after \
  +
--exclude="source" \
  +
--exclude="extra/source" \
  +
--exclude="pasture/source" \
  +
--exclude="testing" \
  +
$RSYNC_URL/slackware-$VER/ $CPY_DIR
  +
echo
  +
echo "-- Fine download --"
  +
echo
}
}
# Funzione per scompattare le iso
# Funzione per scompattare le iso
extract_cd() {
extract_cd() {
cd $DIR
+
cd $DIR
# Creo la cartella dove copiare il contenuto delle iso
+
# Creo la cartella dove copiare il contenuto delle iso
CPY_DIR="$DIR/iso_temp/"
+
CPY_DIR="$DIR/iso_temp/"
rm -Rf $CPY_DIR
+
rm -Rf $CPY_DIR
mkdir -p $CPY_DIR
+
mkdir -p $CPY_DIR
# Creo la cartella dove montare le iso
+
# Creo la cartella dove montare le iso
mkdir ./mnt
+
mkdir ./mnt
for cd_num in $NUM; do
+
for cd_num in $NUM; do
echo "Inserisci la password di root per montare la iso $cd_num"
+
echo "Inserisci la password di root per montare la iso $cd_num"
su -c "mount -t iso9660 -o loop \
+
su -c "mount -t iso9660 -o loop \
slackware-$VER-install-$cd_num.iso ./mnt/ ; \
+
slackware-$VER-install-$cd_num.iso ./mnt/ ; \
cp -R ./mnt/* $CPY_DIR ; \
+
cp -R ./mnt/* $CPY_DIR ; \
umount slackware-$VER-install-$cd_num.iso"
+
umount slackware-$VER-install-$cd_num.iso"
done
+
done
rm -Rf ./mnt
+
rm -Rf ./mnt
echo "Inserisci la password di root per settare i permessi delle cartelle"
+
echo "Inserisci la password di root per settare i permessi delle cartelle"
su -c "chown -R $WHOAMI $CPY_DIR"
+
su -c "chown -R $USER_ID $CPY_DIR"
}
}
# Funzione per creare la iso finale
# Funzione per creare la iso finale
final_iso() {
final_iso() {
cd $CPY_DIR
+
cd $CPY_DIR
echo
+
echo
echo "-- Inizio creazione iso --"
+
echo "-- Inizio creazione iso --"
echo
+
echo
mkisofs -o $FINAL_ISO_DIR/sackware-$VER-install-dvd.iso \
+
mkisofs -o $FINAL_ISO_DIR/sackware-$VER-install-dvd.iso \
-R -J -V "Slackware Install" -hide-rr-moved \
+
-R -J -V "Slackware Install" -hide-rr-moved \
-v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table \
+
-v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table \
-sort isolinux/iso.sort -b isolinux/isolinux.bin \
+
-sort isolinux/iso.sort -b isolinux/isolinux.bin \
-c isolinux/isolinux.boot -A "Slackware Install DVD"
+
-c isolinux/isolinux.boot -A "Slackware Install DVD"
if [ "$(echo $?)" != "0" ]; then
+
if [ "$(echo $?)" != "0" ]; then
echo
+
echo
echo "Qualcosa non e' andato bene :-("
+
echo "Qualcosa non e' andato bene :-("
echo "Esco"
+
echo "Esco"
echo
+
echo
exit 1
+
exit 1
else
+
else
echo
+
echo
echo "-- Fine creazione iso --"
+
echo "-- Fine creazione iso --"
echo
+
echo
echo "Congratulazioni! L'immagine iso e' stata salvata in $FINAL_ISO_DIR"
+
echo "Congratulazioni! L'immagine iso e' stata salvata in $FINAL_ISO_DIR"
echo
+
echo
fi
+
fi
}
}
Riga 150: Riga 151:
check_dep
check_dep
  +
# Controllo il parametro passato allo script
case "$1" in
case "$1" in
--all)
+
--all)
download_cd
+
question
extract_cd
+
if [ -z "$MODE" ] || [ "$MODE" == "rsync" ] || [ "$MODE" == "RSYNC" ]; then
final_iso
+
download_rsync
exit 0
+
elif [ "$MODE" == "cd" ] || [ "$MODE" == "CD" ]; then
;;
+
download_wget
+
extract_cd
--create)
+
fi
echo "Per quale versione di slackware vuoi creare la iso?"
+
final_iso
echo -ne "($VERSION)\t"
+
exit 0
read VER
+
;;
if [ -z "$VER" ]; then
+
VER=$VERSION
+
--create-from-cd)
elif [ "$VER" == "current" ] || [ "$VER" == "-current" ]; then
+
echo "Per quale versione di slackware vuoi creare la iso?"
echo
+
echo -ne "($VERSION)\t"
echo "Questo script funziona solo per il ramo STABLE"
+
read VER
echo "Esco"
+
if [ -z "$VER" ]; then
echo
+
VER=$VERSION
exit 1
+
elif [ "$VER" == "current" ] || [ "$VER" == "-current" ]; then
fi
+
echo
echo "In quale cartella sono salvate le iso? (Usare un path assoluto!!)"
+
echo "Questa opzione funziona solo per il ramo STABLE"
echo -ne "($CD_ISO_DIR)\t"
+
echo -e "Magari prova con \"--create-from-dir\""
read DIR
+
echo "Esco"
if [ -z $DIR ]; then
+
echo
DIR=$CD_ISO_DIR
+
exit 1
elif ! [ -e $DIR ]; then
+
fi
echo
+
echo "In quale cartella sono salvate le iso? (Usare un path assoluto!!)"
echo "Path errato!"
+
echo -ne "($CD_ISO_DIR)\t"
echo
+
read DIR
exit 1
+
if [ -z $DIR ]; then
fi
+
DIR=$CD_ISO_DIR
extract_cd
+
elif ! [ -e $DIR ]; then
final_iso
+
echo
exit 0
+
echo "Path errato!"
;;
+
echo
+
exit 1
*)
+
fi
echo
+
extract_cd
echo "Opzioni valide:"
+
final_iso
echo "$0 --all --> scarica i cd, li estrae e crea la iso"
+
exit 0
echo "$0 --create --> estrae i cd e crea la iso"
+
;;
echo -e "\t\t(I CD DEVONO ESSERE PRESENTI SU HD)"
+
echo
+
--create-from-dir)
echo "Versione 1.0"
+
echo "Per quale versione di slackware vuoi creare la iso?"
echo "By Ansa89 (ansa89@slacky.it || http://stiiv.netsons.org)"
+
echo -ne "($VERSION)\t"
echo
+
read VER
exit 1
+
if [ -z "$VER" ]; then
;;
+
VER=$VERSION
  +
elif [ "$VER" == "-current" ]; then
  +
VER="current"
  +
fi
  +
echo "In quale cartella sono salvate le iso? (Usare un path assoluto!!)"
  +
echo -ne "($CD_ISO_DIR/iso_temp/)\t"
  +
read CPY_DIR
  +
if [ -z $CPY_DIR ]; then
  +
CPY_DIR="$CD_ISO_DIR/iso_temp/"
  +
elif ! [ -e $CPY_DIR ]; then
  +
echo
  +
echo "Path errato!"
  +
echo
  +
exit 1
  +
fi
  +
final_iso
  +
exit 0
  +
;;
  +
*)
  +
echo
  +
echo "Opzioni valide:"
  +
echo "--all --> scarica i dati e crea la iso"
  +
echo "--create-from-cd --> estrae i cd e crea la iso"
  +
echo -e "\t\t(I CD DEVONO ESSERE PRESENTI SU HD)"
  +
echo "--create-from-dir --> crea la iso usando il contenuto di una cartella"
  +
echo
  +
echo "Versione 2.0"
  +
echo "By Ansa89 (ansa89@slacky.it || http://stiiv.netsons.org)"
  +
echo
  +
exit 1
  +
;;
esac
esac
#EOF
#EOF

Versione delle 13:43, 30 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.

Requisiti

WGET --> home

RSYNC --> home

MKISOFS --> home

Download

slackware-install-dvd_lite-v2.0 (home)

Script

Di seguito è riportato il codice dello script.

Versione 2.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 30/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 rsync e' installato
	if [ -z "$(which rsync)" ]; then
		echo
		echo "Devi avere RSYNC installato per usare questo script!"
		echo
		exit 1
	fi

	# Controllo se lo script e' eseguito come root
	if [ "$(id -u)" == "0" ]; then
		echo
		echo "Devi eseguire questo script come utente normale!"
		echo
		exit 1
	fi
}

# Dichiarazione variabili
USER_ID="$(id -u)"
CD_ISO_DIR="$(pwd)"
FINAL_ISO_DIR="/tmp/slackware-install-dvd/"
SLACK_URL="ftp://ftp.fu-berlin.de/unix/linux/mirrors/slackware/"
RSYNC_URL="rsync://slackware.mirrors.tds.net/slackware/"
NUM="d1 d2 d3"
VERSION="12.2"

# Funzione per chiedere informazioni all'utente
question() {
	echo
	echo "Per quale versione di slackware vuoi creare la iso?"
	echo -ne "($VERSION)\t"
	read VER
	if [ -z "$VER" ]; then
		VER=$VERSION
	fi
	echo "In quale cartella vuoi salvare i dati? (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
	if [ "$VER" != "current" ] && [ "$VER" != "-current" ]; then
		echo "Vuoi scaricare le iso dei primi tre cd di slackware"
		echo "oppure usare rsync? (consigliato rsync)"
		echo -ne "[cd / rsync]\t"
		read MODE
	else
		VER="current"
		MODE="rsync"
	fi
}

# Funzione per scaricare le tre iso
download_wget() {

	# 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 scaricare slackware usando rsync
download_rsync() {

	# Creo la cartella dove scaricare i dati
	CPY_DIR="$DIR/iso_temp/"
	rm -Rf $CPY_DIR
	mkdir -p $CPY_DIR

	# Scarico i dati
	echo
	echo "-- Inizio dowload --"
	echo
	cd $DIR
	rsync -avzh --progress --delete --delete-after \
		--exclude="source" \
		--exclude="extra/source" \
		--exclude="pasture/source" \
		--exclude="testing" \
		$RSYNC_URL/slackware-$VER/ $CPY_DIR
	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 $USER_ID $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

# Controllo il parametro passato allo script
case "$1" in
	--all)
		question
		if [ -z "$MODE" ] || [ "$MODE" == "rsync" ] || [ "$MODE" == "RSYNC" ]; then
			download_rsync
		elif [ "$MODE" == "cd" ] || [ "$MODE" == "CD" ]; then
			download_wget
			extract_cd
		fi
		final_iso
		exit 0
		;;
	
	--create-from-cd)
		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 "Questa opzione funziona solo per il ramo STABLE"
			echo -e "Magari prova con \"--create-from-dir\""
			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
		;;
	
	--create-from-dir)
		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" ]; then
			VER="current"
		fi
		echo "In quale cartella sono salvate le iso? (Usare un path assoluto!!)"
		echo -ne "($CD_ISO_DIR/iso_temp/)\t"
		read CPY_DIR
		if [ -z $CPY_DIR ]; then
			CPY_DIR="$CD_ISO_DIR/iso_temp/"
		elif ! [ -e $CPY_DIR ]; then
			echo
			echo "Path errato!"
			echo
			exit 1
		fi
		final_iso
		exit 0
		;;	
	*)
		echo
		echo "Opzioni valide:"
		echo "--all --> scarica i dati e crea la iso"
		echo "--create-from-cd --> estrae i cd e crea la iso"
		echo -e "\t\t(I CD DEVONO ESSERE PRESENTI SU HD)"
		echo "--create-from-dir --> crea la iso usando il contenuto di una cartella"
		echo
		echo "Versione 2.0"
		echo "By Ansa89 (ansa89@slacky.it || http://stiiv.netsons.org)"
		echo
		exit 1
		;;
esac
#EOF
  • Autore: Ansa89

Feedback

Per commenti e suggerimenti inviatemi una e-mail a

ansa89[AT]slacky[DOT]it


Oppure venite sul mio sito internet

http://stiiv.netsons.org


HAVE A LOT OF FUN

Strumenti personali
Namespace

Varianti