https://www.altlinux.org/Autoinstall Несправедливо забыли добавить поддержку в install-scripts.tar скриптов для initinstall.d, они бы как раз могли покрыть 99% хотелок и отсутствия гибкости инсталлера хотя бы своими bash скриптами... preinstall.d и postinstall.d конечно круто, но это не то. Они не позволяют вмешаться в процесс до начала установки системы, например, в разметку диска. Когда хочется иметь свою логику для разных систем, а не полагаться зашитую в образ и в один единственный файл vm-profile.scm.
Проблема в том, что install-scripts.tar вытягивается initinstall скриптом. И его перенести на более раннюю стадию также нельзя, потому что ещё одним initinstall скриптом настраивается сеть.
vm/profiles.scm всегда было можно подложить свой: https://www.altlinux.org/Autoinstall
(Ответ для Антон Мидюков на комментарий #2) > vm/profiles.scm всегда было можно подложить свой: > https://www.altlinux.org/Autoinstall Можно. Но если у меня в vm-profile.sсm прописано два и более профилей, как мне потом его выбрать в autoinstall.scm ? Проблема. Я сейчас использую два отдельных каталога metadata на сервере, то есть на каждый профиль свой отдельный metadata и в каждом свой autoinstall.scm и vm-profile.scm. Это неудобно. В других дистрибутивах обычно инсталлер позволяет либо запустить некий скрипт в init скриптах, чтобы подправить конфиг как нужно, либо в рамках конфигурации инсталлера есть возможность использовать условия. Ни того, ни другого тут я не вижу, к сожалению. Также в /pkg-install сильно не хватает установки пакета не из lists, а просто произвольный пакет указать, например, package "htop vim-console" и тп. Вообще, если честно, все эти вещи с хранением скриптов и списка пакетов в tar не очень удобно использовать... Распакуй, исправь, запакуй...
Нашёл, казалось бы, отличные и простой вариант /postinstall/laststate для установки пакета... ("/postinstall/laststate" run "exec_chroot apt-get install -y htop") Но и он не работает, потому что перед 99-zz.. отрабатывает 99-online-repo.sh, который отключает репу с CDROM. Жаль.
(Ответ для Антон Мидюков на комментарий #1) > Проблема в том, что install-scripts.tar вытягивается initinstall скриптом. И > его перенести на более раннюю стадию также нельзя, потому что ещё одним > initinstall скриптом настраивается сеть. загрузка скриптов выполняется в 27-metadata-install-scripts.sh, не вижу проблем запускать скрипт хоть сразу после этого скрипта
(In reply to Антон Мидюков from comment #1) > Проблема в том, что install-scripts.tar вытягивается initinstall скриптом. И > его перенести на более раннюю стадию также нельзя, потому что ещё одним > initinstall скриптом настраивается сеть. Если немного переработать цикл запуска скриптов initinstall.d, можно такую поддержку добавить, избавив от необходимости перепаковки ISO со сквошом. Попробую изобразить...
Created attachment 15810 [details] 35-computername.sh Скрипт для автоматического присвоения имени хосту.
Created attachment 15811 [details] 35-excludedisks.sh Скрипт для исключения всех дисков, кроме заданного через /proc/cmdline, который будет найден по указанному размеру.
Для начала прицепил пару скриптов из реальной практики. Нужно дать возможность их запускать на стадии initinstall.d без перепаковки установщика. Исходить будем из того, что на этой стадии, в числе прочего, выполняются 10-network.sh, 26-metadata-autoinstall.sh и 27-metadata-install-scripts.sh.
Created attachment 15812 [details] Возможный вариант решения Все скрипты до 30-xxx.sh выполняются последовательно и не могут быть удалены или перезаписаны. Начиная с 30-xxx.sh скрипты могут быть перезаписаны, но не могут быть удалены. Перед их выполнением каталог initinstall.d перечитывается.
Task 344502.