Make a multi-boot udisk (usb flash disk) on Linux.
Can boot Windows/Linux.
Can boot from a .iso file, in this case no need extracting to udisk.
Still able to use this udisk space as general storage. (All files are on an FAT32 partition)
Uses syslinux as udisk's legacy BIOS bootloader.
On syslinux menu, an entry to boot grub4dos (a fork of grub) (Github page).
On grub4dos menu there are many entries to boot various maintain tools, systems, system installations. (You can customize your entries)
syslinux is a legacy bootloader which is competitable for many machines.
grub4dos supports .iso file boot.
For now I successfully boot:
- Clonezilla , a linux cloning tool
- Windows PE (support iso boot)
- puppy linux
- Windows 7/8 and it's Installation
- Windows XP and it's Installation (support iso boot) (workaround. some machines fail)
- Ubuntu (support iso boot)
Procedure: (Following can be done by the shell script makemultiboor.sh.)
- Make an msdos partition table on udisk
- Make a partition on udisk, for example
/dev/sdb1 - Set
/dev/sdb1boot flag - Format
/dev/sdb1as FAT32 - Write
syslinuxMBR to target/dev/sdb - Copy
syslinuxfiles,grub4dosfiles and others to/dev/sdb1(copy all files inubasicfolder to udisk)
Manually put your .iso files to udisk.
Some support booting from .iso file, some doesn't. For those that doesn't support, you need to extract them and put files into udisk.
To find out which support and which doesn't, try it yourself or google "grub4dos boot iso <what you want to boot from .iso>".
Above should be done before you put other files (photo, music etc. for general storage) into udisk, to make sure the system or .iso files is physically continous and not far away from MBR.
grub4dos/menu.lst is the key to success. Read it and modify it according to your need.
In this repo
syslinuxandgrub4dosbinaries are not latest.