Информация |
---|
Данная статья применима к:
|
Настройка DHCP/TFTP-сервера
Установим необходимые пакеты:
Command |
---|
sudo apt install isc-dhcp-server tftpd-hpa pxelinux syslinux |
Где:
- Пакеты для DHCP-сервера:
- isc-dhcp-server - DНCP-севрер;
- Пакеты для TFTP-сервера:
- tftpd-hpa - TFTP-server;
- pxelinux - загрузчик для сетевой загрузки PXE;
- syslinux - загрузчик для сетевой загрузки DOS FAT / NTFS;
Настройка службы DHCP
Пропишем наш сетевой интерфейс в /etc/default/isc-dhcp-server:
Блок кода |
---|
INTERFACESv4="eth0" |
Настроим /etc/dhcp/dhcpd.conf. В данной конфигурации dhcp сервер будет определять тип клиента (UEFI или Legacy BIOS) и отдавать ему нужный загрузчик.
Блок кода |
---|
authoritative; option domain-name "my.dom"; default-lease-time 600; max-lease-time 7200; log-facility local7; option domain-name-servers 8.8.8.8; allow booting; allow bootp; option fqdn.no-client-update on; option fqdn.rcode2 255; option pxegrub code 150 = text ; next-server 192.168.56.1; option architecture code 93 = unsigned integer 16 ; if option architecture = 00:07 { filename "bootx64.efi"; } elsif option architecture = 00:09 { filename "bootx64.efi"; } else { filename "pxelinux.0"; } subnet 192.168.56.0 netmask 255.255.255.0 { range 192.168.56.20 192.168.56.250; option domain-name "example.com"; option broadcast-address 192.168.56.255; option routers 192.168.56.1; option subnet-mask 255.255.255.0; } |
Для загрузки по сети нужны следующие файлы:
- pxelinux.0;
- библиотеки syslinux;
- ядро ОС;
- специальный initrd.
Эти файлы находятся на установочном диске в каталоге netinst. Скопируем ядро и initrd в /srv/tftp/.
Для Astra Linux SE Смоленск (предполагается, что основной установочный диск находится в приводе компакт дисков):
Command |
---|
sudo mkdir /srv/repo/smolensk/main |
Для Astra Linux CE Орел (предполагается, что образ установочного диска нходтся в файле orel.iso):
Command |
---|
sudo mkdir /srv/repo/orel |
Скопируем файл pxelinux.0 и необходимые библиотеки syslinux:
Command |
---|
sudo cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/ |
Создадим каталог:
Command |
---|
sudo mkdir -p /srv/tftp/pxelinux.cfg |
И создадим файл /srv/tftp/pxelinux.cfg/default со следующим содержимым:
Блок кода |
---|
ui menu.c32 PROMPT 0 MENU TITLE PXE Boot menu TIMEOUT 50 DEFAULT local LABEL local MENU LABEL Boot from local drive kernel chain.c32 append hd0 # Astra Linux SE Smolensk LABEL netinstall MENU LABEL Start Astra Linux Smolensk net install kernel smolensk/linux append initrd=smolensk/initrd.gz modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=astra16 domain=my.dom astra-license/license=true url=http://192.168.56.1/repo/smolensk/preseed.cfg interface=auto netcfg/dhcp_timeout=60 # Astra Linux CE Orel LABEL netinstall MENU LABEL Start Astra Linux Orel net install kernel orel/linux append initrd=orel/initrd.gz modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=orel212 domain=my.dom astra-license/license=true url=http://192.168.56.1/repo/orel/preseed.cfg interface=auto netcfg/dhcp_timeout=60 |
По умолчанию стоит загрузка с локального жесткого диска, что бы избежать повторной автоматической установки, после завершения первой, или случайной установки на компьютер с уже установленной ОС, подключенный к этой же сети.
Для загрузки в режиме UEFI служит специальный EFI образ загрузчика grub: скачать
Распакуйте архив netinst.tar.gz в /srv/tftp
Command |
---|
sudo tar xvf netinst.tar.gz -C /srv/tftp |
Рассмотрим конфигурационный файл /srv/tftp/debian-installer/amd64/grub.cfg
Блок кода |
---|
if loadfont $prefix/font.pf2 ; then set gfxmode=800x600 set gfxpayload=keep insmod efi_gop insmod efi_uga insmod video_bochs insmod video_cirrus insmod gfxterm insmod png terminal_output gfxterm fi if background_image /isolinux/splash.png; then set color_normal=light-gray/black set color_highlight=white/black else set menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi menuentry "Boot default EFI bootloader" { set background_color=black regexp -s root '\((.+)\)' "$cmdpath" chainloader /EFI/Boot/Bootx64.efi } # Установка Astra Linux SE Смоленск menuentry 'Install Astra Linux SE Smolensk' { set background_color=black linux /smolensk/linux modprobe.blacklist=evbug debian-installer/allow_unauthenticated=true auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=test2 domain=my.dom astra-license/license=true url=ftp://192.168.56.1/repo/smolensk/preseed.cfg interface=auto netcfg/dhcp_timeout=60 initrd /smolensk/initrd.gz } # Установка Astra Linux CE Орел menuentry 'Install Astra Linux CE Orel' { set background_color=black linux /orel/linux modprobe.blacklist=evbug debian-installer/allow_unauthenticated=true auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=test2 domain=my.dom astra-license/license=true url=ftp://192.168.56.1/orel/preseed.cfg interface=auto netcfg/dhcp_timeout=60 initrd /orel/initrd.gz } |
По умолчанию стоит загрузка образа EFI из EFI/Boot/Bootx64.efi (на некоторых системах может быть иначе), что бы избежать повторной автоматической установки, после завершения первой, или случайной установки на компьютер с уже установленной ОС, подключенный к этой же сети.
Перезапускаем сервисы:
Command |
---|
sudo systemctl restart isc-dhcp-server |
Автоматическая установка с помощью файла preseed.cfg
Файл preseed.cfg для Astra Linux SE Смоленск 1.6: preseed_smol.cfg
Файл preseed.cfg для Astra Linux CE Орел 2.12: preseed_orel.cfg
Файл preseed.cfg скопировать в /srv/repo/smolensk или /srv/repo/orel
Разберем важные параметры файла preseed:
Указываем путь к репозиторию с установочными файлами. Если используется протокол ftp меняем http на ftp и раскомментируем строку d-i mirror/protocol string ftp.
Блок кода |
---|
# Если вы выберете ftp, то mirror/country string устанавливать не нужно. #d-i mirror/protocol string ftp d-i mirror/country string manual d-i mirror/http/hostname string 192.168.56.1 d-i mirror/http/directory string /repo/smolensk/main d-i mirror/http/proxy string |
Устанавливаем часовой пояс
Блок кода |
---|
# Здесь вы можете указать любое допустимое значение для $TZ; смотрите # допустимые значения в файле /usr/share/zoneinfo/. d-i time/zone string Europe/Moscow |
В следующем блоке подготавливаются разделы на жестком диске (по умолчанию стоит автоматическое создание с использованием всего диска, с одним корневым разделом и своп разделом)
Раскрыть |
---|
#Если система имеет свободное место, вы можете выбрать для разметки |
Создание пользователя user и задание пароля:
Блок кода |
---|
# Создать учётную запись обычного пользователя. d-i passwd/user-fullname string user d-i passwd/username string user # Пароль обычного пользователя, или открытым текстом d-i passwd/user-password password 12345678 d-i passwd/user-password-again password 12345678 |
Устанавливаемые компоненты:
Блок кода |
---|
tasksel tasksel/first multiselect Base, Fly # Доступные компоненты и входящие в них пакеты можно посмотреть в /usr/share/tasksel/debian-tasks.desc |
Дополнительно устанавливаемые пакеты можно указать в:
Блок кода |
---|
# Отдельные дополнительные пакеты для установки d-i pkgsel/include string openssh-server |
Установка загрузчика. По умолчанию, загрузчик ставится на первый диск в MBR. Но в Astra Linux CE Орел необходимо указать вручную, на какой диск ставить загрузчик:
Блок кода |
---|
# В ОС ALCE Орел необходимо указывать на какой диск ставить загрузчик grub-installer grub-installer/choose_bootdev select /dev/sda d-i grub-pc/install_devices multiselect /dev/sda # По умолчанию grub ставится на первый диск # Или же, если вы хотите установить загрузчик не в mbr, # то раскомментируйте и отредактируйте следующие строки: #d-i grub-installer/only_debian boolean false #d-i grub-installer/with_other_os boolean false #d-i grub-installer/bootdev string (hd0,0) #d-i grub-pc/install_devices multiselect /dev/sda # Для установки grub на несколько дисков: #d-i grub-installer/bootdev string (hd0,0) (hd1,0) (hd2,0) |
Пароль для загрузчика:
Блок кода |
---|
# Необязательный пароль на grub, или в виде открытого текста d-i grub-installer/password password 12345678 d-i grub-installer/password-again password 12345678 |
Самый последний параметр позволяет выполнить команды перед завершением установки и перезагрузки компьютера, например включить ssh сервер:
Блок кода |
---|
# Эта команда выполняется перед окончанием установки, пока ещё # есть рабочий каталог /target. Вы можете выполнить chroot в /target # и непосредственно использовать его, или же воспользоваться командами # apt-install и in-target для облегчения задачи установки пакетов и # запуска команд в целевой системе. d-i preseed/late_command string in-target systemctl enable ssh.service |
Теперь, если подключить машину к этой сети и настроить в BIOS/UEFI загрузку по сети, автоматически запустится установка Astra Linux . Так же можно, установить систему, вручную ответив на все вопросы и после установки выполнить
Command |
---|
debconf-get-selections --installer > preseed.new |
Это создаст файл preseed.new с готовыми ответами, который можно использовать при следующих установках.
Установка обновлений, во время установки системы
В ОС ОН Орёл можно выполнить обновление указав в late-command:
Блок кода |
---|
d-i preseed/late_command string in-target apt update; in-target apt dist-upgrade; |
В ОС СН Смоленске все немного сложнее для автоматической установки обновлений создаем файл update.service в корне ftp или http сервера с таким содержимым:
Блок кода |
---|
[Unit] Description=Update system After=rc-local.service network-online.target Before=getty.target Before=systemd-user-sessions.service [Service] StandardOutput=tty Type=oneshot ExecStart=/usr/local/bin/update.sh [Install] WantedBy=multi-user.target |
Там же создаем файл /usr/local/bin/update.sh c таким содержимым:
Блок кода |
---|
#!/bin/bash clear # тут добавляем в /etc/apt/sources.list наши репозитории echo "deb ftp://repo/smolensk/mounted-iso-main smolensk main contrib non-free" > /etc/apt/sources.list echo "deb ftp://repo/smolensk/mounted-iso-devel smolensk main contrib non-free" >> /etc/apt/sources.list echo "deb ftp://repo/smolensk/repository-update smolensk main contrib non-free" >> /etc/apt/sources.list echo "deb ftp://repo/smolensk/repository-update-dev smolensk main contrib non-free" >> /etc/apt/sources.list echo "Updating system, please wait..." echo "Do not turn off your computer!" apt-get update &> /dev/null apt-get -y dist-upgrade &> /dev/null apt-get -y install chromium &> /dev/null rm -f /etc/systemd/system/multi-user.target.wants/update.service systemctl daemon-reload rm -f /usr/local/bin/update.sh reboot |
а в preseed.conf в конец добавляем:
Блок кода |
---|
d-i preseed/late_command string in-target wget -O /usr/local/bin/update.sh ftp://192.168.56.1/update.sh; \ in-target chmod +x /usr/local/bin/update.sh; \ in-target wget -O /lib/systemd/system/update.service ftp://192.168.56.1/update.service; \ in-target systemctl enable update.service; |
Выполняем установку, после первой перезагрузки выполнится наш скрипт, самоудалится и перезагрузит машину. Готово.
------------------------------------------
Создание репозитория
Допустим, у нас есть сервер, с настроенным сетевым интерфейсом: ip 192.168.56.1
Astra Linux SE Smolensk 1.6
Создать директорию и скопировать туда содержимое установочного диска (например с образа iso):
Command |
---|
sudo mkdir -p /srv/repo/smolensk/main |
Command |
---|
sudo mount -t iso9660 -o loop /путь_к_исо /media/cdrom |
Command |
---|
sudo cp -a /media/cdrom /srv/repo/smolensk/main |
Если есть диск со средствами разработки:
Command |
---|
sudo mkdir -p /srv/repo/smolensk/devel |
Для диска с обновлением:
Command |
---|
sudo mkdir -p /srv/repo/smolensk/update |
Для диска с обновлением средств разработки:
Command |
---|
sudo mkdir -p /srv/repo/smolensk/update-dev |
Astra Linux CE "Орел"
Скопировать репозиторий с диска:
Command |
---|
sudo mkdir -p /srv/repo/orel sudo mount -t iso9660 -o loop /путь_к_исо /media/cdrom sudo cp -a /media/cdrom /srv/repo/orel |
HTTP репозиторий
Установить пакеты:
Command |
---|
sudo apt-get install apache2 |
сделать симлинк на репозиторий:
Command |
---|
sudo ln -s /srv/repo /var/www/html/repo |
В /etc/apache2/sites-enabled/000-default.conf после строки DocumentRoot /var/www/html добавить:
Блок кода | ||
---|---|---|
| ||
<Directory /var/www/html/repo> Options Indexes MultiViews FollowSymLinks AllowOverride None Order Deny,Allow Allow from all </Directory> |
Перезапустить апач
Command |
---|
sudo systemctl restart apache2 |
Адреса реп (понадобятся позже для обновления системы)
Для Astra Linux CE "Орел"
Блок кода | ||||
---|---|---|---|---|
| ||||
deb http://192.168.56.1/repo/orel orel main contrib non-free |
Для Astra Linux SE "Смоленск":
Блок кода | ||||
---|---|---|---|---|
| ||||
deb http://192.168.56.1/repo/smolensk/main smolensk main contrib non-free # если скопированы диски разработчика и обновления: deb http://192.168.56.1/repo/smolensk/devel smolensk main contrib non-free deb http://192.168.56.1/repo/smolensk/update smolensk main contrib non-free deb http://192.168.56.1/repo/smolensk/update-devel smolensk main contrib non-free |
Настройка сервисов
Установим isc-dhcp и tftpd сервер:
Command |
---|
sudo apt install isc-dhcp-server tftpd-hpa pxelinux syslinux |
Пропишем наш сетевой интерфейс в /etc/default/isc-dhcp-server:
Блок кода |
---|
INTERFACESv4="eth0" |
Настроим /etc/dhcp/dhcpd.conf. В данной конфигурации dhcp сервер будет определять тип клиента (UEFI или Legacy BIOS) и отдавать ему нужный загрузчик.
Блок кода |
---|
authoritative;
option domain-name "my.dom";
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
option domain-name-servers 8.8.8.8;
allow booting;
allow bootp;
option fqdn.no-client-update on;
option fqdn.rcode2 255;
option pxegrub code 150 = text ;
next-server 192.168.56.1;
option architecture code 93 = unsigned integer 16 ;
if option architecture = 00:07 {
filename "bootx64.efi";
} elsif option architecture = 00:09 {
filename "bootx64.efi";
} else {
filename "pxelinux.0";
}
subnet 192.168.56.0 netmask 255.255.255.0 {
range 192.168.56.20 192.168.56.250;
option domain-name "example.com";
option broadcast-address 192.168.56.255;
option routers 192.168.56.1;
option subnet-mask 255.255.255.0;
}
|
Для загрузки по сети нужны файлы pxelinux.0, ядро ОС и специальный initrd (их можно найти на установочном диске в директории netinstall)
Скопируем ядро и initrd в /srv/tftp/
Для Astra Linux SE Смоленск
Command |
---|
sudo mkdir /srv/tftp/smolensk sudo cp /srv/repo/smolensk/main/netinst/linux /srv/tftp/smolensk/ sudo cp /srv/repo/smolensk/main/netinst/initrd.gz /srv/tftp/smolensk/ |
Для Astra Linux CE Орел:
Command |
---|
sudo mkdir /srv/tftp/orel/ sudo cp /srv/repo/orel/netinst/linux /srv/tftp/orel/ sudo cp /srv/repo/orel/netinst/initrd.gz /srv/tftp/orel/ |
Автоматическая установка с помощью файла preseed.cfg
Файл preseed.cfg для Astra Linux SE Смоленск 1.6: preseed_smol.cfg
Файл preseed.cfg для Astra Linux
Command |
---|
sudo cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/ sudo cp /usr/lib/syslinux/modules/bios/{chain.c32,ldlinux.c32,libcom32.c32,libutil.c32,menu.c32} /srv/tftp/ |
Создадим директорию
Command |
---|
sudo mkdir -p /srv/tftp/pxelinux.cfg |
а в ней файл default со следующим содержимым:
Блок кода |
---|
ui menu.c32
PROMPT 0
MENU TITLE PXE Boot menu
TIMEOUT 50
DEFAULT local
LABEL local
MENU LABEL Boot from local drive
kernel chain.c32
append hd0
# Astra Linux SE Smolensk
LABEL netinstall
MENU LABEL Start Astra Linux Smolensk net install
kernel smolensk/linux
append initrd=smolensk/initrd.gz modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=astra16 domain=my.dom astra-license/license=true url=http://192.168.56.1/repo/smolensk/preseed.cfg interface=auto netcfg/dhcp_timeout=60
# Astra Linux CE Orel
LABEL netinstall
MENU LABEL Start Astra Linux Orel net install
kernel orel/linux
append initrd=orel/initrd.gz modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=orel212 domain=my.dom astra-license/license=true url=http://192.168.56.1/repo/orel/preseed.cfg interface=auto netcfg/dhcp_timeout=60 |
По умолчанию стоит загрузка с локального жесткого диска, что бы избежать повторной автоматической установки, после завершения первой, или случайной установки на компьютер с уже установленной ОС, подключенный к этой же сети.
Для загрузки в режиме UEFI служит специальный EFI образ загрузчика grub: скачать
Распакуйте архив netinst.tar.gz в /srv/tftp
Command |
---|
sudo tar xvf netinst.tar.gz -C /srv/tftp |
Рассмотри конфигурационный файл /srv/tftp/debian-installer/amd64/grub.cfg
Блок кода |
---|
if loadfont $prefix/font.pf2 ; then
set gfxmode=800x600
set gfxpayload=keep
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod gfxterm
insmod png
terminal_output gfxterm
fi
if background_image /isolinux/splash.png; then
set color_normal=light-gray/black
set color_highlight=white/black
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
menuentry "Boot default EFI bootloader" {
set background_color=black
regexp -s root '\((.+)\)' "$cmdpath"
chainloader /EFI/Boot/Bootx64.efi
}
# Установка Astra Linux SE Смоленск
menuentry 'Install Astra Linux SE Smolensk' {
set background_color=black
linux /smolensk/linux modprobe.blacklist=evbug debian-installer/allow_unauthenticated=true auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=test2 domain=my.dom astra-license/license=true url=ftp://192.168.56.1/repo/smolensk/preseed.cfg interface=auto netcfg/dhcp_timeout=60
initrd /smolensk/initrd.gz
}
# Установка Astra Linux CE Орел
menuentry 'Install Astra Linux CE Orel' {
set background_color=black
linux /orel/linux modprobe.blacklist=evbug debian-installer/allow_unauthenticated=true auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=test2 domain=my.dom astra-license/license=true url=ftp://192.168.56.1/orel/preseed.cfg interface=auto netcfg/dhcp_timeout=60
initrd /orel/initrd.gz
}
|
По умолчанию стоит загрузка образа EFI из EFI/Boot/Bootx64.efi (на некоторых системах может быть иначе), что бы избежать повторной автоматической установки, после завершения первой, или случайной установки на компьютер с уже установленной ОС, подключенный к этой же сети.
Перезапускаем сервисы:
Command |
---|
sudo systemctl restart isc-dhcp-server sudo systemctl restart tftpd-hpa |
Автоматическая установка с помощью файла preseed.cfg
Файл preseed.cfg для Astra Linux SE Смоленск 1.6: preseed_smol.cfg
Файл preseed.cfg для Astra Linux CE Орел 2.12: preseed_orel.cfg
Файл preseed.cfg скопировать в /srv/repo/smolensk или /srv/repo/orel
Разберем важные параметры файла preseed:
Указываем путь к репозиторию с установочными файлами. Если используется протокол ftp меняем http на ftp и раскомментируем строку d-i mirror/protocol string ftp.
Блок кода |
---|
# Если вы выберете ftp, то mirror/country string устанавливать не нужно. #d-i mirror/protocol string ftp d-i mirror/country string manual d-i mirror/http/hostname string 192.168.56.1 d-i mirror/http/directory string /repo/smolensk/main d-i mirror/http/proxy string |
Устанавливаем часовой пояс
Блок кода |
---|
# Здесь вы можете указать любое допустимое значение для $TZ; смотрите # допустимые значения в файле /usr/share/zoneinfo/. d-i time/zone string Europe/Moscow |
В следующем блоке подготавливаются разделы на жестком диске (по умолчанию стоит автоматическое создание с использованием всего диска, с одним корневым разделом и своп разделом)
Раскрыть |
---|
#Если система имеет свободное место, вы можете выбрать для разметки |
Создание пользователя user и задание пароля:
Блок кода |
---|
# Создать учётную запись обычного пользователя. d-i passwd/user-fullname string user d-i passwd/username string user # Пароль обычного пользователя, или открытым текстом d-i passwd/user-password password 12345678 d-i passwd/user-password-again password 12345678 |
Устанавливаемые компоненты:
Блок кода |
---|
tasksel tasksel/first multiselect Base, Fly # Доступные компоненты и входящие в них пакеты можно посмотреть в /usr/share/tasksel/debian-tasks.desc |
Дополнительно устанавливаемые пакеты можно указать в:
Блок кода |
---|
# Отдельные дополнительные пакеты для установки d-i pkgsel/include string openssh-server |
Установка загрузчика. По умолчанию, загрузчик ставится на первый диск в MBR. Но в Astra Linux CE Орел необходимо указать вручную, на какой диск ставить загрузчик:
Блок кода |
---|
# В ОС ALCE Орел необходимо указывать на какой диск ставить загрузчик grub-installer grub-installer/choose_bootdev select /dev/sda d-i grub-pc/install_devices multiselect /dev/sda # По умолчанию grub ставится на первый диск # Или же, если вы хотите установить загрузчик не в mbr, # то раскомментируйте и отредактируйте следующие строки: #d-i grub-installer/only_debian boolean false #d-i grub-installer/with_other_os boolean false #d-i grub-installer/bootdev string (hd0,0) #d-i grub-pc/install_devices multiselect /dev/sda # Для установки grub на несколько дисков: #d-i grub-installer/bootdev string (hd0,0) (hd1,0) (hd2,0) |
Пароль для загрузчика:
Блок кода |
---|
# Необязательный пароль на grub, или в виде открытого текста d-i grub-installer/password password 12345678 d-i grub-installer/password-again password 12345678 |
Самый последний параметр позволяет выполнить команды перед завершением установки и перезагрузки компьютера, например включить ssh сервер:
Блок кода |
---|
# Эта команда выполняется перед окончанием установки, пока ещё # есть рабочий каталог /target. Вы можете выполнить chroot в /target # и непосредственно использовать его, или же воспользоваться командами # apt-install и in-target для облегчения задачи установки пакетов и # запуска команд в целевой системе. d-i preseed/late_command string in-target systemctl enable ssh.service |
Теперь, если подключить машину к этой сети и настроить в BIOS/UEFI загрузку по сети, автоматически запустится установка Astra Linux
Так же можно, установить систему, вручную ответив на все вопросы и после установки выполнить
debconf-get-selections --installer > preseed.new
debconf-get-selections >> preseed.new
Это создаст preseed.new с готовыми ответами, который можно использовать при следующих установках.
Установка обновлений
,во время установки системы
В орле можно выполнить обновление указав в late-command:
Блок кода |
---|
d-i preseed/late_command string in-target apt update; in-target apt dist-upgrade; |
В смоленске все немного сложнее.
Создаем файл update.service в корне ftp или http сервера с таким содержимым:
Блок кода |
---|
[Unit] Description=Update system After=rc-local.service network-online.target Before=getty.target Before=systemd-user-sessions.service [Service] StandardOutput=tty Type=oneshot ExecStart=/usr/local/bin/update.sh [Install] WantedBy=multi-user.target |
Там же создаем файл update.sh c таким содержимым:
Блок кода |
---|
#!/bin/bash clear # тут добавляем в /etc/apt/sources.list наши репозитории echo "deb ftp://192.168.32.1/astra/current/smolensk/mounted-iso-main smolensk main contrib non-free" > /etc/apt/sources.list echo "deb ftp://192.168.32.1/astra/current/smolensk/mounted-iso-devel smolensk main contrib non-free" >> /etc/apt/sources.list echo "deb ftp://192.168.32.1/astra/current/smolensk/repository-update smolensk main contrib non-free" >> /etc/apt/sources.list echo "deb ftp://192.168.32.1/astra/current/smolensk/repository-update-dev smolensk main contrib non-free" >> /etc/apt/sources.list echo "Updating system, please wait..." echo "Do not turn off your computer!" apt-get update &> /dev/null apt-get -y dist-upgrade &> /dev/null apt-get -y install chromium &> /dev/null rm -f /etc/systemd/system/multi-user.target.wants/update.service systemctl daemon-reload rm -f /usr/local/bin/update.sh reboot |
а в preseed.conf в конец добавляем:
Блок кода |
---|
d-i preseed/late_command string in-target wget -O /usr/local/bin/update.sh ftp://192.168.56.1/update.sh; \ in-target chmod +x /usr/local/bin/update.sh; \ in-target wget -O /lib/systemd/system/update.service ftp://192.168.56.1/update.service; \ in-target systemctl enable update.service; |
Выполняем установку, после первой перезагрузки выполнится наш скрипт, самоудалится и перезагрузит машину. Готово.