Use Case: Large File Transfer

Scenario

Transfer a single large file (e.g., 50GB VM image) across an air-gap using 16GB USB drives.

Use Case: Large File Transfer UC-TRANSFER-001
status: approved
tags: transfer, workflow, large-file, chunking
release: v1.0

Transfer a single large file (50GB VM image) across air-gap using multiple 16GB USB drives with automatic chunking.

Pack: Split file into chunks sized for USB capacity (one chunk per USB: 3x 16GB + 1x 2GB across 4 USB drives), generate checksums, create manifest on each USB.

Transfer: Physically move USB drives across air-gap boundary.

Unpack: Verify chunk checksums, reconstruct original file, verify final file integrity.

Acceptance Criteria: File reconstructed matches original, all checksums verified, no data loss, process completable by non-technical user.


Prerequisites

  • Source machine: Connected system with internet access

  • Destination machine: air-gapped system

  • Transfer media: Four 16GB USB drives

  • File: vm-image.qcow2 (50GB)


Workflow Steps

Phase 1: Pack on Source Machine

Connect USB drive #1

airgap-transfer pack vm-image.qcow2 /media/usb-drive --dry-run

Preview: Shows 4 chunks needed (3x 16GB + 1x 2GB)

Execute pack operation

airgap-transfer pack vm-image.qcow2 /media/usb-drive
  • Writes chunk_000.tar (16GB)

  • Generates SHA-256 checksum

  • Updates manifest

Swap USB drives

  • Tool prompts: “Insert next USB drive”

  • Eject USB #1 safely

  • Connect USB #2

  • Tool continues with chunk_001.tar

Repeat for remaining chunks

  • USB #3 contains chunk_002.tar (16GB)

  • USB #4 contains chunk_003.tar (2GB)

  • All USBs contain copy of manifest: airgap-transfer-manifest.json

Phase 2: Physical Transfer

  • Physically move USB drives across air-gap boundary

  • No network connectivity required

Phase 3: Unpack on Destination Machine

Connect USB drive #1

airgap-transfer list /media/usb-drive

Shows chunks present on this USB (chunk_000)

Connect all USB drives

  • Mount USB #1, #2, #3, #4

  • All chunks now accessible

Execute unpack operation

airgap-transfer unpack /media/usb-drives ~/restored/
  • Verifies checksums for all chunks

  • Reconstructs vm-image.qcow2

  • Verifies final file integrity

  • Reports: “Success: 50GB transferred, verified”


Acceptance Criteria

  • ✅ File reconstructed matches original

  • ✅ All checksums verified

  • ✅ No data loss or corruption

  • ✅ Process completable by non-technical user


Error Scenarios

Error

Cause

Recovery

“Chunk missing”

USB #2 not connected

Connect missing USB

“Checksum mismatch”

Corrupted chunk

Re-pack affected chunk

“Insufficient space”

Destination disk full

Free space, retry

Linked Requirements

ID

Title

Status

Release

Verified By

FR-TRANSFER-001

Split Files into Chunks

approved

v1.0

TC-PCK-001; TC-PCK-002

FR-TRANSFER-003

Generate Chunk Checksums

approved

v1.0

TC-PCK-004

FR-TRANSFER-005

Stream Data to USB

approved

v1.0

TC-PCK-006

FR-TRANSFER-007

Show Pack Progress

approved

v1.0

TC-PCK-008

FR-TRANSFER-009

Reconstruct Files from Chunks

approved

v1.0

TC-UNP-001

FR-TRANSFER-010

Verify Chunk Checksums Before Unpack

approved

v1.0

TC-UNP-002

FR-TRANSFER-020

Generate Checksums

approved

v1.0

TC-INT-001

FR-TRANSFER-031

Dry Run Flag

approved

v1.0

TC-TRANSFER-CLI-004

Traceability

Tests

Integration Tests

No needs passed the filters

Unit Tests of Linked Requirements

ID

Title

Status

Tests

TC-INT-001

Generate SHA-256 Checksums

approved

TC-PCK-001

Pack Single File into Chunks

approved

TC-PCK-002

Pack Directory into Chunks

approved

TC-PCK-004

Generate Chunk Checksums

approved

TC-PCK-006

Stream Without Temp Files

approved

TC-PCK-008

Progress Reporting

approved

TC-TRANSFER-CLI-004

Dry-Run Mode

approved

TC-UNP-001

Reconstruct Files from Chunks

approved

TC-UNP-002

Verify Chunk Checksums

approved