Автоматическая установка Debian

Существует несколько способов автоматизировать установку операционной системы. В данном примере будет показан способ полной автоматизации при помощи модификации установочного носителя.
Установите пакеты, которые будут использоваться в автоматизации:
Создайте директории для распаковки установочного носителя (образа диска в формате iso):
Смонтируйте носитель (он будет смонтирован в режиме чтения):
Скопируйте данные носителя для модификации:
Размонтируйте носитель и удалите директорию (она больше не нужна):
Отредактируйте файл cd/isolinux/isolinux.cfg в соответствии с образцом:
# D-I config version 2.0
# search path for the c32 support libraries (libcom32, libutil etc.)
path
prompt 0
timeout 4
autoselect auto
include menu.cfg
default vesamenu.c32
Отредактируйте файл cd/isolinux/prompt.cfg в соответствии с образцом:
prompt 1
display f1.txt
timeout 4
include menu.cfg
include exithelp.cfg
f1 f1.txt
f2 f2.txt
f3 f3.txt
f4 f4.txt
f5 f5.txt
f6 f6.txt
f7 f7.txt
f8 f8.txt
f9 f9.txt
f10 f10.txt
Отредактируйте файл cd/isolinux/menu.cfg в соответствии с образцом:
menu hshift 4
menu width 70
menu title Debian GNU/Linux installer menu (BIOS mode)
include stdmenu.cfg
include gtk.cfg
Отредактируйте файл cd/isolinux/gtk.cfg в соответствии с образцом:
default auto
label auto
menu label ^Automated install
menu default
kernel /install.amd/vmlinuz
append auto=true priority=critical vga=788 initrd=/install.amd/initrd.gz --- quiet
Подготовьте файл автоматизации ответов на вопросы инсталлятора preseed.cfg в соответствии с образцом (замените значения параметров ниже на нужные вам):
### Localization
d-i debian-installer/language string en
d-i debian-installer/country string RU
### Keyboard
d-i keymap select ru
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string ru
d-i console-setup/variant select Россия
d-i console-setup/toggle select Alt+Shift
### Network configuration
d-i netcfg/choose_interface select auto
d-i netcfg/dhcp_timeout string 2
d-i netcfg/get_hostname string localhost
d-i netcfg/get_domain string localdomain
d-i netcfg/confirm_static boolean false
d-i netcfg/disable_dhcp boolean false
# Static (optional)
#d-i netcfg/get_nameservers string 8.8.8.8
#d-i netcfg/get_ipaddress string 192.168.1.10
#d-i netcfg/get_netmask string 255.255.255.0
#d-i netcfg/get_gateway string 192.168.1.1
#d-i netcfg/confirm_static boolean true
### Timezone
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Moscow
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string 192.168.1.1
### Users
d-i passwd/root-password password rootpassword
d-i passwd/root-password-again password rootpassword
d-i passwd/user-fullname string Local Administrator
d-i passwd/username string administrator
d-i passwd/user-password password administratorpassword
d-i passwd/user-password-again password administratorpassword
d-i passwd/user-default-groups sudo
### Partition
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select atomic
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
# Automatically partition without confirmation
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
# Do not send data about installation
popularity-contest popularity-contest/participate boolean false
### Package selection
tasksel tasksel/first multiselect ssh-server
d-i pkgsel/include string sudo python3-apt aptitude
### Finish install
d-i finish-install/keep-consoles boolean true
d-i finish-install/reboot_in_progress note
d-i cdrom-detect/eject boolean true
### Grub
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i grub-installer/bootdev string default
Перепакуйте initrd с заменой файла preseed.cfg на созданный выше (предположим, созданный файл размещается в ~):
cd irmod/
gzip -d < ../cd/install.amd/initrd.gz | cpio --extract --verbose --make-directories --no-absolute-filenames
cp -f ~/preseed.cfg preseed.cfg
find . | cpio -H newc --create --verbose | gzip -9 > ../cd/install.amd/initrd.gz
cd ../
rm -fr irmod/
Пересчитайте контроьные суммы файлов:
Сформируйте образ диска с модифицированной конфигурацией процедуры установки:
cd ..
genisoimage -o debian-preseed.iso -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat ./cd
rm -rf cd
Сформированный образ можно использовать для установки физических или виртуальных машин.