Languages / Idiomas / Línguas / Sprachen / Langues / Lingue / Языки / 语言 / 言語: 🇪🇸 Español | 🇧🇷 Português | 🇩🇪 Deutsch | 🇫🇷 Français | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 | 🇯🇵 日本語
- Hirens Boot — No USB Needed — Boot ISO Directly (No USB Required)
- Install Windows 10/11 Without USB | BootThatISO (No Flash Drive Needed!)
BootThatISO! is an innovative Windows tool that allows booting operating systems from ISO files without needing a USB drive. Ideal for situations where you don't have a USB device handy, such as during travel, borrowed equipment, or emergencies. It automates the creation of EFI and data partitions on the internal disk, direct ISO reading and file extraction, and BCD configuration, offering an intuitive graphical interface and support for unattended execution.
This utility is especially useful for:
- Quick Installations: Direct boot from ISO for Windows, Linux installation, or recovery tools without preparing USB.
- Testing Environments: Test OS ISOs or utilities without modifying external hardware.
- System Recovery: Access repair tools like HBCD_PE or live environments without depending on external media.
- Automation: Integration in scripts for mass deployments or automated configurations.
Developed by Andrey Rodríguez Araya.
Note: Tools like Ventoy or Rufus work very well with USB drives, but BootThatISO boots ISOs directly from the internal disk, without needing a USB or formatting anything. Additionally, it can load the environment into RAM (for example, with Hiren's everything runs from memory). From an NVMe, booting is much faster than from a USB, for example, installing Windows is also faster. If you don't have a USB handy, you could also install Windows for example. The software has an option to delete the used partitions and leaves the disk as it was originally, assigning the space back to Windows.
- Creates or reforms
ISOBOOT(data) andISOEFI(EFI) partitions on the system disk, with FAT32, exFAT, or NTFS format options. - Supports two boot modes: full ISO loading to disk or RAMDisk mode (boot.wim in memory).
- Detects Windows ISOs and automatically adjusts BCD configuration; non-Windows ISOs boot directly from the EFI partition.
- Runs optional integrity checks (
chkdsk), generates detailed logs, and allows cancellation or space recovery. - Provides unattended mode for script integrations via command-line arguments.
- ISO hash cache (ISOBOOTHASH): Compares the ISO MD5, selected boot mode, and format against values stored in the
ISOBOOTHASHfile on the target. If they match, it skips formatting and content copy to speed up repeated runs. - Self-contained executable: Includes embedded GRUB EFI bootloader (~652KB) for Linux ISO booting, eliminating external dependencies.
- ✅ HBCD_PE_x64.iso (FULLY FUNCTIONAL - Load all programs from RAM)
- ✅ Win11_25H2_Spanish_x64.iso (FULLY FUNCTIONAL - Boot and Install)
- ✅ Windows10_22H2_X64.iso (FULLY FUNCTIONAL - Boot and Install)
- ✅ HBCD_PE_x64.iso (falls back to ISOBOOT_RAM)
- ✅ Win11_25H2_Spanish_x64.iso (falls back to ISOBOOT_RAM)
- ✅ Windows10_22H2_X64.iso (falls back to ISOBOOT_RAM)
- Windows 10 or 11 64-bit with administrator privileges.
- At least 12 GB of free space on drive
C:to create and format partitions (the tool attempts to shrink 12 GB). - PowerShell, DiskPart, bcdedit, and available Windows command-line tools.
- For compilation: Visual Studio 2022 with CMake. No external package manager required; the 7‑Zip SDK is vendored under
third-party/.
# Configure and build (VS 2022, x64)
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config ReleaseThe final executable is located at build/Release/BootThatISO!.exe. Also included is compilar.bat with equivalent steps.
# In the repository root
./compilar.bat- To skip signing (useful on dev machines without a certificate):
$env:SIGN_CERT_SHA1 = "skip"
./compilar.bat- To sign, set
SIGN_CERT_SHA1to your certificate's SHA1 thumbprint or make suresigntool.execan find a suitable certificate in your store.
The compilar.bat script automatically formats all source code using clang-format before building:
- Formats all
.cppand.hfiles insrc/,include/, andtests/directories - Uses the project's
.clang-formatconfiguration file - If
clang-formatis not found, a warning is displayed but the build continues
Note: The project now uses the 7‑Zip SDK (vendored) for ISO reading/extraction; no vcpkg or libarchive is required.
- Release binaries are linked with the static MSVC runtime (/MT) for a self-contained EXE (no VC++ Redistributable required).
- 7‑Zip SDK is compiled as a static library and linked whole-archive to retain handler registration.
- Included handlers: UDF, ISO, Ext container, and MBR. The reader prefers UDF and can unwrap Ext to reach the inner UDF/ISO stream.
The following console utilities are built alongside the app to validate behavior:
# List supported handlers and try opening via UDF/ISO
build/Release/ListFormats.exe
# List ISO contents and auto-extract all *.wim/*.esd to %TEMP%\EasyISOBoot_iso_extract_test
build/Release/TestISOReader.exe "C:\Users\Andrey\Documentos\EasyISOBoot\isos\Win11_25H2_Spanish_x64.iso"
build/Release/TestISOReader.exe "C:\Users\Andrey\Documentos\EasyISOBoot\isos\Windows10_22H2_X64.iso"
build/Release/TestISOReader.exe "C:\Users\Andrey\Documentos\EasyISOBoot\isos\HBCD_PE_x64.iso"
# Detect Windows ISO heuristics
build/Release/TestISODetection.exe "C:\path\to\some.iso"
# Space recovery demonstration (uses same routines as the app)
build/Release/TestRecoverSpace.exe
# INI replacer demo
build/Release/test_ini_replacer.exeNotes:
- The test preserves internal ISO paths when extracting (e.g., writes to %TEMP%\EasyISOBoot_iso_extract_test\sources\boot.wim).
- Windows ISOs may use
install.wimorinstall.esd; the test discovers and extracts all.wimand.esdfiles it finds. - Hybrid Windows ISOs expose few items via the ISO handler; opening through UDF yields the full file list (handled automatically).
Run unit tests with CTest:
cd build
ctest -C Release --output-on-failure- When copying the Windows image from the ISO (
sources/install.wimorsources/install.esd), the app now verifies:- Size match: compares the size inside the ISO with the extracted file size on disk.
- Image integrity: runs
DISM /Get-WimInfo /WimFile:"<dest>"and checks for valid indices.
- Results are written to
logs/iso_extract_log.logand shown in the UI. Any mismatch or DISM failure is flagged so you can retry extraction.
- Run
BootThatISO!.exeas administrator (the manifest already requests it). - Select the ISO file and choose the file system format for
ISOBOOT. - Define the boot mode:
Full Installation: copies the entire ISO content to disk.Boot from Memory: copiesboot.wimand dependencies to boot from RAM.
- Decide whether to run
chkdsk(unchecked skips verification to speed up the process). - Click Create Bootable Partition and monitor progress via the main bar, detailed bar, and log panel.
- Upon completion, a restart confirmation will appear. Use the Recover Space button if you need to remove
ISOBOOT/ISOEFIpartitions and extendC:. - The Services button opens the support page
https://agsoft.co.cr/servicios/.
Run the binary with elevated privileges and the following arguments:
BootThatISO!.exe ^
-unattended ^
-iso="C:\path\image.iso" ^
-mode=RAM|EXTRACT ^
-format=NTFS|FAT32|EXFAT ^
-chkdsk=TRUE|FALSE ^
-autoreboot=y|n ^
-lang=en_us|es_cr
-mode=RAMactivates Boot from Memory mode and copiesboot.wim/boot.sdi.-mode=EXTRACTcorresponds to Full Installation.-chkdsk=TRUEforces disk verification (omitted by default).-langsets the language code matching files underlang/.-autorebootis available for future automations; currently just logs the preference.
The process logs events and exits without showing the main window.
- Validation and Partitions (
PartitionManager): checks available space, runs optionalchkdsk, reducesC:by ~10.5 GB, createsISOEFI(500 MB FAT32) andISOBOOT(10 GB), or reforms existing ones, and exposes recovery methods. - Content Preparation (
ISOCopyManager): reads ISO content using the 7‑Zip SDK (ISO handler), classifies if Windows, lists content, copies files to target drives, and delegates EFI handling toEFIManager. - Boot Processing (
BootWimProcessor): orchestrates the extraction and processing of boot.wim, coordinates with specialized modules:WimMounter: handles DISM operations for mounting/unmounting WIM filesDriverIntegrator: integrates system and custom drivers into the WIM imagePecmdConfigurator: configures Hiren's BootCD PE environmentsStartnetConfigurator: configures standard WinPE environmentsIniFileProcessor: processes INI files with drive letter replacementProgramsIntegrator: integrates additional programs into the boot environment
- Copying and Progress (
FileCopyManager/EventManager): notifies granular progress, allows cancellation, and updates logs. - BCD Configuration (
BCDManager+ strategies): creates WinPE entries (RAMDisk) or full installation, adjusts{ramdiskoptions}, and logs executed commands. - Win32 UI (
MainWindow): manually builds controls, applies style, handles commands, and exposes recovery options.
The project follows a clean, modular architecture with clear separation of concerns:
- Facade Pattern:
BootWimProcessorprovides a simple interface to complex boot processing operations - Strategy Pattern: Driver integration uses categories (Storage, USB, Network) for flexible configuration
- Observer Pattern:
EventManagernotifies multiple observers (UI, Logger) of progress updates - Chain of Responsibility: Programs integration attempts multiple fallback strategies
- Single Responsibility: Each class has one clear purpose (mounting WIMs, integrating drivers, etc.)
For detailed architecture documentation, see ARCHITECTURE.md.
All operations generate files in logs/ (created alongside the executable). Among the most relevant:
general_log.log: general event timeline and UI messages.diskpart_log.log,reformat_log.log,recover_script_log.txt: partitioning and reformatting steps.iso_extract_log.log,iso_content.log: details of extracted ISO content.bcd_config_log.log: BCD configuration commands and results.copy_error_log.log,iso_file_copy_log.log: file copying and errors.
Review these logs when diagnosing failures or sharing reports.
- Operates on Disk 0 and shrinks volume C: by ~10.5 GB; other disk layouts are not currently supported.
- Requires administrator privileges and Windows PowerShell availability.
- Language files under
lang/are required; the app shows an error if none are found.
- The operation modifies the system disk; back up before executing the tool.
- During the process, avoid closing the application from Task Manager; use the integrated cancel option.
- Use the Recover Space button to remove
ISOBOOT/ISOEFIpartitions and restore theC:drive if you decide to revert the configuration.
BootThatISO!/
|- build/ # CMake/Visual Studio generated files
|- include/ # Shared headers
| |- models/ # Model interfaces (HashInfo, etc.)
| |- version.h.in # Version template
|- src/
| |- boot/ # Boot coordination (BootWimProcessor)
| | |- BootWimProcessor.cpp # Main orchestrator for boot.wim processing
| | |- BootWimProcessor.h
| |- wim/ # WIM/DISM operations
| | |- WimMounter.cpp # WIM mount/unmount with DISM
| | |- WimMounter.h
| | |- WindowsEditionSelector.cpp # Windows edition selection logic
| | |- WindowsEditionSelector.h
| |- drivers/ # Driver integration
| | |- DriverIntegrator.cpp # System + custom driver integration
| | |- DriverIntegrator.h
| |- config/ # PE configuration
| | |- PecmdConfigurator.cpp # Hiren's BootCD PE configuration
| | |- PecmdConfigurator.h
| | |- StartnetConfigurator.cpp # Standard WinPE configuration
| | |- StartnetConfigurator.h
| | |- IniFileProcessor.cpp # INI file processing
| | |- IniFileProcessor.h
| |- filesystem/ # Filesystem operations
| | |- ProgramsIntegrator.cpp # Programs folder integration
| | |- ProgramsIntegrator.h
| |- controllers/ # Flow orchestration
| | |- ProcessController.cpp
| | |- ProcessController.h
| | |- ProcessService.cpp
| |- models/ # Domain models
| | |- ISOReader.cpp # 7-Zip wrapper for ISO reading
| | |- IniConfigurator.cpp # Drive letter replacement in INI files
| | |- FileCopyManager.cpp # Progress tracking for file operations
| | |- EventManager.h # Observer pattern for events
| | |- ContentExtractor.cpp # ISO content extraction
| | |- HashVerifier.cpp # Hash verification (MD5)
| | |- efimanager.cpp # EFI partition management
| | |- isomounter.cpp # ISO mounting operations
| | |- DiskIntegrityChecker.cpp
| | |- VolumeDetector.cpp
| | |- SpaceManager.cpp
| | |- DiskpartExecutor.cpp
| | |- PartitionReformatter.cpp
| | |- PartitionCreator.cpp
| |- services/ # Application services
| | |- ISOCopyManager.cpp # ISO copying orchestration
| | |- BCDManager.cpp # BCD configuration
| | |- PartitionManager.cpp # Partition operations
| | |- PartitionDetector.cpp # Partition detection
| | |- VolumeManager.cpp # Volume management
| | |- isotypedetector.cpp # ISO type detection (Windows/Linux)
| |- utils/ # Utilities
| | |- Utils.cpp # General utilities
| | |- Logger.cpp # Logging system
| | |- LocalizationManager.cpp # Multi-language support
| |- views/ # Win32 UI
| | |- mainwindow.cpp # Main application window
| | |- EditionSelectorDialog.cpp # Edition selection dialog
| |- main.cpp # Application entry point
| |- SevenZipGuids.cpp # 7-Zip GUID definitions
|- tests/ # Unit tests
| |- utils_tests.cpp
| |- test_recover_space.cpp
|- tools/ # Build and validation tools
| |- validate_translations.cpp
|- third-party/ # 7-Zip SDK
| |- C/ # C implementation files
| |- CPP/ # C++ implementation files
| |- DOC/ # License and documentation
|- lang/ # Localization files
| |- en_us.xml # English (US)
| |- es_cr.xml # Spanish (Costa Rica)
|- isos/ # Test ISOs directory
|- release-assets/ # Release assets
|- res/ # Resources (icons, images)
|- test_ini_replacer.cpp # INI replacer test
|- test_iso_detection.cpp # ISO detection test
|- test_iso_reader.cpp # ISO reader test
|- test_list_formats.cpp # Format listing test
|- CMakeLists.txt # CMake build configuration
|- compilar.bat # Windows build script
|- .clang-format # Code formatting configuration
|- LICENSE # GPL 3.0 License
|- README.md # This file
|- ARCHITECTURE.md # Architecture documentation
|- release_notes.md # Release notes
Developed by Andrey Rodríguez Araya in 2025.
This project is under the GPL 3.0 License. See the LICENSE file for more details.
- 7‑Zip SDK: Portions of this product include code from the 7‑Zip SDK by Igor Pavlov.
- Licensing summary (per
third-party/DOC/License.txt):- Most files are licensed under the GNU LGPL (v2.1 or later).
- Some files are public domain where explicitly stated in headers.
CPP/7zip/Compress/LzfseDecoder.cppis under the BSD 3‑Clause license.CPP/7zip/Compress/Rar*are under GNU LGPL with the “unRAR license restriction”.
- We vendor a minimal subset (ISO handler and common utilities). No RAR code is used by this project.
- Full texts: see
third-party/DOC/License.txt,third-party/DOC/lzma.txt, andthird-party/DOC/unRarLicense.txt.
- Licensing summary (per



