Линукс с автоматической установкой
Иногда бывает необходимо сделать установку в автоматическом режиме, или просто количество машин на которые будет совершатся установка очень велико и на каждой нажимать ‘Далее’, ‘Далее’ не хватит ни времени ни нервов.
Есть решение этой проблемы.
Preseeding — метод автоматизации установки операционной системы Debian и ее производных.
Установочный образ буду делать на основе Lubuntu 18.04 LTS
Переходим в директорию где лежит наш образ и создаём скрипт. Для автоматического монтирования и распаковки.
Установим rsync, он нам понадобится для распаковки.
#!/bin/bash # Имя директории для распаковки BUILDDIR=iso # Название образа IMAGE=lubuntu-18.04.4-desktop-amd64.iso # Распаковываем образ в директорию rm -rf $BUILDDIR/ mkdir $BUILDDIR echo "----- Mounting image -----" sudo mount -o loop $IMAGE /mnt/iso echo "----- Syncing -----" rsync -av /mnt/iso/ $BUILDDIR chmod -R u+w $BUILDDIR sudo umount /mnt/iso echo "----- Complete -----"
Можно и без скрипта обойтись прописав все команды вручную в консоли.
Редактируем файл iso/boot/grub/grub.cfg . Добавляем в конец.
menuentry "Install Lubuntu CUSTOM" < set gfxpayload=keep linux /casper/vmlinuz file=/cdrom/preseed/lubuntu-1804.seed auto=true priority=critical debian-installer/locale=ru_RU keyboard-configuration/layoutcode=us ubiquity/reboot=true languagechooser/language-name=English countrychooser/shortlist=US localechooser/supported-locales=ru_RU.UTF-8 boot=casper automatic-ubiquity initrd=/casper/initrd quiet splash noprompt noshell --- initrd /casper/initrd >
Добавляем файл с инструкцией для автоматической установки. Обо всех опциях можно почитать здесь https://help.ubuntu.com/lts/installation-guide/s390x/apb.html
d-i debian-installer/locale string ru_RU.UTF-8 d-i debian-installer/keymap string us d-i keyboard-configuration/xkb-keymap select us d-i keyboard-configuration/toggle select No toggling d-i netcfg/choose_interface select auto d-i netcfg/get_hostname string localhost d-i netcfg/get_domain string localdomain d-i mirror/country string manual d-i mirror/http/hostname string archive.ubuntu.com d-i mirror/http/directory string /ubuntu d-i mirror/http/proxy string d-i passwd/root-login boolean true d-i passwd/root-password-crypted password $6$dNeJFAOOS9MN$G13fPx85sxDlHnxwTKjERFXUL09sGpVYlVWsNrF3PB3z4jiW39rOy6nOCjMJWY02AHyXEEs7p5gt0SCDOhtWH1 d-i passwd/make-user boolean true d-i passwd/user-fullname string user d-i passwd/username string user d-i passwd/user-password-crypted password $6$dNeJFAOOS9MN$G13fPx85sxDlHnxwTKjERFXUL09sGpVYlVWsNrF3PB3z4jiW39rOy6nOCjMJWY02AHyXEEs7p5gt0SCDOhtWH1 d-i passwd/user-default-groups string audio cdrom video sudo d-i user-setup/encrypt-home boolean false d-i clock-setup/utc boolean true d-i time/zone string UTC d-i clock-setup/ntp boolean true # LG provided NTP, should be replaced! d-i clock-setup/ntp-server string 0.ua.pool.ntp.org d-i preseed/early_command string umount /media d-i partman/unmount_active boolean true d-i partman-auto/disk string /dev/sda d-i partman-auto/method string regular d-i partman-auto/choose_recipe select atomic # This makes partman automatically partition without confirmation, provided 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/mount_style select uuid d-i base-installer/install-recommends boolean false d-i base-installer/kernel/altmeta string hwe-18.04 d-i apt-setup/restricted boolean true d-i apt-setup/universe boolean true d-i apt-setup/backports boolean true tasksel tasksel/first multiselect lubuntu-core d-i pkgsel/include string openssh-server d-i pkgsel/upgrade select full-upgrade d-i pkgsel/update-policy select none popularity-contest popularity-contest/participate boolean false d-i grub-installer/only_debian boolean true d-i finish-install/reboot_in_progress note
Создаём шифрованный пароль и изменяем строки:
passwd/root-password-crypted password
passwd/user-password-crypted password
Ставим дополнительные пакеты
apt install genisoimage isolinux wget xorriso
Копируем файл в директорию к нашим скриптам /usr/lib/ISOLINUX/isohdppx.bin
Создаём скрипт для создания ISO образа
isocompress.sh
MBR_FILE=isohdpfx.bin IMAGE=lubuntu-1804-custom.iso BUILD=iso/ xorriso -as mkisofs \ -r -V 'LUBUNTU 1804' \ -o $IMAGE \ -J -J -joliet-long -cache-inodes \ -isohybrid-mbr $MBR_FILE \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -boot-load-size 4 -boot-info-table -no-emul-boot \ -eltorito-alt-boot \ -e boot/grub/efi.img \ -no-emul-boot -isohybrid-gpt-basdat -isohybrid-apm-hfsplus \ $BUILD
Если нет ошибок, то получаем в нашей папке готовый образ. Теперь можно записывать на флешку и устанавливать.