Product SiteDocumentation Site

Глава 24. Автоматическая установка системы (autoinstall)

24.1. Файлы автоустановки
24.1.1. Формат файла vm-profile.scm
24.1.2. Формат файла pkg-groups.tar
24.1.3. Формат файла autoinstall.scm
24.1.4. Формат файла install-scripts.tar
24.2. Запуск автоматической установки
ОС Альт Рабочая станция K можно установить в автоматическом режиме. Для этого потребуется установочный диск и доступный по сети (по протоколам HTTP или FTP) каталог с несколькими файлами.

Примечание

Пример настройки FTP-сервера см. в разделе FTP.

24.1. Файлы автоустановки

Файлы автоустановки:
  • pkg-groups.tar — архив, содержащий дополнительные к базовой системе группы пакетов;
  • autoinstall.scm — сценарий автоматической установки на языке Scheme;
  • vm-profile.scm — сценарий с вариантами автоматической разбивки жёсткого диска на языке Scheme;
  • install-scripts.tar — архив, содержащий дополнительные скрипты для preinstall.d и postinstall.d в одноимённых каталогах. Скрипты должны быть исполняемыми. Скрипты из архива заменяют одноимённые скрипты инсталлятора.
Файлы, описывающие процесс установки, необходимо поместить в каталог (например, metadata), доступный по сети по протоколам HTTP или FTP.

24.1.1. Формат файла vm-profile.scm

Файл vm-profile.scm содержит сценарий на языке Scheme, описывающий профили автоматической разметки жёсткого диска.
Пример файла vm-profile.scm с одним профилем разметки (kworkstation):
((kworkstation
  (title . "Setup for kworkstation")
  (action . trivial)
  (actiondata  ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain))
               ("/" (size 40960000 . 40960000 ) (fsim . "Ext4") (methods plain))
               ("/home" (size 20480000 . #t ) (fsim . "Ext4") (methods plain))))
               )
В примере задана следующая разметка:
  • подкачка (swap) — 1024 МБ;
  • корневой раздел (/) — 20 ГБ;
  • /home — всё оставшееся место, но не менее 10 ГБ.

Примечание

Все значения размеров в файле vm-profile.scm задаются в 512-байтных блоках. Для перевода значения в байты необходимо умножить его на 512.

Примечание

Добавление записи для /boot/efi не требуется — установщик создаст его автоматически.
Каждая запись в actiondata описывает отдельный раздел, логический том или файловую систему. Общий формат:
("<точка монтирования>"
  (size <минимальный размер> . <максимальный размер>)
  (fsim . "<тип файловой системы>")
  (methods <метод>))

Таблица 24.1. Описание параметров actiondata

Параметр
Описание
"<точка монтирования>"
Точка монтирования раздела. Например: /, /home, swap
(size MIN . MAX)
Размер раздела в 512-байтных блоках. MIN — минимальный размер, MAX — максимальный. Значение #t означает использование всего оставшегося пространства
(fsim . "…")
Тип файловой системы
(methods …)
Метод размещения раздела: обычный раздел, LVM, RAID
(subvols …)
Описание подтомов BtrFS (используется только для BtrFS)
Поле fsim определяет тип создаваемой файловой системы. Примеры:
  • Ext4 — файловая система Ext4;
  • XFS — файловая система XFS;
  • SWAPFS — раздел подкачки (swap);
  • BtrFS — файловая система BtrFS;
  • FAT32 — файловая система FAT32 (например, для EFI-раздела).
Поле methods определяет способ размещения раздела или файловой системы при автоматической разметке диска.
Общий формат:
(methods <метод>)
или:
(methods (<метод> <параметры>))
Возможные методы:
  • plain — обычный раздел без LVM и RAID;
  • lvm — размещение раздела в логическом томе LVM;
  • raid — размещение раздела в программном RAID (mdadm).
Методы могут комбинироваться. Например:
(methods (raid (level . 1)) lvm)
В этом случае:
  1. Создаётся RAID-массив.
  2. Поверх RAID создаётся LVM.
  3. Файловая система размещается внутри логического тома.
Пример файла vm-profile.scm с несколькими профилями:
((kworkstation
  (title . "Setup for kworkstation")
  (action . trivial)
  (actiondata  ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain))
               ("/" (size 40960000 . 40960000 ) (fsim . "Ext4") (methods plain))
               ("/home" (size 2048000 . #t ) (fsim . "Ext4") (methods plain))))
  (kworkstation_lvm
  (title . "Setup for kworkstation LVM")
  (action . trivial)
  (actiondata  ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods lvm))
               ("/" (size 16384000 . #t ) (fsim . "Ext4") (methods lvm))))
  (timeshift
  (title . "Timeshift-compatible setup")
  (action . trivial)
  (actiondata  ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain))
               ("" (size 40960000 . #t) (fsim . "BtrFS") (methods plain) (subvols ("@" . "/") ("@home" . "/home")))))
               )
В примере определены следующие профили:
  • kworkstation — раздел подкачки (swap), корневой раздел / и раздел /home;
  • kworkstation_lvm — раздел подкачки (swap) и корневой раздел в томе LVM;
  • timeshift — раздел подкачки (swap) и файловая система BtrFS с подтомами @ и @home.
Имя используемого профиля указывается в файле autoinstall.scm:
("/evms/profiles/kworkstation" action apply commit #f clearall #t exclude ())

Важно

В текущей версии автоустановки невозможно указать конкретный жёсткий диск — установка выполняется на первый обнаруженный диск в системе.

24.1.1.1. Профиль с LVM

Автоустановщик поддерживает создание профилей с использованием LVM.
Для размещения раздела в LVM необходимо использовать конструкцию:
(methods (lvm (vg . "имя группы томов") (lv . "имя тома")))
где:
  • vg — имя группы томов (Volume Group);
  • lv — имя логического тома (Logical Volume).
Пример профиля с пользовательскими именами VG и LV:
((kworkstation_lvm
  (title . "Setup for kworkstation LVM")
  (action . trivial)
  (actiondata  ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods (lvm (vg . "vg1") (lv . "lv1"))))
               ("/" (size 40960000 . 40960000) (fsim . "Ext4") (methods (lvm (vg . "vg1") (lv . "lv2"))))
               ("/home" (size 2048000 . #t ) (fsim . "Ext4") (methods (lvm (vg . "vg1") (lv . "lv3"))))))
               )
Результат разметки:
$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   80G  0 disk
├─sda1        8:1    0  511M  0 part /boot/efi
└─sda2        8:2    0 79,5G  0 part
  ├─vg1-lv1 253:0    0  992M  0 lvm  [SWAP]
  ├─vg1-lv2 253:1    0 19,5G  0 lvm  /
  └─vg1-lv3 253:2    0   59G  0 lvm  /home
sr0          11:0    1  7,2G  0 rom
Если параметр (lv . "…") не указан, имя логического тома формируется автоматически на основе имени раздела. Например:
  • / — root;
  • /home — home;
  • swap — swap.
Пример:
((kworkstation_lvm
  (title . "Setup for kworkstation LVM")
  (action . trivial)
  (actiondata  ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods (lvm (vg . "vg1"))))
               ("/" (size 16384000 . #t ) (fsim . "Ext4") (methods (lvm (vg . "vg1"))))))
               )
Результат разметки:
$ lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda            8:0    0   80G  0 disk
├─sda1         8:1    0  511M  0 part /boot/efi
└─sda2         8:2    0 79,5G  0 part
  ├─vg1-swap 253:0    0  992M  0 lvm  [SWAP]
  └─vg1-root  253:1   0 78,5G  0 lvm  /
sr0           11:0    1  7,2G  0 rom
Можно указать имя группы томов (vg) и оставить автоматическое имя LV только для части разделов:
((kworkstation_lvm
  (title . "Setup for kworkstation LVM")
  (action . trivial)
  (actiondata  ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods (lvm (vg . "vg1"))))
               ("/" (size 16384000 . #t ) (fsim . "Ext4") (methods (lvm (vg . "vg1")(lv . "lv1"))))))
               )
Результат разметки:
$ lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda            8:0    0   80G  0 disk
├─sda1         8:1    0  511M  0 part /boot/efi
└─sda2         8:2    0 79,5G  0 part
  ├─vg1-swap 253:0    0  992M  0 lvm  [SWAP]
  └─vg1-lv1  253:1    0 78,5G  0 lvm  /
sr0           11:0    1  7,2G  0 rom
Если параметр (vg . "…") не указан, автоматически создаётся группа томов с именем alt. Пример:
((kworkstation_lvm
  (title . "Setup for kworkstation LVM")
  (action . trivial)
  (actiondata  ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods lvm))
               ("/" (size 16384000 . #t) (fsim . "Ext4") (methods lvm))))
                )
Результат разметки:
$ lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda            8:0    0   80G  0 disk
├─sda1         8:1    0  511M  0 part /boot/efi
└─sda2         8:2    0 79,5G  0 part
  ├─alt-swap 253:0    0  992M  0 lvm  [SWAP]
  └─alt-root 253:1    0 78,5G  0 lvm  /
sr0           11:0    1  7,2G  0 rom

Важно

Если хотя бы для одного раздела используется параметр vg, его необходимо указывать для всех разделов, размещаемых в LVM. Смешивание разделов с явно заданным vg и разделов с methods lvm без vg может приводить к ошибкам при автоматической разметке диска.

24.1.1.2. Профиль с RAID

Автоустановщик поддерживает создание профилей с использованием программного RAID (mdadm).

Примечание

В настоящее время (alterator-vm-0.4.49-alt2) рекомендуется использовать конфигурации с двумя дисками и RAID1. При использовании трёх и более дисков автоустановщик может автоматически выбирать другой уровень RAID в зависимости от числа доступных устройств и параметров профиля.
Поддерживается выбор версии суперблока RAID:
  • (superblock . #t) — использовать суперблок версии 1.2 (по умолчанию);
  • (superblock . #f) — использовать суперблок версии 1.0.
Версия суперблока особенно важна для загрузочных разделов UEFI. Для раздела /boot/efi рекомендуется использовать суперблок версии 1.0, поскольку некоторые прошивки UEFI не поддерживают чтение RAID-массивов с суперблоком 1.2.
Для создания RAID используется конструкция:
(methods (raid (superblock . #t) (level . 1)) plain)
где:
  • level — уровень RAID;
  • superblock — версия суперблока RAID;
  • plain — размещение файловой системы непосредственно на RAID-массиве без использования LVM.
Пример профиля с RAID1 и размещением раздела ESP (/boot/efi) в RAID:
((kworkstation_raid
  (title . "Setup for kworkstation RAID")
  (action . trivial)
  (actiondata
    ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods raid plain))
    ("/boot/efi" (size 1024000 . 1024000 ) (fsim . "FAT32")
        (methods (raid (superblock . #f) (level . 1)) plain))
    ("/home" (size 20971520 . 20971520 ) (fsim . "Ext4")
        (methods (raid (superblock . #t) (level . 1)) plain))
    ("/" (size 41943040 . #t ) (fsim . "Ext4")
        (methods (raid (superblock . #t) (level . 1)) plain))))
        )
В данном примере:
  • все разделы размещаются в RAID1;
  • для ESP используется суперблок версии 1.0;
  • для остальных массивов используется суперблок версии 1.2.

Примечание

В записи (methods raid plain):
  • raid определяет размещение раздела в RAID-массиве;
  • plain указывает на создание файловой системы непосредственно на RAID-устройстве.
Результат:
$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
sda       8:0    0   80G  0 disk
├─sda1    8:1    0  999M  0 part
│ └─md3   9:3    0  999M  0 raid1 [SWAP]
├─sda2    8:2    0  500M  0 part
│ └─md4   9:4    0  500M  0 raid1 /boot/efi
├─sda3    8:3    0 19,5G  0 part
│ └─md5   9:5    0 19,5G  0 raid1 /
└─sda4    8:4    0   59G  0 part
  └─md6   9:6    0   59G  0 raid1 /home
sdb       8:16   0   80G  0 disk
├─sdb1    8:17   0  999M  0 part
│ └─md3   9:3    0  999M  0 raid1 [SWAP]
├─sdb2    8:18   0  500M  0 part
│ └─md4   9:4    0  500M  0 raid1 /boot/efi
├─sdb3    8:19   0 19,5G  0 part
│ └─md5   9:5    0 19,5G  0 raid1 /
└─sdb4    8:20   0   59G  0 part
  └─md6   9:6    0   59G  0 raid1 /home
sr0      11:0    1  7,2G  0 rom
Версия суперблока RAID раздела /boot/efi:
# mdadm --detail /dev/md4
/dev/md4:
           Version : 1.0

Важно

Если раздел ESP (/boot/efi) размещается на RAID-массиве, на этапе установки загрузчика необходимо выбрать режим EFI (для съёмных устройств)>. Для этого в файле autoinstall.scm необходимо указать:
("/grub" action "write" device "efiremovable" passwd #f passwd_1 "*" passwd_2 "*")

24.1.2. Формат файла pkg-groups.tar

Файл pkg-groups.tar представляет собой tar-архив с двумя подкаталогами:
  • groups — содержит описание групп программного обеспечения в файлах *.directory;
  • lists — содержит файлы со списками пакетов для каждой группы, а также скрытый файл .base, содержащий список пакетов «базовой системы» (то есть пакетов, которые устанавливаются в любом случае).
Файл pkg-groups.tar проще всего взять из установочного ISO-образа из каталога /Metadata/ и при необходимости доработать.
Для изменения списка пакетов:
  1. Распакуйте архив, например, выполнив команду:
    $ tar xf pkg-groups.tar
    
  2. Перейдите в подкаталог lists и добавьте или измените файл группы. Имена пакетов указываются по одному в каждой строке, например, содержимое файла admc:
    admc
    alterator-gpupdate
    gpupdate
    local-policy
    admx-basealt
    samba-dc-common
    admx-firefox
    admx-chromium
    gpui
    
  3. Упакуйте архив, например, выполнив команду:
    $ tar cf pkg-groups.tar groups lists
    
Имя файла используемой группы затем указывается через пробел в autoinstall.scm:
("/pkg-install" action "write" lists "group-1 group-2" auto #t)
где group-1 и group-2 — имена файлов со списками пакетов из подкаталога lists.

Важно

В качестве источника пакетов при установке выступает сам установочный носитель, поэтому указание пакетов, отсутствующих на нём, приведёт к сбою установки.

24.1.3. Формат файла autoinstall.scm

Файл autoinstall.scm представляет собой командный скрипт программы установки, написанный на языке Scheme. Каждая строка скрипта — команда для соответствующего модуля программы установки.

Примечание

Ниже приведён пример файла autoinstall.scm для частного случая установки. Если требуются особые настройки, рекомендуется сначала выполнить установку вручную, изучить лог в /root/.install-log/wizard.log, и на его основе составить собственный скрипт autoinstall.scm.
Пример файла autoinstall.scm:
; установка языка операционной системы (ru_RU)
("/sysconfig-base/language" action "write" lang ("ru_RU"))

; установка переключателя раскладки клавиатуры на Ctrl+Shift
("/sysconfig-base/kbd" language ("ru_RU") action "write" layout "ctrl_shift_toggle")

; установка часового пояса в Europe/Moscow, время в BIOS будет храниться в UTC
("/datetime-installer" action "write" commit #t name "RU" zone "Europe/Moscow" utc #t)

; настройка сетевого интерфейса на получение адреса по DHCP
("/net-eth" action "write" reset #t)
("/net-eth" action "write" name "enp0s3" ipv "4" controlled "NetworkManager" configuration "dhcp" default "" search "" dns "" computer_name "newhost" ipv_enabled #t)
("/net-eth" action "write" commit #t)

; автоматическая разбивка жёсткого диска в профиле kworkstation_lvm
("/evms/control" action "write" control open installer #t)
("/evms/control" action "write" control update)
("/evms/profiles/kworkstation_lvm" action apply commit #f clearall #t exclude ())
("/evms/control" action "write" control commit)
("/evms/control" action "write" control close)

; установка пакетов операционной системы
("pkg-install-init" action "write")

; установка только базовой системы (дополнительные группы пакетов из pkg-groups.tar указываются по именам через пробел)
("/pkg-install" action "write" lists "" auto #t)
("/preinstall" action "write")

; установка загрузчика GRUB в EFI
("/grub" action "write" device "efi" passwd #f passwd_1 "*" passwd_2 "*")

; установка пароля суперпользователя root '123'
("/root/change_password" passwd_2 "123" passwd_1 "123")
; задание первого пользователя 'user' с паролем '123'
("/users/create_account" new_name "user" real_name "Пользователь" allow_su #t auto #f passwd_1 "123" passwd_2 "123" autologin #f)

;("/postinstall/firsttime" script "ftp://192.168.0.123/metadata/update.sh")

24.1.3.1. Переключатель раскладки клавиатуры

Установка переключателя раскладки клавиатуры выполняется строкой:
("/sysconfig-base/kbd" language ("ru_RU") action "write" layout "ctrl_shift_toggle")
Возможные значения параметра layout:
  • alt_sh_toggle — клавиши ALT+Shift;
  • caps_toggle — клавиша CapsLock;
  • ctrl_shift_toggle — клавиши Control+Shift;
  • ctrl_toggle — клавиша Control;
  • toggle — клавиша Alt.

24.1.3.2. Установка дополнительных пакетов

В приведённом выше примере выполняется установка системы в минимальном профиле (дополнительное ПО не устанавливается). Если необходимо установить, например, программы для поддержки принтеров и сканеров, в список устанавливаемых пакетов нужно добавить группы kworkstation/sound-editing и kworkstation/video-editing:
("/pkg-install" action "write" lists "kworkstation/printing kworkstation/scanning" auto #t)

24.1.3.3. Установка загрузчика

При установке системы в режиме EFI загрузчик устанавливается в EFI System Partition (ESP):
("/grub" action "write" device "efi" passwd #f passwd_1 "*" passwd_2 "*")
Параметр device может принимать следующие значения:
  • efi — рекомендуемая установка в режиме EFI;
  • eficlearnvram — установка в режиме EFI с предварительной очисткой NVRAM;
  • efinonvram — установка в режиме EFI без записи в NVRAM;
  • efiremovable — установка в режиме EFI для съёмных устройств;
  • none — не устанавливать загрузчик.

Примечание

Подробнее о вариантах установки загрузчика в режиме EFI см. в разделе Установка загрузчика.
Пример установки пароля на загрузчик в режиме EFI (пароль '123'):
("/grub" action "write" device "efi" passwd #t passwd_1 "123" passwd_2 "123")
При установке системы в режиме Legacy загрузчик GRUB обычно устанавливается на первый жёсткий диск, например:
("/grub" action "write" device "/dev/sda" passwd #f passwd_1 "*" passwd_2 "*")

24.1.3.4. Сетевые настройки

Параметр controlled задаёт используемую сетевую подсистему:
  • NetworkManager — NetworkManager (etcnet);
  • etcnet — Etcnet;
  • NetworkManagerNative — NetworkManager (native);
  • nothing — не контролируется.

Примечание

Подробнее о сетевых подсистемах см. в разделе Ethernet-интерфейсы .
Пример настройки сетевого интерфейса со статическим IP-адресом:
("/net-eth" action "write" reset #t)
("/net-eth" action "add_iface_address" name "enp0s3" add-ip "192.168.0.25" add-mask "24" ipv "4")
("/net-eth" action "write" name "enp0s3" ipv "4" controlled "NetworkManager" configuration "static" default "192.168.0.1" search "" dns "8.8.8.8" computer_name "newhost" ipv_enabled #t)
("/net-eth" action "write" commit #t)
где:
  • add-ip "192.168.0.25" — IP-адрес;
  • add-mask "24" — маска сети (в формате CIDR);
  • default "192.168.0.1" — шлюз по умолчанию;
  • dns "8.8.8.8" — DNS-сервер;
  • computer_name "newhost" — имя хоста.

24.1.3.5. Установка пароля суперпользователя root

Пароль суперпользователя можно задать:
  • в открытом виде:
    ("/root/change_password" passwd_1 "123" passwd_2 "123")
    
    где:
    • passwd_1, passwd_2 — пароль пользователя (значения должны совпадать в обоих параметрах).
  • в хешированном виде:
    ("/root/change_password" iscrypted #t  passwd_1 "$y$j9T$2LmRqmj4MUrITkwKF8Mx5/$v2CHpMzvsJfs2UuSQCvE2pqqNtfeeE1mny.val9aUs8")
    
    где:
    • iscrypted #t — использовать хеш пароля (#t — пароль в хешированном виде, #f — пароль в открытом виде);
    • passwd_1 — yescrypt-хеш пароля.

Примечание

Для получения yescrypt-хеша пароля можно использовать:
  • Perl:
    $ perl -e 'print crypt("mypass", "\$y\$j9T\$1234567890123456\$"), "\n";'
    
    где:
    • $y$ — идентификатор алгоритма yescrypt;
    • j9T — параметры алгоритма;
    • mypass — пароль;
    • 1234567890123456 — произвольная строка соли (16 символов);
  • утилиту mkpasswd (пакет mkpasswd):
    $ mkpasswd --method=yescrypt
    Password:
    $y$j9T$2LmRqmj4MUr…
    

24.1.3.6. Создание пользователей

В отличие от обычной установки, при автоустановке можно создать несколько пользователей.
Для создания каждого пользователя в файле autoinstall.scm необходимо добавить отдельную строку вида:
("/users/create_account" new_name "test" real_name "Test User" allow_su #f auto #f passwd_1 "123" passwd_2 "123" autologin #f)
где:
  • new_name — имя пользователя (логин);
  • real_name — отображаемое имя пользователя;
  • allow_su — добавлять пользователя в группу wheel (#t — да, #f — нет);
  • auto #f — не генерировать пароль автоматически;
  • passwd_1, passwd_2 — пароль пользователя (значения должны совпадать в обоих параметрах);
  • autologin — включить (#t) или отключить (#f) автоматический вход в систему.
Пароль пользователя можно указать в хешированном виде:
("/users/create_account" new_name "user" real_name "Пользователь" allow_su #t auto #f iscrypted #t passwd_1 "$y$j9T$2LmRqmj4MUrITkwKF8Mx5/$v2CHpMzvsJfs2UuSQCvE2pqqNtfeeE1mny.val9aUs8" autologin #f)
где:
  • iscrypted #t — использовать хеш пароля (#t — пароль в хешированном виде, #f — пароль в открытом виде);
  • passwd_1 — yescrypt-хеш пароля.

Примечание

Для получения yescrypt-хеша пароля можно использовать:
  • Perl:
    $ perl -e 'print crypt("mypass", "\$y\$j9T\$1234567890123456\$"), "\n";'
    
    где:
    • $y$ — идентификатор алгоритма yescrypt;
    • j9T — параметры алгоритма;
    • mypass — пароль;
    • 1234567890123456 — произвольная строка соли (16 символов);
  • утилиту mkpasswd (пакет mkpasswd):
    $ mkpasswd --method=yescrypt
    Password:
    $y$j9T$2LmRqmj4MUr…
    

24.1.3.7. Выполнение дополнительных скриптов

В конец файла autoinstall.scm можно добавить шаг /postinstall, позволяющий выполнить команду или скрипт в конце установки или при первом запуске системы. Например:
("/postinstall/firsttime" script "ftp://192.168.0.123/metadata/update.sh")
Шаг /postinstall поддерживает два уровня запуска:
  • laststate — выполняется перед перезагрузкой после установки ОС;
  • firsttime — выполняется при первом запуске установленной системы.
Для указания выполняемого кода доступны два метода (method):
  • script — скачивает и выполняет скрипт с удалённого сервера (поддерживаются протоколы http и ftp). Скрипт скачивается во время установки, а запускается в зависимости от уровня запуска;
  • run — выполняет указанную команду или набор команд напрямую (возможно указание перенаправления).

    Важно

    Для каждого уровня (laststate или firsttime) метод run должен быть указан не более одного раза. Если их несколько, будет выполнен только последний.
Примеры:
("/postinstall/firsttime" script "http://server/script.sh")
("/postinstall/firsttime" run "curl --silent --insecure http://server/finish")

("/postinstall/laststate" script "http://server/script.sh")
("/postinstall/laststate" run "curl --silent --insecure http://server/gotoreboot")

Примечание

На уровне laststate система ещё не запущена, а корневая файловая система смонтирована в каталоге, указанном через переменную $destdir. Поэтому для работы с файлами установленной системы необходимо:
  • использовать $destdir в путях;
  • выполнять команды через утилиту run_chroot.
Пример скрипта:
#!/bin/sh

a= . install2-init-functions

run_chroot sh -c "date > /root/STAMP_1"
date > $destdir/root/STAMP_2

24.1.4. Формат файла install-scripts.tar

Файл install-scripts.tar представляет собой tar-архив, содержащий дополнительные скрипты:
  • preinstall.d — скрипты, выполняемые после установки базовой системы. Как правило, это скрипты для дополнительной настройки базовой системы (перед установкой дополнительного набора ПО) и для переноса настроек из среды инсталлятора. Добавлять сюда свои собственные скрипты стоит только тогда, когда вы чётко представляете свои цели;
  • postinstall.d — скрипты, выполняемые после завершения всей установки, перед перезагрузкой. Как правило, это скрипты, удаляющие служебные пакеты инсталлятора из базовой системы. Подходят для финальной настройки, очистки временных файлов и т.д.

Важно

Данные скрипты выполняются в среде установщика, а не в среде установленной системы. Поэтому для доступа к файлам целевой системы необходимо использовать $destdir или run_chroot (см. пример выше).
Скрипты preinstall.d необходимо поместить в каталог preinstall.d, скрипты postinstall.d — в каталог postinstall.d. Упаковать архив можно, выполнив команду:
$ tar cf install-scripts.tar preinstall.d postinstall.d