cyberdeck/docs/storage-architecture.md
BarnacleBoy 8b41038be7 Initial commit: cyberdeck project planning docs
- Salvage analysis of K501U components
- Orange Pi 5 SBC selection rationale
- Storage architecture (SD card + USB)
- USB hub expansion plan
- Parts list and cost estimates
2026-05-08 22:48:30 +00:00

4.8 KiB
Raw Blame History

Storage Architecture

Strategy: SD card for boot/root, USB for data


Design Principles

  1. Simplicity: SD card boots out of the box, no U-Boot complexity
  2. Reliability: Endurance-rated SD cards last longer
  3. Flexibility: USB storage can be swapped/upgraded easily
  4. Cost: Minimal investment, repurpose existing drives

Layer 1: Boot/Root (MicroSD)

Card Selection

Attribute Recommendation
Capacity 64GB minimum, 128 GB preferred
Type Endurance-rated or Industrial
Brands SanDisk Endurance, Samsung PRO Endurance

Why endurance cards:

Consumer SD cards are rated for bursts of writes (camera use). OS usage is constant logging, updates, cache writes. Endurance cards are rated for:

  • 5000+ hours of continuous recording
  • 1000+ write cycles per sector
  • 5-10× longer lifespan than consumer cards

Cost:$10-15 for 64GB

Boot Configuration

Default Orange Pi 5 boots from SD:

/dev/mmcblk0 (SD card)
├── /dev/mmcblk0p1  → /boot (fat32, ~200MB)
├── /dev/mmcblk0p2  → / (ext4, ~60GB)
└── /dev/mmcblk0p3  → /home (ext4, remaining)

Or single partition with separate mount points:

/dev/mmcblk0p2  → / (ext4, all space)
    /home        → bind mount or subdirectory

Root-on-USB (Optional)

For faster I/O, copy root to USB SSD:

  1. Boot from SD, insert USB SSD
  2. sudo rsync -ax / /mnt/usb/
  3. Edit /boot/extlinux/extlinux.conf:
    append root=/dev/sda1
    
  4. Boot from USB, SD only handles bootloader

Tradeoff: More complexity, faster app loading.


Layer 2: Data Storage (USB)

Options

Option Speed Cost Notes
USB flash drive 100-150 MB/s $12-20 Cheap, limited endurance
USB 3.0 SATA enclosure ~400 MB/s $10-15 + drive Reuse 2.5" drives
USB 3.0 NVMe enclosure ~400 MB/s $8-15 + drive Compact, fast
USD 3.0 flash drive (fast) 200-400 MB/s $20-40 Kingston DataTraveler, Samsung BAR

Recommendation

USB 3.0 SATA enclosure with salvaged 2.5" SSD.

If you have a spare 2.5" SATA SSD from another build/upgrade:

  • Enclosure cost: $10-15
  • Speed: ~400 MB/s (SATAIII limit over USB 3.0)
  • Capacity: whatever the drive is

If no spare drive:

  • USB 3.0 flash drive (128GB): $15-25
  • Or NVMe enclosure ($10) + budget NVMe drive ($20-30)

Mount Strategy

# /etc/fstab
UUID=<ssd-uuid>/mnt/data    ext4    defaults,noatime    0  2
/mnt/data/projects /home/jez/projects  none    bind    0  0
/mnt/data/media   /home/jez/media     none    bind    0  0

Mount on-demand or at boot, depending on use case.


Storage Layout

┌─────────────────────────────────────┐
│  MicroSD Card (/dev/mmcblk0)       │
│  SanDisk Endurance 64GB             │
│  ├── /boot     (fat32, 200MB)       │
│  ├── /         (ext4, 25GB)         │
│  └── /home     (ext4, 38GB)         │
│      Basic config, small files      │
└─────────────────────────────────────┘

┌─────────────────────────────────────┐
│  USB SSD (/dev/sda)                 │
│  SATA or NVMe in USB 3.0 enclosure  │
│  ├── /mnt/data/projects             │
│  ├── /mnt/data/media                │
│  └── /mnt/data/backup               │
│      Mounted on-demand              │
└─────────────────────────────────────┘

Backup Strategy

SD Card Imaging

# Backup
sudo dd if=/dev/mmcblk0 of=cyberdeck-sd-backup.img bs=4M status=progress

# Restore
sudo dd if=cyberdeck-sd-backup.img of=/dev/mmcblk0 bs=4M status=progress

Or use Pi Imager / BalenaEtcher for GUI imaging.

Data Backup

  • Timeshift for system snapshots
  • rsync to external drive
  • Cloud sync for critical files

Performance Expectations

Operation SD Card USB SSD
Boot time 8-12s 5-8s (root-on-USB)
App launch 1-3s 0.5-1s
File read (1GB) 40-90s 3-5s
File write (1GB) 60-120s 3-5s
Random I/O Slow Fast

SD card is fine forOS and light use. USB SSD for anything I/O intensive.


Cost Summary

Item Low High
MicroSD 64GB Endurance $10 $15
USB 3.0 SATA enclosure $10 $15
(Assume spare SSD) $0 $0
Total $20 $30

If no spare SSD:

Item Low High
MicroSD 64GB Endurance $10 $15
USB 3.0 flash drive 128GB $15 $25
Total $25 $40