====== Preseeding ======
===== Was ist preseeding? =====
Preseeding ist ein Verfahren für den Debian-Installer (([[http://wiki.debian.org/DebianInstaller/Preseed|Debian Wiki zu Preseed im Debian Installer]]))(([[http://www.debian.org/releases/stable/i386/apb.html|Debian Handbuch zur "Automatisieren der Installation mittels Voreinstellung"]])), 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 (([[http://www.howtoforge.com/linux_lvm|"A Beginner's Guide To LVM" howtoforge.com]]))(([[http://www.linuxhaven.de/dlhp/HOWTO/DE-LVM-HOWTO.html|"Linux LVM HOWTO" linuxhaven.de]])) 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 ''zram''((http://wiki.ubuntuusers.de/zRam))
* kein Swap auf physischen Blockdevices
* IO-Scheduler per Kernel-Parameter auf ''noop'' gestellt (([[https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2011861|Tuning options for disk I/O performance in Linux virtual machines (2011861)]]))
==== 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:
* Images für die Verwendung in __Virtual Machines__ (VMWare und andere):
* [[https://owncloud.gwdg.de/index.php/s/7sG9SbLlQESrcmV/download?path=%2F&files=ubuntu-20.04-amd64_vmware-vm-preseed_install.iso|Ubuntu 20.04, amd64]]
* Übersicht aller Downloads:
* [[https://owncloud.gwdg.de/index.php/s/7sG9SbLlQESrcmV|gwdg_preseeding]] auf owncloud.gwdg.de
===== 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|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:
- __**Änderung des Passwort**__ des primären Benutzers boss
- ggf. Änderung des Hostnamens und der Domain, falls diese bei der Installation nicht durch ein reverse DNS lookup aufgelöst und gesetzt wurden.
- 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 Passwort((http://wiki.ubuntuusers.de/passwd)) 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 Hostnames((http://wiki.ubuntuusers.de/Rechnername)) 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).
#
#
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|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:
- Mounten der ISO
- Kopieren des Inhalts
- Entpacken der initrd
- Platzieren der Preseeding-Konfiguration
- Packen der Initrd
- 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 [[#Anpassung_eines_Images_mit_eigener_Konfiguration|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:
* [[https://owncloud.gwdg.de/index.php/s/7sG9SbLlQESrcmV/download?path=%2F&files=mkpreseediso.sh|mkpreseediso.sh]]
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
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:~$
===== Links =====