# ventoy-extras PowerShell helpers for keeping a tidy [Ventoy](https://www.ventoy.net/) USB drive. Drops a pile of randomly-named ISOs into a sensible directory tree, then generates a categorised `ventoy.json` so the boot menu groups them by OS family instead of vomiting one flat list. Two scripts, no dependencies beyond Windows PowerShell 5.1 (or PowerShell 7+). ## Scripts | Script | Purpose | | --- | --- | | [`organise-isos.ps1`](organise-isos.ps1) | Parse ISO filenames, infer `os/version/arch`, move into `iso-library\\\\` | | [`generate-ventoy-json.ps1`](generate-ventoy-json.ps1) | Walk that tree and emit `ventoy.json` with a per-family submenu structure | ## Quick start ```powershell # 1. Drop all your downloaded ISOs into a working directory, then: .\organise-isos.ps1 -SourceDir .\downloads -DestDir .\iso-library -DryRun # Review the planned moves, then re-run without -DryRun .\organise-isos.ps1 -SourceDir .\downloads -DestDir .\iso-library # 2. Generate the ventoy menu config: .\generate-ventoy-json.ps1 -IsoRoot .\iso-library -OutFile .\ventoy.json # 3. Copy iso-library\ to the root of your Ventoy USB, and copy # ventoy.json into the ventoy\ folder on that same drive. ``` That's the whole workflow. See [`docs/RUNBOOK.md`](docs/RUNBOOK.md) for the detailed operational walkthrough, and the per-script docs for the gory bits. ## Documentation - [`docs/RUNBOOK.md`](docs/RUNBOOK.md) — end-to-end procedure, troubleshooting, recovery - [`docs/organise-isos.md`](docs/organise-isos.md) — parameters, naming rules, OS detection map - [`docs/generate-ventoy-json.md`](docs/generate-ventoy-json.md) — parameters, category groupings, menu layout - [`docs/directory-layout.md`](docs/directory-layout.md) — what the on-disk tree looks like and why ## Directory layout produced ``` iso-library\ ubuntu\ 24.04\ x86_64\ ubuntu-24.04.1-desktop-amd64.iso debian\ 12\ x86_64\ debian-12.5.0-amd64-netinst.iso rocky\ 9\ aarch64\ Rocky-9.3-aarch64-minimal.iso ... ``` Three levels: OS slug, version, architecture. Ventoy follows directories transparently, so the same tree is what ends up on the USB. ## Requirements - Windows PowerShell 5.1 or PowerShell 7+ - A Ventoy USB drive (set up separately — see [ventoy.net](https://www.ventoy.net/)) - Enough disk space to hold your ISO collection twice during reorganisation ## License [YOLO LICENSE](LICENSE) — do whatever you want with it, no warranty, things may blow up.