====== 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 =====