Linux4Ever

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

debian-linux/debian-preseed.txt · Zuletzt geändert: von 127.0.0.1