eph baum dot dev

← Back to blog

How to Create Bootable USB in Linix Terminal

Published on 05/05/2022 02:46 PM by Eph Baum

Featured Image

I’m tired of forgetting these steps, so they’re here for me for later but I hope they help you too.

TL;DR

sudo dd if=distro.iso of=/dev/sda status=“progress”

L;R

You’ll need two things to accomplish this process

To make a bootable USB drive, you need a USB flash drive that is larger than the disc image you’re trying to write and a bootable disc image in ISO format.

Whatever the size of your USB flash drive, it will be constrained to the the size of the image you’re creating, additional space will no longer be accessible.

First, insert your drive.

Make sure the drive is seen by your OS, and find out if it’s mounted or not using any number of programs like LSBLK or FDISK. Your drive should appear like /dev/sda or /dev/sdb, and you might see a numbered partition as well like /dev/sda1 for example.

Make sure that the drive is not mounted (unmounted):

umount /dev/sda

Where /dev/sda is the path or your drive.

Next you’ll want to format the drive. THIS WILL ERASE THE DRIVE!!!

sudo mkfs.ext4 /dev/sda1

This should be straightforward and simple, you’ll see some status related to the progress and then you’ll have a fresh drive.

Finally, make sure you’re in the directory where your downloaded ISO file lives and then write it to the flash with DD. For example: if you’re creating a bootable Puppy Linux install disk and your ISO file is puppy-linux.iso and your USB is attached at /dev/sda your command would look like this:

sudo dd if=puppy-linux.iso of=/dev/sda status=progress

The if parameter is ‘input file’ while of is, unsurprisingly, ‘output file’

The status parameter being set to progress gives you regular feedback while the process is running, which is particularly useful for very large image writes that could take a little time and feel like your machine has hung or something.

And that’s it.

Seriously, it’s really easy, I just sometimes forget a step or two.

Arguably it’s easier than Rufus or Balena Etcher, which you’d probably want to use if you’re on macOS or Windows (or even Linux, which is an option for Balena Etcher, if you’re so inclined)

Written by Eph Baum

  • Making Brutalist Design Accessible: A Journey in WCAG AA Compliance

    Making Brutalist Design Accessible: A Journey in WCAG AA Compliance

    How I transformed my brutalist blog theme to meet WCAG AA accessibility standards while preserving its vibrant, random aesthetic. Talking about contrast ratios, color theory, and inclusive design.

  • Building Horror Movie Season: A Journey in AI-Augmented Development

    Building Horror Movie Season: A Journey in AI-Augmented Development

    How I built a production web app primarily through 'vibe coding' with Claude, and what it taught me about the future of software development. A deep dive into AI-augmented development, the Horror Movie Season app, and reflections on the evolving role of engineers in the age of LLMs.

  • Chaos Engineering: Building Resiliency in Ourselves and Our Systems

    Chaos Engineering: Building Resiliency in Ourselves and Our Systems

    Chaos Engineering isn't just about breaking systems — it's about building resilient teams, processes, and cultures. Learn how deliberate practice strengthens both technical and human architecture, and discover "Eph's Law": If a single engineer can bring down production, the failure isn't theirs — it's the process.

  • Using LLMs to Audit and Clean Up Your Codebase: A Real-World Example

    Using LLMs to Audit and Clean Up Your Codebase: A Real-World Example

    How I used an LLM to systematically audit and remove 228 unused image files from my legacy dev blog repository, saving hours of manual work and demonstrating the practical value of AI-assisted development.

  • Migrating from Ghost CMS to Astro: A Complete Journey

    Migrating from Ghost CMS to Astro: A Complete Journey

    The complete 2-year journey of migrating from Ghost CMS to Astro—from initial script development in October 2023 to final completion in October 2025. Documents the blog's 11-year evolution, custom backup conversion script, image restoration process, and the intensive 4-day development sprint. Includes honest insights about how a few days of actual work got spread across two years due to life priorities.

  • 50 Stars - Puzzle Solver (of Little Renown)

    50 Stars - Puzzle Solver (of Little Renown)

    From coding puzzle dropout to 50-star champion—discover how AI became the ultimate coding partner for completing Advent of Code 2023. A celebration of persistence, imposter syndrome, and the surprising ways generative AI can help you level up your problem-solving game.