If you have a >128GiB bootable USB hard disk (and even 8GB for some systems!) and you try to boot to a partition that extends beyond 128GiB or access a file that extends beyond 128GiB from within grub4dos, you may find that on some systems, grub4dos will fail to boot or report errors - but on other systems the same USB HDD and menu option boots just fine. The problem is not with grub4dos however - the problem is with the USB BIOS on the target system. A tell-tale sign that the target system's BIOS is to blame is to check that your test menu entry does work correctly under QEMU - if it does then the fault must lie with the target system's USB BIOS!
Another issue with some BIOSes is that some old BIOSes only support booting at USB 1 speeds and so are very slow when booting a large OS from a USB drive.
Plop is a boot manager that contains it's own USB 1 and USB 2.0 read-only drivers. This means that as long as you can boot from something and run Plop, then Plop will allow you to boot from a USB drive using it's own USB 2 drivers and therefore usually at USB 2.0 speeds.
Plop is normally run by booting from a CD or DVD or from your hard disk. Once Plop runs you can use it to boot from a USB device even if your BIOS does not support USB booting.
More information on Plop can be found here.
But 'Wait!' I hear you cry - 'If I can already boot from my USB drive why would I need Plop!". Well the answer is that some BIOSes do not like drives over 128GiB when accessing them through the USB BIOS.The USB BIOS has not been coded correctly and some do not like large sector addresses (>1024x255x63). The ATA BIOS code for IDE/SATA hard disk drives may have been modified correctly so that it works just fine with internal hard disks larger than 128GiB, but some BIOS developers seem to have forgotten to also fix the code in the USB BIOS and so if you try to access or boot from any sector at a position greater than 128GiB via USB (some BIOSes have an 8GB limit!), you may get errors reported and the drive will not boot to your intended OS even though it boots from grub4dos!
A second reason is for faster loading from USB if your BIOS only supports USB 1.0 mode booting. Plop has a USB 2.0 driver and so by loading Plop, you can dramatically reduce boot times of large OS's from a USB drive by loading Plop first if the BIOS only supports USB 1.0 boot speeds.
So, it is very handy to be able to have Plop as a menu entry in your USB drive's grub4dos menu. You can download the Plop zip file from here. Plop is free for personal use but not free for commercial use (same as RMPrepUSB licence).
In this tutorial, I will show you how to add Plop to your USB drive's grub4dos menu so that you can run Plop after you have booted from your USB drive (assuming your BIOS has some sort of USB boot support).
1. Download Plop from here.
2. Extract the plpbt.bin file from the zip file and copy the file to your USB drive (e.g. copy to the /plpbt folder)
3. Add the following menu entry to your grub4dos menu.lst to load it as a kernel (just check the file path matches where you put it!)
plpbt.bin can also be passed some parameters:
Example grub4dos menu.lst entry for CD or hard disk to autoboot from USB:
title Boot to USB using Plop
Boot from your USB drive as normal. Now if you are having problems booting to an OS from the USB drive menu, you can try booting through Plop instead. Plop will replace the BIOSes USB boot code with it's own and so may work better if you have a buggy USB BIOS.
1. Boot from your large USB drive as usual to the grub4dos menu
2. Choose the Plop boot menu entry that you have added when you followed the instructions above but delete the 'hiddenusb' word from the menu
3. Plop should now run and you will see a Plop menu similar to that shown below:
4. Now choose the USB menu entry (as shown selected in the above screenshot) and press Enter - Plop should now boot from the USB drive again and reload your USB grub4dos menu.
5. Now choose the same menu entry that would not work or worked slowly previously (e.g. boot a linux ISO or boot Windows 7 or whatever) - if the problem was that you had a buggy USB BIOS in the target system, then it should now work without any errors or much faster than before.
Note: if you have a USB keyboard, you may lose the keyboard once plop! loads - if so, try a PS/2 keyboard instead or use the hiddenusb keyword to autoboot from USB without needing a keyboard - see below for details.
Tip: The Plop menu allows you to boot from HDA Partition 1 which is the USB first partition if you booted from USB in the first place. If you install grub4dos to the PBR as well as the MBR, then you can use this entry as a failsafe to boot back to the grub4dos menu. On the other hand, if you have a bootable hd0,0 partition on your USB drive, you can use this entry to boot to it.
You can easily configure Plop to autoboot from USB using the hiddenusb parameter (see example above or read the next section). You can also 'hard code' the plopbt.bin file using plpcfgbtGUI.exe, as follows:
Using the Windows utility plpcfgbtGUI.exe, you can configure the plpbt.bin file to boot to a default device after a timeout.
You can then use the modified version of plopbt.bin (settings as shown above) to make a grub4dos menu that automatically loads PLOP every time it boots and has a 5 second countdown, by using the modified plpbt.bin file and this line at the top of your menu.lst file:
This searches memory for the Plop signature and if it is not found it will load Plop. When Plop loads it counts down from 5 seconds and then boots from the USB drive (set as the default now) and when menu.lst reloads, because Plop is now loaded it does not reload Plop again.
Another method is to check to see if the BIOS has been patched by Plop. This uses the grub4dos executable file BIOS which can be obtained from the grubutils download area. This example requires plpbt.bin and bios to both be in the /plpbt folder on the USB drive. A modified version of plpbt.bin is not required as we are using the hiddenusb parameter to force Plop to boot to USB immediately.
The single line is in three parts:
You can autoload Plop with no extra user keypresses just before you run a menu item like this:
You will need the special grub4dos file called default to be present in the root of the USB pen (available from the Beta Downloads area) and the /plpbt folder must contain both bios and plpbt.bin files.
Note that the lines that begins '/plpbt/bios int...' are long lines that may wrap on your screen - if you cut and paste the bold text it should work in your menus.
Alternative way to detect the Plop driver not requiring the /plpbt/bios file (may not be as reliable)...