May 13, 2011

Weekend Project: Use the Plop Boot Manager to Boot Older Computers from USB

Do you have an older PC that does not support booting from USB devices, and really want to boot from USB devices? You can, thanks to the Plop boot manager. This weekend, turn that aging computer into a USB-booting powerhouse.

Plop vs. GRUB 2

Despite a major rewrite and oodles of additional complexity, and early hints that it would boot external media, GRUB 2 won't boot CDs, DVDs, or USB devices, so you still have to fiddle in your system BIOS for this. If you have an older PC that doesn't support USB booting then GRUB 2 won't help you. (Nor will any other Linux bootloader.) But do not despair, for the Plop boot manager, by Elmar Hanlhofer, is just what you need. Plop runs from a CD, 3.5" diskette, PXE netboot, or hard drive. Use it to boot operating systems installed on the following media, even on systems that don't have BIOS support for the media:

  • USB mass storage devices: USB Flash drives, USB hard disks, and USB card readers. (USB hubs are not supported.)
  • IDE CD/DVD (not SATA or USB)
  • USB PC-Card devices
  • Hard disks

Plop is not free or open source software, and the source code is not available. It is free to use for educational and non-commercial use. Ordinarily I'm not all that interested in non-FOSS applications, but Plop is such an excellent and useful utility I felt it was worth featuring.

Plop has a lot of good documentation in both English and German, and Plop is safe to use from diskettes or CDs, and as a secondary boot device installed to your hard drive.

No USB Keyboard

Plop does not have drivers for USB keyboards, so you need either a PCI keyboard, or a USB-to-PCI adapter. Adapters are common and cheap. You might even have one already, since they often come with USB keyboards.

Floppy Plop

There you are with a nice old PC with a working floppy drive, and you even have 3.5" diskettes. Put Plop on a floppy and you're in business. First download Plop, which is about a 1.5 MB compressed archive, and then unpack it:


This expands to about 8.8 MB. Inside you'll find readmes and a number of binary executables and images for Linux and Windows. Find the plpbtin.img file and copy it to a diskette with the dd command, like this:

dd if=plpbtin.img of=/dev/fd0

Ordinary copy commands don't work because this needs a sector-level copy. When it's finished restart your computer, and it should boot to the diskette.

Usually the floppy drive gets the first boot priority in your system BIOS by default. If it isn't you need to enter your system BIOS and change it. (Watch the messages at startup to see which key to press to enter the BIOS, usually F2 or DEL.) If you have a boot-device selector, which is usually brought up by pressing the F11 or F12 key, then you have a nice time-saver that saves you from having to mess with your BIOS settings.

When your new Plop floppy boots successfully, you're all set. Now you can run live USB Linux distros, or any operating system that supports live USBs such as FreeBSD, OpenBSD, NetBSD, or Dragonfly BSD. Plug in your USB stick, then boot to the Plop diskette. You'll see a menu for choosing what to boot. I like this for running SystemRescue live USB, and for testing new distros on older hardware, because USB is a lot faster than CD.

CD Plop

Plop will also boot from a CD. Just write the plpbt.iso image to CD with your favorite CD software. plpbt.iso is only 320k, so you could use a business-card CD.

Hard Disk Plop

Plop will also run from your hard drive. It is not a bootloader, so you still need GRUB, LILO, Syslinux, or whatever your favorite bootloader might be. Legacy GRUB (version 0.97) and GRUB 2 (version 1.99) both run PLOP just fine.

First copy both plpbt.bin and plpcfgbt to /boot, then edit your GRUB menu. Good old legacy GRUB makes it easy; just add the following stanza to /boot/grub/menu.lst:

title Plop Boot Manager
root (hd0,0)
kernel /boot/plpbt.bin

The tricky part is getting the correct parameters for the root line. The easy way is copy it from one of the other stanzas. If you have a multiboot system, make sure you're copying the stanza that boots the Linux where GRUB and Plop are installed. When you boot up you will see a GRUB menu entry for Plop Boot Manager. Select this, and you will be greeted with the Plop boot menu (figure 1.)

Figure 1Floppy, CDROM, and USB are easy enough. However, as you can see, Plop doesn't have all kinds of nice friendly menu entries for hard disks like GRUB does, because it is reading block devices rather than configuration files. So, if you want to boot an operating system from a hard disk, you need to know which partition it is installed on.

GRUB 2 is a bit of a nuisance because it way more complicated than legacy GRUB. First add this stanza to /etc/grub.d/40_custom:

menuentry "Plop Boot Manager" {
    set root=(hd0,0)
    linux16 /boot/plpbt.bin

Again, make sure you have the correct root line. Then run update-grub to update /boot/grub/grub.cfg. Don't edit grub.cfg directly.

I like that Plop, unlike your system BIOS, does not require you to have your USB stick or CDROM already loaded before booting. (Remember, Plop does not support USB hubs or USB CD/DVD drives.) plpcfgbt configures the available plpbt.bin options, such as video mode, countdown, defaults, startup hotkey, starfield on or off, and more.

USB PC-Card Plop

If you have an older laptop with a PCMCIA Cardbus slot, you can boot USB storage devices connected to a USB PC-Card, because Plop includes a PCMCIA driver. Use pcmcia/plpbt.* from your Plop download. Then you can add a USB 2.0 port to a system that has only USB 1.1 ports, and add extra USB ports. You can install Plop to the hard drive, or use Plop on a USB stick.

And Way More

Plop supports network PXE booting, hidden partitions, edit the MBR (master boot record), supports profiles, different display modes, and much more. It is a mighty lot of useful functionality in a little application.

Click Here!