creating and booting off a usb-zip formatted drive

So, I’ve got to work with a motherboard with an older BIOS that doesn’t support booting off the newer, simpler USB-HDD option. However, there is one option available still in the boot menu: USB-ZIP. The problem is, you can’t just select it and boot off your USB stick with a Linux Live distro on there, you have to format the flash drive on there in a certain way first. This was a royal pain in trying to figure out, so I figure it’s worth passing on how I finally got it working.

Actually, it’s quite simple to fix — it just takes me forever to find this stuff. :) Pendrive Linux’s website has a great writeup on the how and why this is possible, including instructions. There’s just one small thing to note that if you’re using a Gentoo system to flash the drive — syslinux (currently) doesn’t install the ‘mkdiskimage’ binary to your system. Fortunately, there’s an easy workaround — it’s already included in the original tarball. Just go to a temporary directory, unpack the latest syslinux tarball you have, and use that.

Specifically, here’s what I did. I stuck my USB stick in the drive, and checked to see which drive it’s listed as using ‘fdisk -l’. I can see I’ve already got something on there in my case, and it shows up as /dev/sda1.

Next, unpack syslinux and format the sucker.

  1. cd /tmp
  2. tar xjvf /usr/portage/distfiles/syslinux-3.52.tar.bz2
  3. ./syslinux-3.52/mkdiskimage -4 /dev/sda 0 64 32
  4. /usr/bin/syslinux /dev/sda4

Note that the actual formatting of the disk takes a freaking long time. So, be patient, and don’t kill it. When it’s done, run fdisk -l again and you’ll see it creates only one partition (/dev/sda4) already formatted and ready to go. Also, I didn’t add a partition number to the mkdiskimage command, that’s because I’m formatting the entire filesystem, not just one partition. In other words, /dev/sda is right, and /dev/sda1 isn’t.

After that, just mount the sucker (make sure you’ve got the right FAT/VFAT support in your kernel), and copy over the bootable image you want. I recommend Damn Small Linux, personally. And there you go. I’ve been able to boot up every old BIOS that has USB-ZIP so far. Let’s hear it for great open source system tools. :)