A tool to enable booting directly from USB stick containing multiple ISO files.
Using this tool you can have a USB stick divided into 2 partitions (Boot + Data) so you can still use the Data partition for personal storage. In the Boot partition you can simply copy any/all the ISO files you would like to boot from.
Example of the latest supported ISO files:
- ubuntu-20.04-desktop-amd64.iso
- Win10_20H2_v2_English_x64.iso
- Win10_20H2_v2_German_x64.iso
- Win7PE_x64.iso (see screenshots)
… and the list goes on to many older version of Ubuntu (18.04, 16.04, …), Windows (10, 8, 7, XP), CentOS, Fedora, Debian, … and more.
Also, not for boot but useful for windows maintenance is the MustHave_Win.iso.
Sample screenshot of the boot menu
It currently relies on GRUB Legacy/0.97 (GRand Unified Boot loader).
No need for Windows USB/DVD Download Tool, which is a great tool, but eventually extracts the Windows ISO making your USB stick unusable for any other OS installation (Ubuntu or even different other Windows ISO) nor even convenient for personal usage.
Also there are other tools, some of them are great, but lack some important features (as far as I have found), because they either extract the ISO content or limited to Linux distros (no windows). Some of these tools are: UNetbootin, MultiBootUSB, Rufus, YUMI… etc. Using HBoot
, there is no need for them as well.
-
Run the installer:
Ubuntu:
curl -sSL https://raw.github.com/hossam-magdy/hboot/master/install/latest.sh | sh
Windows: downoad the hboot files archive, extract it, and run
install/install.bat
Fot further details,… check the installer arguments
Run
install/install.sh
(orinstall/install.bat
on Windows). It can be run with or without arguments as follows:Ubuntu Windows install/install.sh [TARGET_DEVICE] [BOOT_SIZE=18]
install/install.bat [TARGET_DEVICE] [SIZE_BOOT_GB=17]
- TARGET_DEVICE:
in the form of/dev/sdX
- BOOT_SIZE [default=18
]:
integer in GB (1 GB = 1000 MB)- TARGET_DEVICE:
drive letter (E:, F:) or Disk# (1, 2) as in diskmgmt.msc
- BOOT_SIZE [default=17
]:
integer in GiB (1 GiB = 1024 MiB)Ex 1: install/install.sh
Ex 1: install/install.bat
Ex 1: install/install.sh /dev/sdb
Ex 1: install/install.bat E: 10
Ex 1: install/install.sh /dev/sdc 11
Ex 2: install/install.bat 1 10
, (1
is Disk#1)Please proceed with the confirmation only if you are sure that the shown information are correct and expected.
-
Copy any (or all) of the follwing ISO files to
iso/
directory:- iso/ubuntu-20.04-desktop-amd64.iso
- iso/Win10_20H2_v2_English_x64.iso
- iso/Win10_20H2_v2_German_x64.iso
- iso/Win7PE_x64.iso (see details of this ISO)
-
Run
iso/verify-iso.sh
(oriso/verify-iso.bat
on Windows), to ensure that the ISO files are possible to boot from.
-
on Windows: using
BOOTICE
, follow along this tutorial. -
on Ubuntu:
-
use the "Disks" manager,
gparted
, orparted
for partitioning -
there is no known solid way for
GRUBLegacy
installation on later than Ubuntu 12.04, except for restoring a backup bin file.A full backup file can be found in
install/grub_mbr
, which is of exact size of 9216 bytes including the MBR and few more bytes afterwards.Be aware that restoring 9216 bytes, overwrites not only the MBR (first 440 bytes), but also the PartitionTable, disk signature.
The PartitionTable alongside disk signature should be existing on the disk in bytes
441 to 512
. Also cloned, specifically for GRUBLegacy, to bytes952(or 512+440) to 1024
, see this page for thorough explanation of the first 512 bytes of GRUBLegacy.
-
- in installers: being aware of pre-installed HBoot: no re-partitioning format? re-copy files, maintain ISO's, …
- suffix downloaded gz file with date?
install/latest.bat
for windows- list of supported ISO's
- in GRUB2 branch:
- load Windows ISO (again)… using memdisk (slow) AND chainloader/whatever
- finalize the menu items in
grub.cfg
Ref links for GRUBLegacy
- https://wiki.archlinux.org/index.php/GRUB_Legacy
- https://gparted.org/display-doc.php?name=help-manual&lang=C#gparted-fix-grub-boot-problem
- http://mirrors.kernel.org/ubuntu/pool/main/g/grub/grub_0.97-29ubuntu66_amd64.deb
- https://help.ubuntu.com/community/Grub2/ISOBoot
- https://wiki.archlinux.org/index.php/Multiboot_USB_drive
- https://opensource.com/article/16/11/managing-devices-linux
- https://help.ubuntu.com/community/Grub2/Upgrading#Reverting_to_GRUB_Legacy
- https://www.rmprepusb.com/tutorials/grub4dos/grub4dos-internal-variables-and-functions
- https://thestarman.pcministry.com/asm/mbr/GRUB.htm
Links for GRUB2 upgrade
- Install: https://unix.stackexchange.com/a/36823
- Config: https://askubuntu.com/questions/367011/boot-windows-7-iso-from-grub2
- No file writing:
- https://www.aioboot.com/en/
- using wimboot in grub2 for win iso: https://www.rmprepusb.com/tutorials/145-grub2winiso
rsync