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/sdb1
boot flag - Format
/dev/sdb1
as FAT32 - Write
syslinux
MBR to target/dev/sdb
- Copy
syslinux
files,grub4dos
files and others to/dev/sdb1
(copy all files inubasic
folder 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
syslinux
andgrub4dos
binaries are not latest.