SANS Penetration Testing

Mount a Raspberry Pi File System Image

By Josh Wright

Yesterday, I started my yearly Epic Desk Cleanout. This annual ritual is more about holding up a trash can and sweeping everything into it. I really clean, which includes cataloging all the random SD cards I've collected throughout the year.

"SD cards" by Seeweb is licensed under CC BY-SA 2.0

For SD cards, I'll typically dd the contents of the drive to a Linux box, then examine the data from a shell. This year, a lot of those SD cards are Raspberry Pi images. I end up with a file system dump that I need to examine:


Fortunately, the fdisk utility on Linux can read from a physical device, or from a data dump file:


Here, fdisk reveals a few important tidbits about the binary image:

  • The sector size (512 bytes)
  • The partitions in the disk image including file system types
  • The starting offset in sectors for the file systems

Using the sector size (512 bytes) and the start sector for the Linux file system (264192), we can use a little shell-fu to calculate the number of bytes to the beginning of the file system:


The Linux filesystem is 135,266,304 bytes into the pi.img file. Next, we create a mount point (I use mnt from my current directory, but you can use any unused directory) and mount the image, specifying the number of offset bytes to the Linux partition:


Now it's just a matter of changing to the mnt directory, and exploring the data.

1 SD drive down...1,978 to go.



SANS Note:

Josh Wright is teaching SANS SEC575: Mobile Device Security and Ethical Hacking in San Diego in May 2017. Or take the course, anytime with Josh - 4-months of access to course materials and hands-on labs - OnDemand!


SANS OnDemand - Online Training:


  • 4-months of access to course materials, taught by authors of the course
  • Pause | Play | Rewind
  • Hands-on labs
  • Support from subject-matter-experts in case of questions
  • Checkpoint quizzes to help you better grasp the material
  • Learn more about SANS OnDemand Training:


Posted December 7, 2016 at 4:03 PM | Permalink | Reply


Thanx, Josh. In actual practice though,I would have saved the echo step and simply down the mount with -o offset=$((512*264192))

Posted January 1, 2017 at 5:11 PM | Permalink | Reply

Christopher Rogers

Looking forward to learning through hands-on with SANs in 2017

Post a Comment


* Indicates a required field.