Bootable ISO images that wait a configurable number of seconds before chain-loading to the next boot device. Designed for VM environments (e.g. Scale Computing HyperCore) where you need to stagger VM startup -- attach a delay ISO to a VM's virtual CD-ROM as the first boot device and the VM will pause before booting its OS disk, giving other VMs a head start.
- GRUB loads immediately (no menu).
- A banner displays the delay duration and a live countdown.
- The user can press ESC at any time to skip the remaining delay.
- After the delay (or skip), the ISO gets out of the way:
- UEFI -- exits back to the firmware boot manager, which proceeds to the next boot entry.
- BIOS -- tries to chainload the first bootable hard disk
(
hd0-hd3), then reboots as a fallback.
Each ISO is a hybrid image that works with both UEFI and BIOS firmware.
The boot mode is detected automatically at runtime via GRUB's
$grub_platform variable.
Ready-to-use ISOs are available on the Releases page:
| File | Delay |
|---|---|
delay-60.iso |
1 minute |
delay-120.iso |
2 minutes |
delay-180.iso |
3 minutes |
delay-240.iso |
4 minutes |
delay-300.iso |
5 minutes |
Download the one you need and attach it to your VM's virtual CD-ROM as the first boot device. No build step required.
Only needed if you want custom delay values or want to modify the boot behavior.
- Podman or Docker (the build script auto-detects whichever is installed)
- The build runs inside a linux/amd64 container, so it works on any host architecture (including Apple Silicon Macs via emulation).
# Rebuild the default set of ISOs (60, 120, 180, 240, 300 seconds)
./build.sh
# Build ISOs with custom delay values (in seconds)
./build.sh 30 90 600
# Output appears in ./output/
ls output/
# delay-60.iso delay-120.iso delay-180.iso delay-240.iso delay-300.iso| File | Description |
|---|---|
build.sh |
Host-side entry point. Builds the container image and runs it. |
build-isos.sh |
Runs inside the container. Loops over delay values, stamps grub.cfg, calls grub-mkrescue. |
grub.cfg.template |
GRUB config template with a __DELAY__ placeholder. |
Dockerfile |
Ubuntu 24.04 (amd64) with GRUB2 BIOS + UEFI packages, xorriso, and mtools. |
The build uses grub-mkrescue with both grub-pc-bin (BIOS/i386-pc
modules) and grub-efi-amd64-bin (UEFI/x86_64-efi modules) installed, which
produces a single hybrid ISO bootable in either firmware mode.
The GRUB config uses sleep --verbose --interruptible <N> for the countdown.
This is a built-in GRUB command that displays remaining seconds and returns
a different exit code when interrupted by a keypress, giving us the skip
functionality for free.
This software is provided "as is", without warranty of any kind. See the LICENSE file for details. Use at your own risk. The authors are not responsible for any damage caused by the use of this software, including but not limited to delayed or failed VM boots.