rnd:projects:ultiboot

The ultimate bootable flash drive

A bootable USB flash drive full of useful tools.

I always feel limited when not using one of my personal computers. This is especially true of my work laptop, which for obvious reasons must run Windows. There have been several occasions when having my usual complement of Linux tools would have been a huge boon. A portable apps drive is a tempting start, but I often need to go deeper — scanning the hidden APs to gather signal strength information, for example, requires lower-level access to the hardware. Plus, there's the potential that the company spyware might take issue with one program or another.

At one point, I attempted to fill this gap with a bootable SD card, which wouldn't dangle dangerously from the side of my laptop. Several frustrating days (and multiple destroyed microSD cards) later, I decided to abandon that endeavor, but I still believe in the concept. Earlier tinkering led me to figure out how to boot an ISO from GRUB, which opens up several possibilities. Why simply install a single OS on the removable drive when I can have several boot options on one disk? Why not include bootable ISO recovery tools and a portable apps drive as well? Furthermore, there exist compact, high-capacity USB drives that won't stick out unnecessarily.

With all of that in mind, the current plan is to split a sizable USB flash drive into the following partitions:

  1. a boot partition containing GRUB files
  2. one or more fully-installed Linux distros (Manjaro)
  3. a shared ext4 data area for passing files back and forth
  4. a FAT partition for Windows portable apps and ISO images

The core of the project is to provide a comfortable computing environment and toolbox — a digital security blanket, if you will. This is to be a full installation, not a simple image of the live DVD. Manjaro is ideal for this purpose thanks to its simplicity, flexibility, and familiarity.

In keeping with that goal, the rest of the software loadout should include the following:

  • programming languages
    • Python
    • Racket
  • text editors
    • emacs
    • vim
  • networking tools
    • Wireshark
    • iw
    • iputils
    • tcpdump
  • other
    • VirtualBox
    • gum

It's not always feasible or desirable to boot into the main OS.

  • PA shell
  • accessibility
    • on-screen keyboard
  • development
    • gvim
  • education
  • games
    • 2048
    • Mines-Perfect
    • Sudoku
  • graphics & pictures
    • Dia
    • Krita
  • internet
    • DamnVid
    • FileZilla
    • PuTTY
    • qBittorrent
    • Ekiga?
    • Miranda NG
  • music & video
    • VLC
    • Audacity
    • OpenShot
  • office
    • Evince
    • CherryTree
    • calibre
    • qalculate
  • security
    • GPG plugin
  • utilities
    • 7-zip
    • babelmap
    • balenaEtcher
    • camstudio?
    • cpu-z
    • Zint Barcode Studio
    • TeamViewer
    • Process Hacker
    • cook timer
  • non-PA
    • emacs?

This partition will also house any ISO images.

Installation proceeded simply. To avoid all risk of accidentally overwriting the internal drive (and the effort of flashing an installation medium), we used VirtualBox to boot the ISO and install to the disk. The experience was a stuttering mess for reasons that remain unclear, but it was successful.

Booting the disk was another matter entirely. The work laptop's UEFI generally refused to acknowledge the drive's presence and often indicated POST errors when booting with it connected1). After a few hours of fruitless searching (and repeatedly disabling fast boot), we eventually resorted to trying random firmware options. We tweaked two boot delay settings, and the system rewarded us with a boot menu labeled “Express Boot Options” that finally included the USB disk. Our best theory is that the boot delay allowed the system time to activate USB 3.0 and thus recognize the drive.


1)
To be precise, the caps lock and num lock LEDs would flash in bursts of five, which HP says indicates a general system board failure. After maybe three such bursts, it would then continue booting anyway, so that error description is not only vague but dubious as well.
  • rnd/projects/ultiboot.txt
  • Last modified: 2023-05-19 19:35
  • by asdf