Windows users can solve this problem with Unetbootin. But Linux-only users need an alternative.
In order to proceed, the following things must be true.
1. Your flash drive has the standard DOS/Win boot code on its MBR. It should, but see the note at the end.
2. The flash drive partition is flagged as bootable. Check this with Gparted.
3. Your Linux has the syslinux bootloader package. It probably does.
Here are the steps.
1. Determine the device name of your flash drive partition. It should be something like sdb1. But making a mistake with the device name can cause bad things to happen. Buyer beware.
2. Plug in the flash drive but don't mount it. Type:
Code: Select all
syslinux /dev/sdxy
3. Mount the flash drive and make a file named syslinux.cfg containing the following line:
Code: Select all
default vmlinuz initrd=initrd.gz pmedia=usbflash
Code: Select all
mkdir mnt
mount -o loop pupxxx.iso mnt
6. Unmount everything and boot off the flash drive.
If it won't boot, here are some trouble-shooting questions.
Do you know for sure that your machine supports USB bootability? Many older machines (and some newer ones) don't. The best scenario is where the BIOS detects the flash drive as a secondary hard drive.
Have you modified your BIOS boot priority list to enable USB booting?
How is the flash drive formatted? Some users report better results with fat16 than fat32.
Does the MBR of your flash drive contain the standard boot code? If not, you can manually update the code as follows:
1. Locate a file named "mbr.bin" in the syslinux package. Look for it in a folder like /usr/lib/syslinux.
2. Write this file onto the MBR of your flash drive using a command like:
Code: Select all
dd if=mbr.bin of=/dev/sdb