Not all USB flash drives are created bootable
Hardware, Rants 1 Comment »I recently had to create a number of bootable USB flash drives to install and update systems that don’t have local CD-ROM drives. Of course, I could’ve booted the systems using PXE, but thought using USB would be quicker… How wrong I was.
After struggling for several hours with a flash drive that refused to boot no matter what I did, I discovered an interesting fact – most bootloaders won’t boot from flash drives that have 2048-byte sectors. Of course, the flash drive I was using had 2048-byte sectors… Using a flash drive with 512-byte sectors worked perfectly first time.
Depending on operating system, it may not be that easy to tell the sector size of the flash drive. If using a Unix system, you should see something useful in the kernel ring buffer (displayed by dmesg) when you insert the drive.
A non-bootable drive will display something like:
sd 9:0:0:0: [sdh] 258687 2048-byte hardware sectors (530 MB)
or
sd0: 505 MB, 126 cyl, 64 head, 32 sec, 2048 bytes/sect x 258687 sectors
A bootable one will look something like:
sd 11:0:0:0: [sdh] 2061816 512-byte hardware sectors (1056 MB)
or
sd0: 1006 MB, 1006 cyl, 64 head, 32 sec, 512 bytes/sect x 2062328 sectors

Recent Comments