piflash - Raspberry Pi SD-flashing script with safety checks to avoid erasing the wrong device


piflash [--verbose] [--resize] [--config conf-file] input-file output-device

piflash [--verbose] --sdsearch

piflash --version

Featured article

"Getting started with PiFlash: Booting your Raspberry Pi on Linux"
by Ian Kluft at
March 15, 2019


This script writes (or "flashes") an SD card for a Raspberry Pi. It includes safety checks so that it can only erase and write to an SD card, not another device on the system. The safety checks are probably of most use to beginners. For more advanced users (like the author) it also has the convenience of flashing directly from the file formats downloadable from without extracting a .img file from a zip/gz/xz file.

User documentation

PiFlash documentation is available as POD. Once installed, you can run perldoc from a shell to read the documentation:

% perldoc piflash

Developer documentation

  • PiFlash - Raspberry Pi SD-flashing script with safety checks to avoid erasing the wrong device
  • PiFlash::Command - process/command running utilities for piflash
  • PiFlash::Hook - named dispatch/hook library for PiFlash
  • PiFlash::Inspector - PiFlash functions to inspect Linux system devices to flash an SD card for Raspberry Pi
  • PiFlash::MediaWriter - write to Raspberry Pi SD card installation with scriptable customization
  • PiFlash::Object - object functions for PiFlash classes
  • PiFlash::Plugin - plugin extension interface for PiFlash
  • PiFlash::State - PiFlash::State class to store configuration, device info and program state

Participation in PiFlash

See the Contributing to PiFlash docs.

When reporting a bug, please include the full output using the --verbose option. That will include all of the program's state information, which will help understand the bigger picture what was happening on your system. Feel free to remove information you don't want to post in a publicly-visible bug report - though it's helpful to add "[redacted]" where you removed something so it's clear what happened.

For any SD card reader hardware which piflash fails to recognize (and therefore refuses to write to), please describe the hardware as best you can including name, product number, bus (USB, PCI, etc), any known controller chips.