Preseeding

Was ist preseeding?

Preseeding ist ein Verfahren für den Debian-Installer 1)2), Vorgaben für die Installation zu einem frühen Zeitpunkt auszulesen, indem die Antworten für die Fragen des Installers vorgegeben werden.

Die Antworten - und damit die Konfiguration des Installers - werden in einer preseed.cfg hinterlegt. Diese kann von dem Installer während der Installation über das Netzwerk, über ein zusätzlichen Datenträger, über das Installationsmedium oder aus dem Kernel-Image des Installers gelesen werden. Je nach dem wo die Konfiguration liegt und damit ab wann sie im Installationsprozess zur Verfügung steht, können praktisch alle Antworten zu den Fragen des Installers vorgegeben werden.

Preseeding-Images

Die hier angebotenen ISO-Images können genutzt werden, um Ubuntu-Server in der jeweiligen Version und Umgebung zu installieren.

Bitte beachten!

Diese ISO-Images sind modifizierte Netinstaller-Images von Ubuntu und Debian, in denen eine Preseeding-Konfiguration direkt in der initrd des Installers platziert wurde. Dies bedeutet, dass ein Server in dieser Version und mit dieser Konfiguration automatisch installiert wird.

Diese ISOs sollten NIEMALS von einem System mit einem vorhandenen Betriebssystem gebootet werden, da ungefragt und automatisch mit der Installation und damit dem Überschreiben der ersten Festplatte /dev/sda begonnen wird.

Anpassungen der Images

Folgendes wurde in den Images angepasst:

  • Hostname und Domain sind auf ubuntu.local bzw debian.local festgelegt, was durch ein erfolgreichen reverse DNS lookup bzw. DHCP während der Installation aber überschrieben wird
  • primärer Benutzer ist boss, Passwort preseedpasswd
  • die erste Festplatte wird als LVM 3)4) formatiert mit einer LV für Swap (nicht bei VMWare-VM-Images) und einer für das Root-Dateisystem
  • ntp und openssh-server werden automatisch installiert
  • verschiedene Voreinstellung für deutsche Sprache (locale, apt mirror, keyboard layout)
  • automatische Installation von Sicherheitsupdates durch das Paket unattended-upgrades

Für die VMWare-VMs wurde zusätzlich angepasst:

  • open-vm-tools mit DKMS wird installiert
  • RAM-Komprimierung mit zram5)
  • kein Swap auf physischen Blockdevices
  • IO-Scheduler per Kernel-Parameter auf noop gestellt 6)

Voraussetzungen

Diese Images können auf Systemen oder VMs eingesetzt werden, die folgende Voraussetzungen erfüllen:

  • /dev/sda mind. 6GB groß, unpartitioniert
  • de.archive.ubuntu.com muss für das System erreichbar sein.
  • Bootreihenfolge muss „HDD, CDROM“ sein, damit nach einem Neustart nicht die Installation erneut beginnt.
  • falls kein DHCP vorhanden ist, wird der Installer nach einer statischen Netzwerkkonfiguration fragen, der Rest läuft weiterhin automatisch ab.

Download

Die Images und verwendeten preseed.cfg können hier herunter geladen werden:

Hinweis

* Der verwendete Grub2 in Ubuntu 14.04 hat zur Zeit (25.06.2014) einen harmlosen Bug, der für ein paar Sekunden zu einer Fehlermeldung beim Booten führt, der Bootvorgang wird aber fortgesetzt. Informationen zu dem Bug und Hinweise zum Abstellen der Meldung finden sich auf Launchpad und AskUbuntu.

Installation und Nacharbeiten

Die Installation eines Servers mit einem der Preseeding-Images läuft weitgehend (abhängig von der Umgebung) automatisch ab, indem der Server von diesem Image gebootet wird (Voraussetzungen beachten).

Da praktisch alle Fragen des Installers vorgegeben sind, ist die grafische Rückmeldung während der Installation reduziert. Die Installation sollte aber nicht unterbrochen werden, wenn für ein paar Minuten keine Meldung oder kein Fortschritt dargestellt wird. Am Ende der Installation startet der Installer das System neu und man kann sich mit dem vorgegebenen Benutzernamen und Passwort anmelden, lokal oder per SSH.

Folgende Schritte sollten möglichst direkt nach der Installation geprüft und ggf. unternommen werden:

  1. Änderung des Passwort des primären Benutzers boss
  2. ggf. Änderung des Hostnamens und der Domain, falls diese bei der Installation nicht durch ein reverse DNS lookup aufgelöst und gesetzt wurden.
  3. Anlegen von neuen Logical Volumes oder Vergrößerung von vorhandenen Logical Volumes, um bisher ungenutzten Speicherplatz zu verwenden.

Änderung von Passwörtern

Nach der Anmeldung am System mit dem Standardbenutzernamen und -passwort aus der Preseeding-Konfiguration muss das Passwort7) des Benutzers boss auf folgende Weise geändert werden:

boss@ubuntu:~$ passwd
Ändern des Passworts für boss.
(aktuelles) UNIX-Passwort: 
Geben Sie ein neues UNIX-Passwort ein: 
Geben Sie das neue UNIX-Passwort erneut ein: 
passwd: Passwort erfolgreich geändert
boss@ubuntu:~$

Änderung des Hostnames

Eine nachträgliche Änderung des Hostnames8) sollte nur dann erforderlich sein, wenn zum Zeitpunkt der Installation für die IP-Adresse des Servers noch kein DNS-Eintrag existierte und statt dessen der Standard-Name „ubuntu.local“ verwendet wurde. Der geltende Hostname kann mit hostname -f festgestellt werden:

pfadmin@powerfolder:~$ hostname -f
powerfolder.gwdg.de
pfadmin@powerfolder:~$

Zum Ändern des Hostnamens von „ubuntu.local“ nach „ubuntu-machine.gwdg.de“ müssen die Dateien /etc/hosts (für die Auflösung des neuen Namens) und /etc/hostname (für den eigentlichen Namen) als Benutzer root bearbeitet werden.

boss@ubuntu:~$ sudo -s
[sudo] password for boss: 
root@ubuntu:~#
root@ubuntu:~# cat /etc/hosts

127.0.0.1 localhost
127.0.1.1 ubuntu.local  ubuntu

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

root@ubuntu:~# 
root@ubuntu:~# nano /etc/hosts
root@ubuntu:~# cat /etc/hosts

127.0.0.1 localhost
127.0.1.1 ubuntu-machine.gwdg.de  ubuntu-machine

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

root@ubuntu:~# 
root@ubuntu:~# cat /etc/hostname 

ubuntu

root@ubuntu:~# nano /etc/hostname 
root@ubuntu:~# cat /etc/hostname 

ubuntu-machine

root@ubuntu:~#
root@ubuntu:~# reboot
root@ubuntu:~# 
An alle Benutzer verteilte Nachricht von boss@ubuntu
  (/dev/pts/0) um 13:19 ...

Das System wird sich JETZT zum Neustarten herunterfahren!

Änderung des Logical Volume Managers

Unabhängig von der Größe der Festplatte richtet die Installation recht sparsam bemessene Logical Volumes für Dateisysteme ein, um für später größere Flexibilität zu behalten. Hier wird beschrieben, wie eine vorhandene LV mit Dateisystem vergrößert und eine neue LV mit Dateisystem angelegt und eingebunden wird.

Vergrößerung eines Logical Volumes

Im Folgenden wird festgestellt, wie viel Speicherplatz noch zur Verfügung steht, und dann das Hauptdateisystem / um 1GB vergrößert.

Wechsel zu root, anzeigen der Mount-Points:

boss@ubuntu-machine:~$ sudo -s
[sudo] password for boss: 
root@ubuntu-machine:~# 
root@ubuntu-machine:~# mount
/dev/mapper/rootvg-rootlv on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type devtmpfs (rw,mode=0755)
(...)
root@ubuntu-machine:~# 

Das Haupt-Dateisystem / ist gemounted von dem Logical Volume /dev/mapper/rootvg-rootlv. Informationen zu diesem LV anzeigen, um die zugehörige Volume Group zu finden:

root@ubuntu-machine:~# lvs /dev/mapper/rootvg-rootlv
  LV     VG     Attr   LSize Origin Snap%  Move Log Copy%  Convert
  rootlv rootvg -wi-ao 4,79g                                      
root@ubuntu-machine:~# 

Die LV rootlv ist Teil der VG rootvg und zur Zeit 4,79GB groß. Information zu der VG rootvg anzeigen, um den freien Platz zu ermitteln:

root@ubuntu-machine:~# vgs
  VG     #PV #LV #SN Attr   VSize VFree
  rootvg   1   2   0 wz--n- 8,00g 2,41g

Die VG rootvg ist 8,00GB groß und hat noch 2,41GB frei. Nun wird die LV rootlv um 1GB erweitert:

root@ubuntu-machine:~# 
root@ubuntu-machine:~# lvextend -L +1G /dev/mapper/rootvg-rootlv
  Extending logical volume rootlv to 5,79 GiB
  Logical volume rootlv successfully resized
root@ubuntu-machine:~# 

Danach kann auch das in dem LV liegende Dateisystem erweitert werden. Da es sich hier um ein ext4-Dateisystem handelt, kann die Größenänderung online erfolgen, ohne das Dateisystem auszuhängen:

root@ubuntu-machine:~# resize2fs /dev/mapper/rootvg-rootlv
resize2fs 1.42 (29-Nov-2011)
Das Dateisystem auf /dev/mapper/rootvg-rootlv ist auf / eingehängt; Online-Grössenveränderung nötig
old_desc_blocks = 1, new_desc_blocks = 1
Eine Online-Grössenänderung von /dev/mapper/rootvg-rootlv auf 1518592 (4k) Blöcke wird durchgeführt.
Das Dateisystem auf /dev/mapper/rootvg-rootlv ist nun 1518592 Blöcke groß.

root@ubuntu-machine:~# 
root@ubuntu-machine:~# df -h
Dateisystem               Größe Benutzt Verf. Verw% Eingehängt auf
/dev/mapper/rootvg-rootlv  5,8G    1,1G  4,4G   21% /
udev                       241M    4,0K  241M    1% /dev
tmpfs                      100M    300K   99M    1% /run
none                       5,0M       0  5,0M    0% /run/lock
none                       248M       0  248M    0% /run/shm
root@ubuntu-machine:~#

Anlegen eines neuen Logical Volumes

Im Folgenden wird ein neues Logical Volume mit einem ext4-Dateisystem angelegt und unter dem neuen Mount-Point /var/www eingebunden.

Wechsel zu root, anzeigen der Größe und des freien Platz der Volume Group rootvg:

boss@ubuntu-machine:~$ sudo -s
[sudo] password for boss: 
root@ubuntu-machine:~# 
root@ubuntu-machine:~# vgs
  VG     #PV #LV #SN Attr   VSize VFree
  rootvg   1   2   0 wz--n- 8,00g 1,41g
root@ubuntu-machine:~# 

In der Volume Group rootvg ist noch 1,41GB frei. Nun wird ein Logical Volume mit dem Namen docroot und einer Größe von 700MB in der rootvg angelegt und ein ext4-Dateisystem darauf erzeugt:

root@ubuntu-machine:~# lvcreate -n docroot -L 700M rootvg
  Logical volume "docroot" created
root@ubuntu-machine:~#
root@ubuntu-machine:~# mkfs.ext4 /dev/mapper/rootvg-docroot
mke2fs 1.42 (29-Nov-2011)
Dateisystem-Label=
OS-Typ: Linux
Blockgröße=4096 (log=2)
Fragmentgröße=4096 (log=2)
Stride=0 Blöcke, Stripebreite=0 Blöcke
44832 Inodes, 179200 Blöcke
8960 Blöcke (5.00%) reserviert für den Superuser
Erster Datenblock=0
Maximale Dateisystem-Blöcke=184549376
6 Blockgruppen
32768 Blöcke pro Gruppe, 32768 Fragmente pro Gruppe
7472 Inodes pro Gruppe
Superblock-Sicherungskopien gespeichert in den Blöcken: 
  32768, 98304, 163840

Platz für Gruppentabellen wird angefordert: erledigt                        
Inode-Tabellen werden geschrieben: erledigt                        
Erstelle Journal (4096 Blöcke): erledigt
Schreibe Superblöcke und Dateisystem-Accountinginformationen: erledigt

root@ubuntu-machine:~#

Nun wird ein Mount-Point /var/www erzeugt, in die /etc/fstab eingetragen und das Dateisystem eingehängt:

root@ubuntu-machine:~# mkdir -p /var/www
root@ubuntu-machine:~# nano /etc/fstab
root@ubuntu-machine:~# cat /etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/mapper/rootvg-rootlv /               ext4    errors=remount-ro 0       1
/dev/mapper/rootvg-swaplv none            swap    sw              0       0
/dev/mapper/rootvg-docroot /var/www/  ext4  defaults 0 0 

root@ubuntu-machine:~# 
root@ubuntu-machine:~# mount /var/www 
root@ubuntu-machine:~# 
root@ubuntu-machine:~# df -h
Dateisystem                Größe Benutzt Verf. Verw% Eingehängt auf
/dev/mapper/rootvg-rootlv   5,8G    1,1G  4,4G   21% /
udev                        241M    4,0K  241M    1% /dev
tmpfs                       100M    304K   99M    1% /run
none                        5,0M       0  5,0M    0% /run/lock
none                        248M       0  248M    0% /run/shm
/dev/mapper/rootvg-docroot  689M     17M  638M    3% /var/www
root@ubuntu-machine:~#

Vergrößerung einer Volume Group mit zusätzlichen Festplatten

Dem virtuellen Server wurde zuvor eine zusätzliche, zweite Festplatte konfiguriert und mit dieser Konfiguration gestartet.

Der Befehl lsblk zeigt die aktuellen Blockdevices und ihre Nutzung an. sda ist partitioniert und diese Partition enthält drei Logical Volumes. sdb ist die neue Festplatte und ist unpartitioniert. pvs listet nur die Partition von sda als Physical Volume auf, welches der Volume Group rootvg zugeordnet ist. rootvg ist laut vgs im Moment 8GB groß.

root@ubuntu-machine:~# lsblk 
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0     8G  0 disk 
└─sda1                      8:1    0     8G  0 part 
  ├─rootvg-swaplv (dm-0)  252:0    0   808M  0 lvm  [SWAP]
  ├─rootvg-rootlv (dm-1)  252:1    0   5,8G  0 lvm  /
  └─rootvg-docroot (dm-2) 252:2    0   700M  0 lvm  /var/www
sdb                         8:16   0     8G  0 disk 
sr0                        11:0    1  20,7M  0 rom  
root@ubuntu-machine:~#
root@ubuntu-machine:~# pvs
  PV         VG     Fmt  Attr PSize PFree  
  /dev/sda1  rootvg lvm2 a-   8,00g 748,00m
root@ubuntu-machine:~#
root@ubuntu-machine:~# vgs
  VG     #PV #LV #SN Attr   VSize VFree  
  rootvg   1   3   0 wz--n- 8,00g 748,00m
root@ubuntu-machine:~#

Nun wird sdb für die Verwendung durch den LVM markiert und taucht als verfügbares Physical Volume damit auch schon bei pvs auf, ist aber noch keiner Volume Group zugeordnet.

root@ubuntu-machine:~# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
root@ubuntu-machine:~# 
root@ubuntu-machine:~# pvs
  PV         VG     Fmt  Attr PSize PFree  
  /dev/sda1  rootvg lvm2 a-   8,00g 748,00m
  /dev/sdb          lvm2 a-   8,00g   8,00g
root@ubuntu-machine:~# 

Die Volume Group rootvg kann nun auf das neue Physical Volume ausgedehnt werden, was sich in der Übersicht über die PVs und der Gesamtgröße der VG rootvg sofort wieder spiegelt.

root@ubuntu-machine:~# vgextend rootvg /dev/sdb
  Volume group "rootvg" successfully extended
root@ubuntu-machine:~#
root@ubuntu-machine:~# pvs
  PV         VG     Fmt  Attr PSize PFree  
  /dev/sda1  rootvg lvm2 a-   8,00g 748,00m
  /dev/sdb   rootvg lvm2 a-   8,00g   8,00g
root@ubuntu-machine:~#
root@ubuntu-machine:~# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  rootvg   2   3   0 wz--n- 15,99g 8,73g
root@ubuntu-machine:~#

Neue Logical Volumes oder Vergrößerungen von Logical Volumes in rootvg können nun den gesamten freien Platz der rootvg nutzen, auch über die Grenzen der eigentlichen Physical Volumes hinweg.

Anpassung eines Images mit eigener Konfiguration

Die hier unter Download zur Verfügung gestellten Preseed-Images lassen sich recht einfach mit einer eigenen Preseed-Konfiguration, Skripten oder zusätzlichen Softwarepaketen anpassen. Die Vorgehensweise ist dabei die gleiche, wie die ursprüngliche Erstellung der Images.

Im Folgenden werden Schritte mit Beispiel-Befehlen beschrieben. Pfade, Dateinamen etc. können von dem jeweiligen, individuellen Einsatzzweck abweichen. Das Ergebnis der u.s. Schritte ist eine Nezinstall-ISO mit einer Preseed-Konfiguration in der initrd des Installers.

Die Ablauf ist dabei im wesentlichen:

  1. Mounten der ISO
  2. Kopieren des Inhalts
  3. Entpacken der initrd
  4. Platzieren der Preseeding-Konfiguration
  5. Packen der Initrd
  6. Remastering der ISO

Erstellen einer angepassten Preseeding-ISO

Erster Schritt ist der Download eines ISO-Images. Es muss sich hierbei um ein bootbares ISO-Image mit dem Debian Installer handeln, von dem sonst eine normale Installation möglich wäre. Als Ausgangsbasis kann auch eines der unter #Download hinterlegten Images verwendet werden.

benny@UbuntuBW:~/Downloads$ wget http://archive.ubuntu.com/ubuntu/dists/quantal/main/installer-amd64/current/images/netboot/mini.iso
--2013-05-28 09:56:32--  http://archive.ubuntu.com/ubuntu/dists/quantal/main/installer-amd64/current/images/netboot/mini.iso
Auflösen des Hostnamen »archive.ubuntu.com (archive.ubuntu.com)«... 2001:67c:1360:8c01::23, 2001:67c:1360:8c01::15, 2001:67c:1360:8c01::19, ...
Verbindungsaufbau zu archive.ubuntu.com (archive.ubuntu.com)|2001:67c:1360:8c01::23|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 35651584 (34M) [application/x-iso9660-image]
In »»mini.iso«« speichern.

100%[===========================================================================================>] 35.651.584  9,78M/s   in 3,6s    

2013-05-28 09:56:35 (9,54 MB/s) - »»mini.iso«« gespeichert [35651584/35651584]

Als nächstes werden zwei Arbeitsverzeichnisse angelegt, wo das ISO gmounted und dann der Inhalt dorthin kopiert wird.

root@UbuntuBW:~/Downloads$ mkdir /tmp/remaster ; mkdir /tmp/cdrom

Dann wird mit losetup das ISO-Image als Blockdevice gemounted und der Inhalt mit rsync in das zweite Arbeitsverzeichnis kopiert.

root@UbuntuBW:~/Downloads$ losetup -f ~/Downloads/mini.iso 
root@UbuntuBW:~/Downloads$ losetup -a
/dev/loop0: [fc04]:266574 (/home/benny/Downloads/mini.iso)
root@UbuntuBW:~/Downloads$ mount /dev/loop0 /tmp/cdrom/
mount: warning: /tmp/cdrom/ seems to be mounted read-only.
root@UbuntuBW:~/Downloads$ rsync -a /tmp/cdrom/ /tmp/remaster/ ; cd /tmp/remaster/

Der folgende Schritt ist optional, aber empfohlen. Hierbei wird ein Timeout für das Bootmenü der Installer-CD gesetzt, damit die Installation davon auch automatisch beginnen kann und nicht auf eine Benutzereingabe gewartet werden muss. Hier wurde der Wert timeout auf 100 gesetzt, was 10 Sek. entspricht. Wird während des Timeouts eine Taste gedrückt, stoppt der Timeout und es können z.B. Kernel-Parameter dem Installer übergeben werden.

root@UbuntuBW:/tmp/remaster# cat isolinux.cfg 
# D-I config version 2.0
include menu.cfg
default vesamenu.c32
prompt 0
timeout 100

Im nächsten Schritt wird ein Arbeitsverzeichnis für das Entpacken der initrd angelegt, die initrd entpackt, eine preseed.cfg dorthin kopiert, die initrd wieder gepackt und das Arbeitsverzeichnis gelöscht, um Platz auf der ISO zu sparen.

root@UbuntuBW:/tmp/remaster# mkdir -p /tmp/remaster/initrd ; cd /tmp/remaster/initrd
root@UbuntuBW:/tmp/remaster/initrd# zcat ../initrd.gz | cpio -iv
root@UbuntuBW:/tmp/remaster/initrd# cp ~/Downloads/preseed.txt preseed.cfg
root@UbuntuBW:/tmp/remaster/initrd# find . -print0 | cpio -0 -H newc -ov | gzip -c > ../initrd.gz
root@UbuntuBW:/tmp/remaster# cd .. ; rm -rf initrd/

Nun kann das ISO mit der neuen initrd erstellt, danach das ursprüngliche ISO ausgehängt und alle Arbeitsverzeichnisse gelöscht werden. Der Befehl mkisofs muss dazu in dem Verzeichnis ausgeführt werden, in dem die Dateien für das ISO-Image liegen.

root@UbuntuBW:/tmp/remaster# mkisofs -r -V "Custom Ubuntu Preseed Install CD" -cache-inodes -J -l -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ~/Downloads/custom_preseed_install_cd.iso ./
root@UbuntuBW:/tmp/remaster# cd ; umount /dev/loop0 ; losetup -d /dev/loop0 ; rm -rf /tmp/remaster/

Automatische Erstellung einer Preseeding-ISO mittels Skript

Die o.g. Schritte zum Erstellen einer eigenen ISO mit Preseeding-Konfiguration in der initrd können auch mit einem Skript automatisiert werden.

Das Skript, welches zur Erstellung der hier angebotenen Images verwendet wurde, findet sich ebenfalls unter den Downloads der Images:

Das Skript wird als root aufgerufen mit den originalen ISO, der preseed.cfg und dem Pfad für das neue ISO als Argumenten:

mkpreseediso.sh <original-iso> <path-to-preseed.cfg> <path-to-new-iso>

Zusätzlich zu den o.g. Schritten erzwingt das Skript das deutsche Tastaturlayout beim Installer per Kernelparameter, da in einigen Tests trotz Preseeding-Option der Installer noch danach fragte.

Für weitere Änderungen, z.B. platzieren von Paketen oder Skripten auf der ISO oder weiteren Kernelparameter, muss das Skript angepasst werden. Zu Neuerstellung einer ISO bei Verwendung einer anderen Ausgangs-ISO oder mit einer neuen preseed.cfg kann das Skript direkt verwendet werden, z.B.:

benny@UbuntuBW:~$ sudo bin/mkpreseediso.sh ~/PowerFolders/preseed-dev/debian-7.1.0-amd64-mini.iso ~/PowerFolders/preseed-dev/debian-7.1.0-generic-preseed.cfg ~/Downloads/demo-debian7.iso
OK: ISO file found at /home/benny/PowerFolders/preseed-dev/debian-7.1.0-amd64-mini.iso.
OK: preseed.cfg found at /home/benny/PowerFolders/preseed-dev/debian-7.1.0-generic-preseed.cfg.
INFO: Creating working directories... done.
INFO: mounting ISO on loopback... done. Mounted at /dev/loop0.
INFO: mounting loopback at working directory... done.
INFO: copying netinstall contents to working directory... done.
INFO: adding timeout to boot menu... done.
INFO: adding keymap tp kernel parameters... done.
INFO: creating working directories for initrd... done.
INFO: unpacking initrd... done.
INFO: copying preseed.cfg... done.
INFO: rebuilding initrd... done.
INFO: cleaning up initrd tmp dir... done.
INFO: remastering ISO... done. ISO file written to /home/benny/Downloads/demo-debian7.iso.
INFO: cleaning up... done.
benny@UbuntuBW:~$