Inhaltsverzeichnis
Nachfolgend soll die Installation von DEBIAN mittels einer vorkonfigurierten Datei („preseed.cfg“) beschrieben werden.
1 - Preseed
DEBIAN unterstützt eine halb-automatisierte Installation mittels Konfigurations-„Antworten“ aus einer sogenannten „Preseed“-Datei. Diese wird dann bei der Installation angegeben und für die Beantwortung der sonst interaktiv gestellten Fragen genutzt. Nachfolgend wurde die Datei „preseed.cfg“ auf der NAS („nas.fritz.box“) im Wurzelverzeichnis abgelegt, weil dort ein unverschlüsselter Webzugriff möglich ist.
Die Datei besitzt folgenden Inhalt:
d-i debian-installer/locale string de_DE d-i keyboard-configuration/xkb-keymap select de d-i netcfg/choose_interface select auto d-i netcfg/dhcp_timeout string 60 d-i netcfg/get_hostname string slxdeb d-i netcfg/get_domain string seu.polizei.niedersachsen.de d-i hw-detect/load_firmware boolean true d-i passwd/make-user boolean false d-i passwd/root-password-crypted password $6$rzAHtYZqwBQdAAkE$X16ga3OZSm20Ok0Xb9Qn79LWoPpxqOucRF6rVEPt/CK0tq.RBCVXA1FTn.rH6oFOM4pPzIcapQH97b3QNHlDT0 d-i clock-setup/utc boolean true d-i time/zone string CET d-i clock-setup/ntp boolean true d-i clock-setup/ntp-server string fritz.box d-i partman-auto/method string lvm d-i partman-auto-lvm/guided_size string max d-i partman-lvm/device_remove_lvm boolean true d-i partman-md/device_remove_md boolean true d-i partman-lvm/confirm boolean true d-i partman-lvm/confirm_nooverwrite boolean true d-i partman-auto/choose_recipe select multi d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true d-i partman-md/confirm boolean true d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true d-i partman/mount_style select traditional d-i apt-setup/cdrom/set-first boolean false d-i apt-setup/non-free-firmware boolean true d-i apt-setup/non-free boolean true d-i apt-setup/contrib boolean true d-i apt-setup/disable-cdrom-entries boolean true d-i apt-setup/local0/repository string http://nas.fritz.box/repo/debian trixie main contrib non-free non-free-firmware d-i apt-setup/local0/comment string Debian 13 tasksel tasksel/first multiselect standard, ssh-server d-i pkgsel/include string openssh-server build-essential mc vim curl wget popularity-contest popularity-contest/participate boolean false d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true d-i finish-install/reboot_in_progress note d-i preseed/late_command string \ sed -i '1d' /target/etc/apt/sources.list; \ sed -i 's/^#deb /deb \[trusted=yes\]/g' /target/etc/apt/sources.list; \ in-target apt update; \ in-target apt -y install sudo; \ echo "PermitRootLogin yes">> /target/etc/ssh/sshd_config
Hinweis : Die vollständige Datei mit Kommentaren ist hier zu finden.
Nach dem Starten der Installation vom Medium (es wird aktuell das DVD-Installationsmedium verwendet: „debian-13.2.0-amd64-DVD-1.iso“) im Menü die erweiterten Optionen („Advanced options … “) öffnen und dort dann die automatische Installation („… Automated install“) starten. Nach einer Weile wird dann ein Fenster angezeigt, in dem die „Preseed“-Konfigurationsdatei angegeben werden muss:
BILD
Eintrag: „http://nas.fritz.box/preseed.cfg“
Nach der Installation wird das Medium ausgeworfen und der Rechner startet neu.
2 - Preseed-Integriertes Medium
Im ersten Versuch liegt die „Preseed“-Konfigurationsdatei auf einem Webserver, welcher während der Installation manuell eingetragen werden muss. Im nächsten Schritt wird jetzt versucht, diese Datei in das Medium zu integrieren, damit der eben genannte manuelle Schritt wegfällt.
Die nachfolgende Anleitung (entnommen von den Seiten „linuxfoundation.org“ und „github.com“) hat zum Erfolg geführt:
Schritt 1: Erstellen der Verzeichnisstruktur und Bereitstellen der Kopie eines Installationsmediums (es muss zweimal Speicherplatz der Größe des Installationsmediums vorhanden sein):
~# mkdir -v ISO mkdir: Verzeichnis 'ISO' angelegt ~# mount debian-13.2.0-amd64-DVD-1.iso /mnt/ mount: /mnt: WARNING: source write-protected, mounted read-only. mount: /dev/loop0 mounted on /mnt. ~# cp -rvT /mnt/ ISO/ '/mnt/debian' -> 'ISO/debian' '/mnt/md5sum.txt' -> 'ISO/md5sum.txt' '/mnt/README.html' -> 'ISO/README.html' ... '/mnt/.disk/udeb_include' -> 'ISO/.disk/udeb_include' '/mnt/.disk/id' -> 'ISO/.disk/id' '/mnt/.disk/id/fbc9022a-ae94-457b-9cf0-d11ebb3e339f' -> 'ISO/.disk/id/fbc9022a-ae94-457b-9cf0-d11ebb3e339f' ~# umount -v /mnt umount: /mnt unmounted ~#
Hinweis: Das Medium „debian-13.2.0-amd64-DVD-1.iso“ wird hier zur Installation verwendet. Es sind natürlich auch andere Versionen möglich.
Schritt 2: Hinzufügen der Datei „preseed.cfg“ zur „initrd“:
~# chmod -v +w --recursive ISO/install.amd/ der Modus von 'ISO/install.amd/' wurde von 0555 (r-xr-xr-x) in 0755 (rwxr-xr-x) geändert der Modus von 'ISO/install.amd/initrd.gz' wurde von 0444 (r--r--r--) in 0644 (rw-r--r--) geändert der Modus von 'ISO/install.amd/vmlinuz' wurde von 0444 (r--r--r--) in 0644 (rw-r--r--) geändert der Modus von 'ISO/install.amd/xen' wurde von 0555 (r-xr-xr-x) in 0755 (rwxr-xr-x) geändert der Modus von 'ISO/install.amd/xen/debian.cfg' wurde von 0444 (r--r--r--) in 0644 (rw-r--r--) geändert der Modus von 'ISO/install.amd/xen/initrd.gz' wurde von 0444 (r--r--r--) in 0644 (rw-r--r--) geändert der Modus von 'ISO/install.amd/xen/vmlinuz' wurde von 0444 (r--r--r--) in 0644 (rw-r--r--) geändert der Modus von 'ISO/install.amd/gtk' wurde von 0555 (r-xr-xr-x) in 0755 (rwxr-xr-x) geändert der Modus von 'ISO/install.amd/gtk/initrd.gz' wurde von 0444 (r--r--r--) in 0644 (rw-r--r--) geändert der Modus von 'ISO/install.amd/gtk/vmlinuz' wurde von 0444 (r--r--r--) in 0644 (rw-r--r--) geändert \ ~# gunzip -v ISO/install.amd/initrd.gz ISO/install.amd/initrd.gz: 68.6% -- replaced with ISO/install.amd/initrd \ ~# echo preseed.cfg | cpio -v -H newc -o -A -F ISO/install.amd/initrd preseed.cfg 54 Blöcke \ \ ~# gzip -v ISO/install.amd/initrd ISO/install.amd/initrd: 68.3% -- replaced with ISO/install.amd/initrd.gz \ ~# chmod -v -w --recursive ISO/install.amd/ der Modus von 'ISO/install.amd/' wurde von 0755 (rwxr-xr-x) in 0555 (r-xr-xr-x) geändert der Modus von 'ISO/install.amd/initrd.gz' wurde von 0644 (rw-r--r--) in 0444 (r--r--r--) geändert der Modus von 'ISO/install.amd/vmlinuz' wurde von 0644 (rw-r--r--) in 0444 (r--r--r--) geändert der Modus von 'ISO/install.amd/xen' wurde von 0755 (rwxr-xr-x) in 0555 (r-xr-xr-x) geändert der Modus von 'ISO/install.amd/xen/debian.cfg' wurde von 0644 (rw-r--r--) in 0444 (r--r--r--) geändert der Modus von 'ISO/install.amd/xen/initrd.gz' wurde von 0644 (rw-r--r--) in 0444 (r--r--r--) geändert der Modus von 'ISO/install.amd/xen/vmlinuz' wurde von 0644 (rw-r--r--) in 0444 (r--r--r--) geändert der Modus von 'ISO/install.amd/gtk' wurde von 0755 (rwxr-xr-x) in 0555 (r-xr-xr-x) geändert der Modus von 'ISO/install.amd/gtk/initrd.gz' wurde von 0644 (rw-r--r--) in 0444 (r--r--r--) geändert der Modus von 'ISO/install.amd/gtk/vmlinuz' wurde von 0644 (rw-r--r--) in 0444 (r--r--r--) geändert ~#
Schritt 3: Neuerstellen der Prüfsummen:
~# cd ISO
~# find -type f -exec md5sum "{}" +> md5sum.txt
~# find -follow -type f ! -name md5sum.txt -print0 | xargs -0 md5sum> md5sum.txt
find: Dateisystemschleife erkannt; ‘./debian’ ist ein Teil der gleichen Schleife wie ‘.’.
~# chmod -v -w md5sum.txt
Modus von 'md5sum.txt' als 0444 (r--r--r--) erhalten
~# cd ..
~#
Schritt 4: Extahieren des MBR aus der originalen Installationsdatei:
~# dd if=debian-13.2.0-amd64-DVD-1.iso bs=1 count=432 of=mbr.bin 432+0 Datensätze ein 432+0 Datensätze aus 432 Bytes kopiert, 0,000642607 s, 672 kB/s ~#
Schritt 5: Erstellen des angepassten Installationsmediums:
~# xorriso -as mkisofs -r -J --joliet-long -V 'Debian 12 Preseed' -o debian-13-preseed.iso -isohybrid-mbr mbr.bin -partition_offset 16 -c isolinux/boot.cat \ -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat \ -isohybrid-apm-hfsplus ISO xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project. Drive current: -outdev 'stdio:debian-12-preseed.iso' Media current: stdio file, overwriteable Media status : is blank Media summary: 0 sessions, 0 data blocks, 0 data, 17.5g free xorriso : WARNING : -volid text problematic as automatic mount point name xorriso : WARNING : -volid text is too long for Joliet (17> 16) xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules Added to ISO image: directory '/'='/home/root/ISO' xorriso : UPDATE : 9512 files added in 1 seconds xorriso : UPDATE : 9512 files added in 1 seconds xorriso : NOTE : Copying to System Area: 432 bytes from file '/home/root/mbr.bin' ... libisofs: NOTE : Automatically adjusted MBR geometry to 1022/247/32 libisofs: NOTE : Aligned image size to cylinder size by 1967 blocks xorriso : UPDATE : 2.13% done xorriso : UPDATE : 27.47% done xorriso : UPDATE : 41.99% done, estimate finish Mon Nov 11 17:42:25 2024 xorriso : UPDATE : 51.20% done, estimate finish Mon Nov 11 17:42:26 2024 xorriso : UPDATE : 60.44% done, estimate finish Mon Nov 11 17:42:27 2024 xorriso : UPDATE : 69.85% done, estimate finish Mon Nov 11 17:42:28 2024 xorriso : UPDATE : 79.22% done, estimate finish Mon Nov 11 17:42:28 2024 xorriso : UPDATE : 94.81% done ISO image produced: 2019472 sectors Written to medium : 2019472 sectors at LBA 0 Writing to 'stdio:debian-13-preseed.iso' completed successfully. ~#
Hinweis: Dafür ist das Programm „xorriso“ notwendig, welches aus den Quellen installiert werden kann.
Das erstellte Installationsmedium „debian-13-preseed.iso“ kann jetzt als Bootmedium ausgewählt werden. Wenn die Installation startet, muss wieder unter den erweiterten Optionen („Advanced options …“) die automatische Installation („… Automated install“) ausgewählt werden. Danach sollte die Installation ohne weitere Benutzereingabe durchgeführt werden.
3 - Preseed-Skript
Auf Grundlage des „Preseed-Integriertes Mediums“ wurde ein Skript erstellt, welches mit Hilfe eines DEBIAN-Installationsmediums und einer Preseed-Konfigurationsdatei ein entsprechendes Preseed-ISO-Installationsmedium erstellt. Das Skript kann wie folgt aufgerufen werden:
Syntax:
~# ErzeugePreseedISO -p <Preseed-Konfigurationsdatei> -i <DEBIAN-Installationsmedium> -v <Erstellungsverzeichnis>
Hinweis: Im „Erstellungsverzeichnis“ wird ein entsprechendes Unterverzeichnis „preseed“ angelegt.
Beispiel:
~# ErzeugePreseedISO -p preseed.cfg -i debian-iso-image.iso -v /tmp
.Ende des Dokuments