Paravis USB installer 2.0 (C++ port)

This commit is contained in:
paravis committed 2026-11-07 20:40:47 +03:00
commit ce8b49d0ec
18 files changed
+4119

No files matched your search

+64
View File
@@ -0,0 +1,64 @@
# PARAVIS FLASH — утилита разметки USB-диска (legacy AutoIt)
Исходный текст оригинальной версии на AutoIt (`usb-install.au3`).
Поддерживаемая версия — C++-порт в корне репозитория (`src/`, `CMakeLists.txt`).
`Paravis installer.exe` — 32-битная сборка (Windows 8 и новее, x86/x64).
## Что делает
Размечает выбранный USB-диск под мультизагрузочную флешку:
| # | Размер | ФС | Метка | Назначение |
|---|--------|-----|-------|------------|
| 1 | 16 384 МБ (16 ГБ) | FAT32 | `PARAVIS` | основной раздел, активный (bootmgr / g4d) |
| 2 | 32 МБ | FAT | `VTOYEFI` | раздел Ventoy |
| 3 | остальное − 1 − 16384 − 32 − 3 МБ | exFAT | `DATA` | данные |
| — | 3 МБ в конце | — | — | нераспределённые (нужны Ventoy; в интерфейсе не показываются) |
Разметка — MBR (`convert mbr`). Все данные на диске уничтожаются
(есть подтверждение, по умолчанию «Нет»).
## Распаковка файлов из архива
После успешной разметки и проверки раскладки утилита распаковывает архив
**`Data.pf`** (лежит рядом с exe) на созданные разделы:
| образ | раздел | содержимое |
|---|---|---|
| `1-PARAVIS` | 1-й (FAT32, PARAVIS) | программа, g4d, Xorboot, KRD, Strelec, MSDaRT, UBCD |
| `2-VTOYEFI` | 2-й (FAT, VTOYEFI) | Ventoy |
| `3-DATA` | 3-й (exFAT, DATA) | пусто (структура `ISO\Ventoy`) |
Где ищется архив:
* **только рядом с exe**, файл с именем **`Data.pf`**: `<папка exe>\Data.pf`;
* никакого поиска по другим папкам и никаких диалогов выбора — если файла
нет, утилита сообщает, что архив не найден, и файлы не копирует
(разметка при этом уже выполнена);
* служебный параметр `/wim=<путь>` оставлен только для автотестов.
Раздел определяется по номеру раздела на выбранном диске
(`Win32_DiskPartition.DiskIndex/Index` + ассоциация
`Win32_LogicalDiskToPartition`), а не по букве.
Архив `Data.pf` — это обычный WIM без сжатия (`/Compress:none`), только под
другим именем. DISM применяет его так же, как `.wim`.
## Служебные ключи (не для обычного запуска)
| Ключ | Назначение |
|------|------------|
| `/selftest` | пишет `%TEMP%\paravis_selftest.txt` (Windows-dir, номера системных дисков, admin) и выходит |
| `/verify=N` | пишет результат проверки раскладки диска N в `%TEMP%\paravis_verify.txt` (только чтение) |
| `/testdisk=N` | работает с диском N без выбора в списке — только для автотестов на VHD |
| `/wim=<путь>` | путь к архиву (по умолчанию — `Data.pf` рядом с exe) |
## Сборка
```
"C:\Program Files (x86)\AutoIt3\Aut2Exe\Aut2exe.exe" /in usb-install.au3 /out usb-install.exe /icon ..\..\windows-installer\sec.ico /x86
```
Автотесты (`driver*.au3`, `watch.au3`, скрипты PowerShell) в этот
репозиторий не входят: это были локальные стенды для VHD и реальной флешки.