diff --git a/INTERFACES.sh b/INTERFACES.sh index e36074d..e8fa18c 100644 --- a/INTERFACES.sh +++ b/INTERFACES.sh @@ -30,7 +30,7 @@ HIPERISO_NET_DUMP="" # "1" = add virtio-net + pcap capture to network.pca # ── USB Partition Layout ───────────────────────────────────────────────────── DATA_PART="/dev/sdX1" # Partition 1: Data partition (exFAT/NTFS, rest of disk) -EFI_PART="/dev/sdX2" # Partition 2: EFI System Partition (FAT16, 64MB) +EFI_PART="/dev/sdX2" # Partition 2: EFI System Partition (FAT16, 32MB) EFI_MOUNT="/mnt/efi" # Mount point for ESP during install DATA_MOUNT="/mnt/usb" # Mount point for data partition at runtime @@ -186,8 +186,8 @@ HIPERISO_JSON="${DATA_MOUNT}/hiperiso/hiperiso.json" # The label and file are produced by scripts/package_release.sh. # # Modsrc patches: scripts/build_grub2_204.sh applies a single sed -# pass to the unpacked modsrc tree to (1) accept a 64MB ESP (modsrc -# hardcodes 32MB / 65536 sectors) and (2) tolerate the missing 0x22 +# pass to the unpacked modsrc tree to (1) accept a 32MB ESP (modsrc +# hardcodes 64MB / 131072 sectors) and (2) tolerate the missing 0x22 # GPT-MBR marker byte. (The 0x22 marker is written by the installer # in HiperisoWorker.sh — not by the build.) Anything beyond these # patches is upstream Ventoy territory; do not modify modsrc without diff --git a/README.md b/README.md index 739c184..58c72cb 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ layout is: | # | Type | FS | Size | Contents | |---|--------|--------|--------|--------------------------------------------| | 1 | 0700 | exFAT | rest | Your ISOs + boot logs + config | -| 2 | EF00 | FAT16 | 64 MB | ESP: GRUB2, kernel, initramfs, OVMF | +| 2 | EF00 | FAT16 | 32 MB | ESP: GRUB2, kernel, initramfs, OVMF | Copy your ISOs: @@ -144,6 +144,25 @@ sudo bash Hiperiso2Disk.sh -i -L MYUSB /dev/sdX # custom data-partition label 4. The ISO's OS boots **unmodified** inside the VM. 5. On guest shutdown, logs are flushed to the data partition. +### Boot modes (current) + +The deployed binary supports two boot modes selectable from the GRUB menu: + +| Mode | How to select | Behavior | +|------|---------------|----------| +| **Direct (chain)** | Default menu entry | Boots ISO via Ventoy-style chain (small ISO read into RAM, KVM/QEMU launched by the host kernel). | +| **Memdisk** | Default fallback when chain fails | Loads the entire ISO into RAM, then boots via `memdisk`. Confirmed working. | + +The `hiso_hv_mode=1` "hypervisor" trigger (the killer feature that boots +ISOs through a Type-1 hypervisor path with full bootlogging) is defined +in `src/grub2/hiperiso_cmd.c` and `hiperiso_boot()` in `grub.cfg`, but +those code paths are in the in-tree rebrand source that is **not +currently compiled** — we build the GRUB module from the vendored Ventoy +modsrc, which doesn't have them. The initramfs + host kernel + QEMU + +OVMF payloads are built and in the ESP (see `build/payload/EFI/hiperiso/`), +so the infrastructure is ready. The remaining work is completing the +rebrand of the GRUB module to expose the hypervisor menu entry. + ### View boot logs Every boot gets its own timestamped session directory so logs are never