<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.sachsen.schule/dwiki/index.php?action=history&amp;feed=atom&amp;title=Diskussion%3AEntwicklerhandbuch%2FCD_remastern</id>
	<title>Diskussion:Entwicklerhandbuch/CD remastern - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sachsen.schule/dwiki/index.php?action=history&amp;feed=atom&amp;title=Diskussion%3AEntwicklerhandbuch%2FCD_remastern"/>
	<link rel="alternate" type="text/html" href="https://wiki.sachsen.schule/dwiki/index.php?title=Diskussion:Entwicklerhandbuch/CD_remastern&amp;action=history"/>
	<updated>2026-05-05T20:58:49Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Delixs</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.sachsen.schule/dwiki/index.php?title=Diskussion:Entwicklerhandbuch/CD_remastern&amp;diff=6966&amp;oldid=prev</id>
		<title>ThorstenStrusch: das script</title>
		<link rel="alternate" type="text/html" href="https://wiki.sachsen.schule/dwiki/index.php?title=Diskussion:Entwicklerhandbuch/CD_remastern&amp;diff=6966&amp;oldid=prev"/>
		<updated>2009-05-06T10:10:53Z</updated>

		<summary type="html">&lt;p&gt;das script&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#set -e&lt;br /&gt;
#set -x&lt;br /&gt;
#&lt;br /&gt;
# Dieses Script verpackt alle installierten Pakete zurück in debs und erstellt&lt;br /&gt;
# auf Basis des debian netinst-ISOs eine InstallationsISO mit eben den Paketen&lt;br /&gt;
# dieses Rechners. - mehr kann es derzeit nicht.&lt;br /&gt;
# ABER:&lt;br /&gt;
# =&amp;gt; Nichtmal die Installation läuft durch. Weder etch noch lenny wollen laufen.&lt;br /&gt;
# =&amp;gt; Ich breche hier ab und nehme simple-cdd.&lt;br /&gt;
#&lt;br /&gt;
# Was dieses Script aber gut kann, ist die installierten Pakete einzutüten in&lt;br /&gt;
# debs und in eine valide Ordnerstruktur zu packen. Als zusätzliche CD für&lt;br /&gt;
# apt-cdrom eignet sie sich allemal.&lt;br /&gt;
#&lt;br /&gt;
###############################################################################&lt;br /&gt;
# Copyright (C) 2009 Thorsten Strusch &amp;lt;post@thorstenstrusch.de&amp;gt;&lt;br /&gt;
###############################################################################&lt;br /&gt;
# GPL2&lt;br /&gt;
# This program is free software; you can redistribute it and/or modify it under&lt;br /&gt;
# the terms of the GNU General Public License as published by the Free Software&lt;br /&gt;
# Foundation; either version 2 of the License, or (at your option) any later&lt;br /&gt;
# version.&lt;br /&gt;
#&lt;br /&gt;
# This program is distributed in the hope that it will be useful, but WITHOUT&lt;br /&gt;
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS&lt;br /&gt;
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more&lt;br /&gt;
# details.&lt;br /&gt;
#&lt;br /&gt;
# You should have received a copy of the GNU General Public License along with&lt;br /&gt;
# this program; if not, write to the Free Software Foundation, Inc., 51&lt;br /&gt;
# Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.&lt;br /&gt;
###############################################################################&lt;br /&gt;
&lt;br /&gt;
# Proxy?&lt;br /&gt;
#export http_proxy=&amp;quot;http://proxy:8080&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Verzeichnisse:&lt;br /&gt;
# deb_src       hier kannst du Pakete reinlegen, die mit in das ISO sollen  &amp;lt;---&lt;br /&gt;
# debsrc        hier legt dpkg-repack die zusammengebauten Debianpakete ab&lt;br /&gt;
# netinst-iso   hier liegt das debian iso, welches als Ausgangsimage dient&lt;br /&gt;
# netinst-loop  hierher wird das image gemountet&lt;br /&gt;
# iso-build     hier wird die CD zusammengebaut&lt;br /&gt;
# iso           hier liegt das fertige Image (CD oder DVD)&lt;br /&gt;
mkdir -p netinst-{iso,loop} deb{src,_cust} iso{,-build/db}&lt;br /&gt;
&lt;br /&gt;
# Die Farben:&lt;br /&gt;
GRUEN=&amp;quot;\033[0;42;34m&amp;quot;&lt;br /&gt;
ROT=&amp;quot;\033[0;0;31m&amp;quot;&lt;br /&gt;
EXIT=&amp;quot;\033[0;0;39m&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
if [ $UID -ne 0 ] ; then&lt;br /&gt;
  echo -e &amp;quot;${ROT}$0 bitte als root aufrufen${EXIT}&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# XXX&lt;br /&gt;
# auf alle benötigte Software testen:&lt;br /&gt;
# · wget&lt;br /&gt;
# · awk&lt;br /&gt;
# · dpkg-repack&lt;br /&gt;
# · apt-utils&lt;br /&gt;
# . genisoimage&lt;br /&gt;
# · rsync&lt;br /&gt;
# · loop-support möglich?&lt;br /&gt;
&lt;br /&gt;
export MYOLDPWD=$PWD&lt;br /&gt;
export BASEPWD=$(dirname $(readlink -f $0))&lt;br /&gt;
&lt;br /&gt;
# trap setzen&lt;br /&gt;
on_exit() {&lt;br /&gt;
	set +e&lt;br /&gt;
	cd $BASEPWD&lt;br /&gt;
	echo -e &amp;quot;${GRUEN}exit: Ich räume nicht vollständig erstellte Paketreste aus dem Weg${EXIT}&amp;quot;&lt;br /&gt;
	rm -rf  ${BASEPWD}/debsrc/dpkg-repack-* 2&amp;gt;/dev/null&lt;br /&gt;
	rm $TMPFILE 2&amp;gt;/dev/null&lt;br /&gt;
	echo -e &amp;quot;${GRUEN}exit: Ich umounte das ISO${EXIT}&amp;quot;&lt;br /&gt;
	umount ${BASEPWD}/netinst-loop 2&amp;gt;/dev/null&lt;br /&gt;
	echo -e &amp;quot;${GRUEN}exit: Schönen Tag noch =)${EXIT}&amp;quot;&lt;br /&gt;
	cd $MYOLDPWD&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
trap on_exit EXIT&lt;br /&gt;
&lt;br /&gt;
export ARCHITECTURE=$(dpkg --print-architecture)&lt;br /&gt;
KERNEL=$(uname -r)&lt;br /&gt;
export KERNEL=${KERNEL%%-*}&lt;br /&gt;
&lt;br /&gt;
export DEBVERSION=$(cat /etc/debian_version)&lt;br /&gt;
# Seit lenny steckt das Release mit drin (z.B. 5.0.1), ich brauche nur die 1. 3 Zeichen:&lt;br /&gt;
export DEBVERSION3=${DEBVERSION:0:3}&lt;br /&gt;
&lt;br /&gt;
# Name des netinst.iso bestimmen&lt;br /&gt;
case $DEBVERSION3 in&lt;br /&gt;
	3.0) # woody&lt;br /&gt;
		echo -e &amp;quot;${ROT}sorry unter woody habe ich das Script nicht ausprobiert.\n&lt;br /&gt;
		dpkg-repack gibts hier noch nicht und auch der d-i war noch nicht soweit.${EXIT}&amp;quot;&lt;br /&gt;
		DEBIANNAME=&amp;quot;woddy&amp;quot;&lt;br /&gt;
		exit 1&lt;br /&gt;
		;;&lt;br /&gt;
	3.1) # sarge&lt;br /&gt;
		echo -e &amp;quot;${ROT}sorry unter sarge habe ich das Script nicht ausprobiert.\n&lt;br /&gt;
		evtl. später mal.${EXIT}&amp;quot;&lt;br /&gt;
		DEBIANNAME=&amp;quot;sarge&amp;quot;&lt;br /&gt;
		exit 1&lt;br /&gt;
		;;&lt;br /&gt;
	4.0) # ein etch System - derzeit old-stable&lt;br /&gt;
		echo -e &amp;quot;${GRUEN}Ich schaue online nach, wie das aktuellste release für etch lautet.\nWenn es hier hängt, trag den Proxy ein!${EXIT}&amp;quot;&lt;br /&gt;
		# XXX den tail und tr Aufruf durch awk ersetzen&lt;br /&gt;
		export RELEASE=$(wget -O - http://cdimage.debian.org/cdimage/archive/ 2&amp;gt;/dev/null | awk -F \&amp;quot; &amp;#039;/4.0/ {print $6}&amp;#039; | tail -1 | tr -d &amp;#039;4.0_/&amp;#039;)&lt;br /&gt;
		case $KERNEL in&lt;br /&gt;
			2.6.18) # Standard kernel erkannt&lt;br /&gt;
				ISOSRC=&amp;quot;debian-40${RELEASE}-${ARCHITECTURE}-netinst.iso&amp;quot;&lt;br /&gt;
				;;&lt;br /&gt;
			2.6.24) # etch n a half kernel erkannt&lt;br /&gt;
				ISOSRC=&amp;quot;debian-40${RELEASE}-etchnhalf-${ARCHITECTURE}-netinst.iso&amp;quot;&lt;br /&gt;
				;;&lt;br /&gt;
			*) # muss ein eigener kernel sein, wir nehmen die etchnhalf CD!&lt;br /&gt;
				ISOSRC=&amp;quot;debian-40${RELEASE}-etchnhalf-${ARCHITECTURE}-netinst.iso&amp;quot;&lt;br /&gt;
				;;&lt;br /&gt;
		esac&lt;br /&gt;
		# Quelle der etch netinst-isos:&lt;br /&gt;
		ISOURL=&amp;quot;http://cdimage.debian.org/cdimage/archive/4.0_${RELEASE}/${ARCHITECTURE}/iso-cd/&amp;quot;&lt;br /&gt;
		DEBIANNAME=&amp;quot;etch&amp;quot;&lt;br /&gt;
		;;&lt;br /&gt;
	5.0) # ein lenny System - derzeit stable&lt;br /&gt;
		# Ich schaue nicht online nach, ich nehme den Versionsstand des Systems.&lt;br /&gt;
		# aus 5.0.1 mach mir ein 501 :&lt;br /&gt;
		RELEASE=${DEBVERSION//.}&lt;br /&gt;
		ISOSRC=&amp;quot;debian-${RELEASE}-${ARCHITECTURE}-netinst.iso&amp;quot; &lt;br /&gt;
		# XXX Solange lenny=stable ist die URL gültig, danach wirds wohl auf cdimage liegen&lt;br /&gt;
		ISOURL=&amp;quot;http://ftp5.gwdg.de/pub/linux/debian/debian-cd/current/${ARCHITECTURE}/iso-cd/&amp;quot;&lt;br /&gt;
		DEBIANNAME=&amp;quot;lenny&amp;quot;&lt;br /&gt;
		;;&lt;br /&gt;
	*) # jetzt ist der Bock fett&lt;br /&gt;
		echo -e &amp;quot;${ROT}Ich erkenne/unterstütze deine debian Version ($DEBVERSION) nicht!\nEine squeezy oder sid Unterstützung ist noch nicht eingebaut.${EXIT}&amp;quot;&lt;br /&gt;
		exit 1&lt;br /&gt;
		;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
#####################################################&lt;br /&gt;
# Das iso wird im Unterordner netinst-iso erwartet.&lt;br /&gt;
# Wenn das ISO nicht da ist, zieh es auf Nachfrage:&lt;br /&gt;
echo -e &amp;quot;${GRUEN}Ich erwarte das ISO mit dem Namen ${ISOSRC} im Ordner ${BASEPWD}/netinst-iso/${EXIT}&amp;quot;&lt;br /&gt;
if [ ! -f &amp;quot;${BASEPWD}/netinst-iso/${ISOSRC}&amp;quot; ] ; then&lt;br /&gt;
	echo -e &amp;quot;${ROT}Das netinst-ISO ($ISOSRC) ist nicht im Ordner ${BASEPWD}/netinst-iso/\n${GRUEN}- soll ich es laden von ${ISOURL} (130-160MB)? ${EXIT}&amp;quot;&lt;br /&gt;
	echo -n &amp;quot;(y/N)&amp;quot;&lt;br /&gt;
	OPTION=&amp;quot;&amp;quot;; read OPTION&lt;br /&gt;
		case &amp;quot;$OPTION&amp;quot; in&lt;br /&gt;
	    y|Y|j|J)  wget -O ${BASEPWD}/netinst-iso/${ISOSRC} ${ISOURL}/${ISOSRC}&lt;br /&gt;
				# XXX wie ist der exit Status $? - hat der download funktioniert?&lt;br /&gt;
				;;&lt;br /&gt;
			*)  echo -e &amp;quot;${ROT}Bitte leg das Image als ${BASEPWD}/netinst-iso/${ISOSRC} ab${EXIT}&amp;quot; &lt;br /&gt;
					exit 1&lt;br /&gt;
				;;&lt;br /&gt;
		esac&lt;br /&gt;
fi&lt;br /&gt;
echo -e &amp;quot;${GRUEN}Ok, das ISO ist da${EXIT}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sleep 1&lt;br /&gt;
echo -e &amp;quot;${GRUEN}Ich mounte${EXIT}&amp;quot;&lt;br /&gt;
mount -oloop ${BASEPWD}/netinst-iso/${ISOSRC} netinst-loop&lt;br /&gt;
echo -e &amp;quot;${GRUEN}Ist gemountet${EXIT}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cd ${BASEPWD}&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;${GRUEN}Ich kopiere den Installer auf die Platte${EXIT}&amp;quot;&lt;br /&gt;
rsync -rav netinst-loop/ iso-build/&lt;br /&gt;
find ${BASEPWD}/iso-build/ -type d -exec chmod 775 {} \;&lt;br /&gt;
find ${BASEPWD}/iso-build/ -type f -exec chmod 664 {} \;&lt;br /&gt;
echo -e &amp;quot;${GRUEN}Das Kopieren hat geklappt.${EXIT}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cd ${BASEPWD}/iso-build/pool&lt;br /&gt;
echo -e &amp;quot;${GRUEN}Ich setze die Rechte neu und verschiebe die Dateien unnötig hin und her...${EXIT}&amp;quot;&lt;br /&gt;
mkdir -p udeb deb &lt;br /&gt;
find main -name &amp;quot;*.udeb&amp;quot; -exec mv {} udeb/ \;&lt;br /&gt;
find main -type f -exec mv {} deb/ \; &lt;br /&gt;
if [ &amp;quot;$DEBIANNAME&amp;quot; == &amp;quot;etch&amp;quot; ]; then&lt;br /&gt;
	find contrib -type f -exec mv {} deb/ \; &lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# bisherige Struktur in main löschen und wieder anlegen:&lt;br /&gt;
rm -r  main/ &lt;br /&gt;
mkdir -p main main/{custom,{,u}deb}&lt;br /&gt;
&lt;br /&gt;
##########################################################&lt;br /&gt;
# Jetzt die lokal installierten Programme wieder einpacken&lt;br /&gt;
#&lt;br /&gt;
# Damit die Namen komplett erscheinen&lt;br /&gt;
export COLUMNS=220&lt;br /&gt;
#&lt;br /&gt;
# Das Paket dpkg-repack muss vorhanden sein:&lt;br /&gt;
#&lt;br /&gt;
echo -e &amp;quot;${GRUEN}Prüfe auf das Paket dpkg-repack...${EXIT}&amp;quot;&lt;br /&gt;
test -r &amp;quot;$(which dpkg-repack)&amp;quot; || &amp;quot; echo -e &amp;quot;${ROT}Das Packet dpkg-repack ist nicht installiert!\n\(Gibt es erst ab sarge\)${EXIT}&amp;quot; ; exit 0 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
cd ${BASEPWD}/debsrc&lt;br /&gt;
&lt;br /&gt;
TMPFILE=$(mktemp dpkg-l_Liste.XXXXXX) || &amp;quot; echo -e &amp;quot;${ROT}Das Tool mktemp ist nicht installiert${EXIT}&amp;quot; ;exit 0 &amp;quot;&lt;br /&gt;
#&lt;br /&gt;
##Die installierte Packetliste erzeugen:&lt;br /&gt;
##&lt;br /&gt;
dpkg -l &amp;#039;*&amp;#039; | awk &amp;#039;/^ii/ { print $2 }&amp;#039; &amp;gt;&amp;gt; $TMPFILE&lt;br /&gt;
##&lt;br /&gt;
## und nun gehts los:&lt;br /&gt;
##&lt;br /&gt;
LINES=$(wc -l $TMPFILE | cut -d &amp;quot; &amp;quot; -f1)&lt;br /&gt;
echo -e &amp;quot;${GRUEN}\nEs sind $LINES Pakete zu bauen.${EXIT} \n&amp;quot;&lt;br /&gt;
sleep 1&lt;br /&gt;
## XXX Wenn die Pakete schonmal erstellt wurden bis zum nächsten XXX Marker auskommentieren - ѕpart Zeit.&lt;br /&gt;
&lt;br /&gt;
y=0&lt;br /&gt;
while read package ; do&lt;br /&gt;
	PaketName=&amp;quot;$(apt-cache show $package |  awk -F &amp;#039;/&amp;#039; &amp;#039;/Filename/ { print $5 }&amp;#039;)&amp;quot;&lt;br /&gt;
	# Architecture kann all oder i386/amd64 sein&lt;br /&gt;
	PArchitecture=&amp;quot;$(apt-cache show $package | awk  &amp;#039;/^Architecture/ { print $2 }&amp;#039;)&amp;quot;&lt;br /&gt;
	[ a&amp;quot;$PaketName&amp;quot; == &amp;quot;a&amp;quot; ] &amp;amp;&amp;amp; PaketName=&amp;quot;$package&amp;quot;&lt;br /&gt;
	let y=y+1&lt;br /&gt;
	echo -e &amp;quot;Paket ${GRUEN} ${y} ${EXIT} von ${GRUEN}${LINES} ${EXIT}heisst ${ROT} $i (${PaketName}) ${EXIT}&amp;quot;&lt;br /&gt;
	if [ ! -e &amp;quot;$PaketName&amp;quot; ] ; then&lt;br /&gt;
		echo -e &amp;quot;${GRUEN}Das Paket wird $PaketName gebaut.${EXIT}&amp;quot;&lt;br /&gt;
	 dpkg-repack --arch=$PArchitecture $package &lt;br /&gt;
	else&lt;br /&gt;
		echo -e &amp;quot;${GRUEN}Das Paket $PaketName ist schon da.${EXIT}&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
done &amp;lt; $TMPFILE&lt;br /&gt;
###########################################################&lt;br /&gt;
# etch only:&lt;br /&gt;
# würgaround, wenn ssmtp installiert ist, fehlt dem d-i&lt;br /&gt;
# komischerweise exim4 - also laden wir es herunter&lt;br /&gt;
aptitude download exim4 exim4-base exim4-daemon-light exim4-config&lt;br /&gt;
###########################################################&lt;br /&gt;
# jetzt die Pakete kopieren&lt;br /&gt;
#&lt;br /&gt;
cd ${BASEPWD}&lt;br /&gt;
echo -e &amp;quot;${GRUEN}Ich kopiere die ${LINES} Pakete nun in die CD-Struktur - das dauert!${EXIT}!&amp;quot;&lt;br /&gt;
cp ${BASEPWD}/debsrc/*deb ${BASEPWD}/iso-build/pool/main/deb&lt;br /&gt;
&lt;br /&gt;
## XXX &amp;lt;-- nächster Marker ;-)&lt;br /&gt;
&lt;br /&gt;
## XXX nur lokale debs kopieren, wenn welche abgelegt wurden &lt;br /&gt;
echo -e &amp;quot;${GRUEN}Ich kopiere evtl. vorhandene Pakete aus deb_src in die CD-Struktur.${EXIT}!&amp;quot;&lt;br /&gt;
# XXX einen check ob überhaupt debs in dem Ordner sind einfügen:&lt;br /&gt;
cp ${BASEPWD}/deb_custom/*deb ${BASEPWD}/iso-build/pool/main/custom/ 2&amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###########################################################&lt;br /&gt;
# Jetzt die ursprünglichen Netinst-Pakete rüberkopieren. &lt;br /&gt;
# Hier ist wohl wichtig, dass sie unverändert auf der CD liegen:&lt;br /&gt;
# (Ich überschreibe absichtlich ggfls die per dpkg-repack erzeugten Versionen)&lt;br /&gt;
cd ${BASEPWD}/iso-build/pool&lt;br /&gt;
mv udeb main/&lt;br /&gt;
mv deb/* main/deb/&lt;br /&gt;
rmdir deb&lt;br /&gt;
&lt;br /&gt;
###########################################################&lt;br /&gt;
# die apt-ftparchive configs bauen&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
cd ${BASEPWD}/iso-build&lt;br /&gt;
# wir haben nur main - auf etch gibt es noch contrib&lt;br /&gt;
#rm -r ./dists/${DEBIANNAME}/contrib/ 2&amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt; apt-ftparchive-${ARCHITECTURE}.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;
Dir {&lt;br /&gt;
        ArchiveDir &amp;quot;./&amp;quot;;&lt;br /&gt;
        CacheDir &amp;quot;./db/&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Default {&lt;br /&gt;
        Packages::Compress &amp;quot;. gzip bzip2&amp;quot;;&lt;br /&gt;
        Sources::Compress &amp;quot;. gzip bzip2&amp;quot;;&lt;br /&gt;
        Contents::Compress &amp;quot;. gzip bzip2&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        Packages {&lt;br /&gt;
                Extensions &amp;quot;.deb&amp;quot;;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
TreeDefault&lt;br /&gt;
{&lt;br /&gt;
        Packages &amp;quot;\$(DIST)/\$(SECTION)/binary-\$(ARCH)/Packages&amp;quot;;&lt;br /&gt;
        Directory &amp;quot;pool/\$(SECTION)&amp;quot;;&lt;br /&gt;
        Contents &amp;quot;\$(DIST)/Contents-\$(ARCH)&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tree &amp;quot;dists/${DEBIANNAME}&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
        Sections &amp;quot;main&amp;quot;;&lt;br /&gt;
        Architectures &amp;quot;${ARCHITECTURE}&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BinDirectory &amp;quot;pool/main&amp;quot; {&lt;br /&gt;
}; &lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt; apt-ftparchive-di.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;
Dir {&lt;br /&gt;
  ArchiveDir &amp;quot;./&amp;quot;;&lt;br /&gt;
  CacheDir &amp;quot;./db/&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Default {&lt;br /&gt;
  Packages::Compress &amp;quot;. gzip&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  Packages {&lt;br /&gt;
    Extensions &amp;quot;.udeb&amp;quot;;&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
TreeDefault&lt;br /&gt;
{&lt;br /&gt;
  Packages &amp;quot;\$(DIST)/\$(SECTION)/debian-installer/binary-\$(ARCH)/Packages&amp;quot;;&lt;br /&gt;
  Directory &amp;quot;pool/\$(SECTION)&amp;quot;;&lt;br /&gt;
   Contents &amp;quot;\$(DIST)/Contents-udeb&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Tree &amp;quot;dists/${DEBIANNAME}&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
  Sections &amp;quot;main&amp;quot;;&lt;br /&gt;
  Architectures &amp;quot;${ARCHITECTURE}&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BinDirectory &amp;quot;pool/main&amp;quot; {&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt; apt-release-${ARCHITECTURE}.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;
APT::FTPArchive::Release::Origin &amp;quot;Thorsten Strusch&amp;quot;;&lt;br /&gt;
APT::FTPArchive::Release::Label &amp;quot;custom Debian DVD Repository&amp;quot;;&lt;br /&gt;
APT::FTPArchive::Release::Suite &amp;quot;stable&amp;quot;;&lt;br /&gt;
APT::FTPArchive::Release::Codename &amp;quot;${DEBIANNAME}&amp;quot;;&lt;br /&gt;
APT::FTPArchive::Release::Architectures &amp;quot;${ARCHITECTURE}&amp;quot;;&lt;br /&gt;
APT::FTPArchive::Release::Components &amp;quot;main&amp;quot;;&lt;br /&gt;
APT::FTPArchive::Release::Description &amp;quot;custom Debian DVD Repository&amp;quot;;&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
###########################################################&lt;br /&gt;
# apt-ftparchive seine Arbeit verrichten lassen&lt;br /&gt;
#&lt;br /&gt;
cd ${BASEPWD}/iso-build&lt;br /&gt;
echo -e &amp;quot;${GRUEN}apt-ftparchive erzeugt die index-Dateien für die Pakete.${EXIT}&amp;quot;&lt;br /&gt;
apt-ftparchive generate apt-ftparchive-${ARCHITECTURE}.conf&lt;br /&gt;
sleep 1&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;${GRUEN}apt-ftparchive erzeugt die index-Dateien für den Installer.${EXIT}&amp;quot;&lt;br /&gt;
apt-ftparchive generate apt-ftparchive-di.conf&lt;br /&gt;
sleep 1&lt;br /&gt;
&lt;br /&gt;
apt-ftparchive -c apt-release-${ARCHITECTURE}.conf release dists/${DEBIANNAME}/ &amp;gt; dists/${DEBIANNAME}/Release&lt;br /&gt;
# head weil ich unter etch die md5-Summen nicht abschalten kann :-/&lt;br /&gt;
apt-ftparchive -c apt-release-${ARCHITECTURE}.conf release dists/${DEBIANNAME}/main/binary-${ARCHITECTURE}/ | head -8 &amp;gt;\&lt;br /&gt;
 dists/${DEBIANNAME}/main/binary-${ARCHITECTURE}/Release&lt;br /&gt;
apt-ftparchive -c apt-release-${ARCHITECTURE}.conf release dists/${DEBIANNAME}/main/debian-installer/binary-${ARCHITECTURE}/ | head -8 &amp;gt;\&lt;br /&gt;
 dists/${DEBIANNAME}/main/debian-installer/binary-${ARCHITECTURE}/Release&lt;br /&gt;
# auch auf der lenny CD gibt es einen contrib-Ordner:&lt;br /&gt;
apt-ftparchive -c apt-release-${ARCHITECTURE}.conf release dists/${DEBIANNAME}/contrib/binary-${ARCHITECTURE}/ | head -8 &amp;gt;\&lt;br /&gt;
 dists/${DEBIANNAME}/contrib/binary-${ARCHITECTURE}/Release&lt;br /&gt;
&lt;br /&gt;
# Die CD soll später als Unofficial in der sources.list auftauchen:&lt;br /&gt;
DISKINFO=$(cat ${BASEPWD}/iso-build/.disk/info)&lt;br /&gt;
echo -n &amp;quot;${DISKINFO%%-*} - Unofficial ${ARCHITECTURE} Binary - $(date -I)&amp;quot; &amp;gt; ${BASEPWD}/iso-build/.disk/info&lt;br /&gt;
&lt;br /&gt;
#####################################################################&lt;br /&gt;
# Die md5 Summe Erstellen, ansonsten erkennt der d-i die DVD nicht an&lt;br /&gt;
#&lt;br /&gt;
cd ${BASEPWD}/iso-build&lt;br /&gt;
md5sum $(find ! -name &amp;quot;md5sum.txt&amp;quot; ! -path &amp;quot;./isolinux/*&amp;quot; ! -path &amp;quot;./windows/*&amp;quot; -follow -type f) &amp;gt; md5sum.txt&lt;br /&gt;
&lt;br /&gt;
###########################################################&lt;br /&gt;
# das Medium mastern&lt;br /&gt;
###########################################################&lt;br /&gt;
# das Image enthält keine .svn Ordner und nicht den db caching Ordner von apt-ftparchive:&lt;br /&gt;
genisoimage -l -r -J -cache-inodes -v -V &amp;quot;custom-debian-$DEBVERSION-$(date -I)&amp;quot; -input-charset utf-8 -no-emul-boot \&lt;br /&gt;
-boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat -hide-rr-moved \&lt;br /&gt;
-m &amp;quot;.svn&amp;quot; -m &amp;quot;db&amp;quot; -o ${BASEPWD}/iso/custom-debian-$DEBVERSION-$(date -I).iso  ${BASEPWD}/iso-build/&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
Wie gehts weiter?&lt;br /&gt;
 · isolinux.cfg anpassen&lt;br /&gt;
 · /etc sichern&lt;br /&gt;
 · debconf-Einstellungen sichern, später einspielen&lt;br /&gt;
 · optional &lt;br /&gt;
     LDAP &amp;amp; mysql &amp;amp; home sichern und mit auf die DVD packen&lt;br /&gt;
 · isolinux Screen anpassen (evtl. mit uuencode/uudecode hier im Script arbeiten?)&lt;br /&gt;
 · preseed-auto-Datei für root-Passwort zur Verfügung stellen!&lt;br /&gt;
 · Script einbinden, welches das System exakt so neu aufzieht&lt;br /&gt;
   (beim 1. Booten in inittab/runonce weitere Dinge erfragen)&lt;br /&gt;
&lt;br /&gt;
# vim: set ts=2 background=dark number:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>ThorstenStrusch</name></author>
	</entry>
</feed>