БАТНИК — самодостаточный автономный алгоритм: при активации распознаёт свою среду (железо + ОС, карта по фактам), решает, по какому алгоритму и с какими ядрами действовать, идёт в сеть в репозиторий пунктов и собирает актуальную на момент запуска ОС, выводя полный готовый ISO в место, указанное запускающим, — с пунктами, оптимально настроенными под его конкретную конфигурацию.
Канон: карта=территория · пункт фиксируется с «почему только так» · опасное пассивно · честные русские отказы · журнал в момент такта.
v0.1.1 (2026-10-29): глубокий обход ВСЕХ 13 реп Хозяина с токеном — велосипеда нет,
всё готовое взято: манифест-практика PHOENIX вжита в оба ядра (МАНИФЕСТ.json
рядом с ISO — SHA256, размер, дата, карта, параметры). Доноры каждой части:
docs/КАРТА-ИСТОЧНИКОВ.md.
- Скачай репозиторий (или хотя бы
ЗАПУСК.bat). - Правь ТОЛЬКО блок КОНФИГ в начале батника:
VYHOD(куда ISO),CEL_OSI(auto|win11), редакция/выпуск/язык, учётка автоустановки. - Запусти
ЗАПУСК.batдвойным кликом (права администратора НЕ нужны). - Сначала проверь план: поставь
DRY=1, потом собирай:DRY=0. - Готовый ISO:
Desktop\OS-FORGE\OSFORGE_win11_*_x64.iso. Запись на флешку: Rufus, режим DD. Загрузка — UEFI.
chmod +x запуск.sh
./запуск.sh сухой-прогон # план без исполнения
DRY=0 ./запуск.sh всё # карта → решение → сборка → ISO
# нужно: xorriso + isolinux (sudo apt-get install -y xorriso isolinux)Готовый ISO: output/OSFORGE_debian_amd64.iso.
| Стадия | Windows | Linux |
|---|---|---|
| АКТИВАЦИЯ | curl/powershell на месте? | xorriso/isolinux на месте? |
| КАРТА | CIM/WMI: CPU, RAM, GPU, диски, сеть, прошивка, локаль | /proc, lspci, df, /sys/firmware/efi |
| РЕШЕНИЕ | ветка win11 по карте+КОНФИГУ | ветка debian по карте |
| СЕТЬ | ядра+каталог по тегу v0.1, Fido по хэш-пину → официальная ссылка Microsoft | официальный cdimage.debian.org + SHA256SUMS |
| СБОРКА | Mount-DiskImage → autounattend+драйверы+пункты → IMAPI2 (UDF, EFI) | preseed в isolinux И grub → xorriso isohybrid |
| АРТЕФАКТ | ISO + SHA256 в ВЫХОД | ISO + SHA256 в output |
| ЖУРНАЛ | ЖУРНАЛ.txt в момент такта | ЖУРНАЛ.txt в момент такта |
catalog/ — не документация, а управляющий слой: батник исполняет строки
ACTIVE|... и игнорирует # PASS|.... Активация пункта = раскомментировать
строку. Каждый пункт обязан объяснять «ПОЧЕМУ ТОЛЬКО ТАК» и «ПО ДРУГОМУ НЕТ».
Драйверы Windows: положи распакованные .inf-паки в папку Драйверы рядом
с батником — они сами уложатся в ISO (\Драйверы + DriverPaths).
Пароль учётной записи автоустановки не хранится в репозитории — и не должен там оказаться. Модель такая:
- ПУСТО в КОНФИГЕ = случайный на каждую сборку. Ядро
inject.ps1само генерирует свежий пароль (24 знака, сложность Windows). Значение НЕ логируется: ни ЖУРНАЛ, ни консоль, ни МАНИФЕСТ.json его не содержат — манифест фиксирует только модель (password_model), не значение. - Задан руками — работай как бутстрэп. Значение оператора тоже не логируется и тоже живёт только до первого входа (см. ниже). Статичный пароль, переиспользуемый от сборки к сборке, — дыра; не оставляй его.
- Честное ограничение формата: пароль учётки лежит в ISO плейнтекстом
(
autounattend.xml,<PlainText>true</PlainText>— иначе autounattend не умеет). Поэтому впечённое значение — бутстрэп-only: первая команда первого входа (OSFORGE:rotate-pass, Order 1) заменяет его на новый случайный, и впечённое значение на этой машине умирает. - AutoLogon в шаблоне НЕТ — безмолвного входа не бывает: первый вход
всегда руками. Бутстрэп-пароль взять негде, кроме самого ISO (значение не
логируется): оператор либо сам его задал, либо читает его в
autounattend.xmlна ISO. Дальше обязательно: задай СВОЙ пароль в первой же сессии (Ctrl+Alt+Del → «Сменить пароль»). Иначе после перезагрузки вход закрыт паролем, которого не знает никто, — восстановление только переустановкой. Это не преувеличение, это цена ротации. - ISO до первого входа = носитель живого бутстрэп-пароля. Не выкладывай артефакт в сеть, не отдавай чужим до первого входа на целевой машине.
docs/ТЗ.md— формализация: N=субъект=агент=человек (роль, не индивид), семь стадий, девять законов, границы v0.1.docs/ПОЧЕМУ-ТОЛЬКО-ТАК.md— свод шрамов: почему каждое «только так».docs/КАРТА-ИСТОЧНИКОВ.md— доноры из 13 реп Хозяина: кто дал канон, кто дал манифест-практику, кто дал жанр; свёрка «вжито/честно пассивно».
- Windows-ветка структурно выверена, но живой Windows-машины в песочнице не было — первый запуск на реальном Windows считается приёмкой.
- Linux: карта/решение/сухой прогон проверены живьём; полная сборка (~700 МБ скачивания) — на машине запускающего.
- Автодобыча вендорских драйвер-паков (NVIDIA/AMD/Intel) — v0.2 (ссылки ротируются, пункты честно пассивны). Ubuntu — v0.2 (autoinstall).
MIT — см. LICENSE.
- Ядра рядом (основной, работает всегда): скачай репозиторий ZIP и держи
cores/+catalog/рядом с батником — сетевого raw не нужно вовсе. - Ядра из сети (REPO_RAW): с 2026-10-29 этот репозиторий ПУБЛИЧНЫЙ —
raw по тегу
v0.1.1читается без токена; батник сам тянет ядра и каталог. Дом батника: https://github.com/rtynbirf/os-forge (вынесен из приватной штаб-квартиры ruvson-lyrics по аудиту 4.1/4.14 — смешение доменов «тексты песен» и «сборка ОС» устранено).
Закреплено 2026-11-06 (ревизия ПОЛИМАТ):
- Linux:
catalog/SHA256-PINS.txt— таблица хэш-пинов сверенных образов. Пинdebian-13.7.0-amd64-netinst.iso(792 723 456 байт):a7ef94ac2fb9a7fec454552abd629b7cc9d5155c886165a45649f5ce6167e355— образ скачан целиком, SHA-256 посчитан над скачиванием и сверён с официальнымSHA256SUMScdimage.debian.org (совпадение байт-в-байт, 16 потоков). Ядроbuild-debian.shтеперь сверяет скачанный образ с пином ДО сверки по живомуSHA256SUMS: расхождение с любым из двух — ОТКАЗ сборки. Пин привязан к точному имени файла: «current» уехал на новую версию — пин молчит, целостность держит свежийSHA256SUMS(механика v0.1). - Windows: пина нет по честным причинам — прямые ссылки Microsoft живут
< 48 часов, официального
SHA256SUMSу Microsoft нет. Целостность держат: Fido по хэш-пину из каталога 00 (официальный резолвер) иМАНИФЕСТ.jsonрядом с готовым ISO (SHA-256 артефакта пишется в момент сборки). Вписывать хеш «по памяти» запрещено законом карта=территория.
Англоязычный алиас запуска: RUN.bat (вызывает ЗАПУСК.bat, для окружений,
где кириллические имена файлов ломают автоматизацию).

