22 July, 2011

Proposal: Select Bootable Images from USB

Prelude


A major deciding factor for the size laptops is the types of media readers they possess. Storage media such as SD cards, optical discs such as CD / DVD / BD (BluRay Disks), and of course, hard disks. If some of them could be removed from the chassis, laptops could be made more portable. Card readers can be replaced by USB ports, as almost every modern media recording device comes with the option. Hard disks are harder to substitute, but solid state drives are a move in the right direction. That leaves optical media.

Why Optical Media can't compete


I, for one, don't trust optical media for several reasons - They are:
  • Non-reliable: They get scratched easily
  • A Waste of money: They are much costlier than hard disks per GB of storage
  • Inconvenient: It's not easy (if even possible) to stop copying data to them once the process has started and then resume copying later. You can't rearrange files in it after you're done, either.
  • Non-Reusable: The most affordable - therefore popular - versions of optical media are read-only, and can only be dumped after their intended purpose. (You'd think there is a case for movie rentals - no, streaming is better. NETFLIX seems to understand the idea.)
The only possible situation where downloads can't be used as a replacement for optical media is in the case of bootable devices. If you have a recovery program that creates bootable disks, how do you boot from it without an optical drive?

Available Options


The only reason I use my DVD±RW drive has been to burn Ubuntu installer images onto CDs. Over the years, I've built up a whole stack of them. But recently, I stumbled upon UNetBootIn which enables the creation of bootable partitions on USB drives. Now, there is a 700MB partition on my external hard disk which I can boot from, to install or try out Ubuntu. The drive letter associated with that partition was removed, so that the drive doesn't show up in my drives list or start auto-play every time I plug it into my computer.

But there must be a better way than to have a dedicated partition for each image you want to boot from. Someone who happens to have a handful of bootable images shouldn't be forced to create dedicated partitions for each image. Given the delicacy required when changing partition tables, the chances of messing up are considerable. I should be able to plug in my hard disk, choose a bootable image from the disk, and boot from it!

Software Emulator


There are many ways to create multi-boot USB drives, such as Plop Boot Manager. However, they tend to be too complicated to set up. The simplest way of setting up a multi-boot USB hard disk that I can think of would work like this:
  1. A software installer creates a small bootable partition on USB hard disk or thumbdrive,
  2. Reboot and choose the USB as the boot device,
  3. A file browser window opens with which you can select an ISO file stored anywhere on the USB, the computer, or a local network share and add it as a boot option 
  4. Reboot and select the option to boot from it.

Dedicated Hardware


A little more involved, but much easier-to-use way of doing it would be to have a USB bridge with software on it to emulate a bootable disk, with the option to browse for ISOs as before. This proposed device would look like a USB thumbdrive, but will have a USB port on it into which storage devices could be plugged in. An adapter, if you will. If you want to boot from an ISO,
  1. Copy the ISO to a thumbdrive or an external/portable hard disk,
  2. Connect the drive/disk via the adapter to the computer,
  3. Reboot and choose the adapter as the boot device,
  4. Browse for the image and add it as an option,
  5. Reboot and select the option to boot from it.

End Notes

  1. Instead of a device, the circuitry and software could be integrated into the drives/disks themselves, but by using an adapter, the functionality could be used to boot from legacy USB storage devices as well.
  2. A writeable virtual CD/DVD/BD burner would come in quite handy when dealing with software which directly write to the optical disks instead of giving an ISO you can burn yourself. The virtual disk driver should spit out ISO images, like how virtual PDF printers spit out PDF files when printed to. Ever heard of one?

Do let me know if you have come across something that is as easy as (or better) than this idea.