#!/bin/bash # ============================================================ # disk-recovery.sh — Disk recovery and flash-testing tools # ============================================================ # Installs two complementary data-recovery/storage-testing tools: # # ddrescue — GNU ddrescue: robust block-level disk imaging tool # that retries bad sectors and creates a recovery log # so interrupted rescues can be resumed. Available in # the official Arch repos. # # f3 — Fight Flash Fraud: tests USB drives and SD cards for # counterfeit capacity by writing and verifying data. # Available from AUR only. # # These are optional because they are specialist tools most users # only reach for when something has gone wrong (failing drive, # suspected fake flash storage). # ============================================================ set -euo pipefail # Load shared logging helpers from the dotfiles lib source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh" # ── ddrescue (official repos) ───────────────────────────────────────────────── # ddrescue copies data from a failing or damaged disk to an image file, # intelligently skipping bad sectors and retrying them later. The recovery # log (mapfile) enables resuming after an interruption without re-reading # already-good sectors. Preferred over dd for data recovery because it # maximises the amount of data recovered from a partially readable drive. log "Installing ddrescue..." sudo pacman -S --noconfirm --needed ddrescue # ── f3 (AUR) ───────────────────────────────────────────────────────────────── # f3 (Fight Flash Fraud) reveals counterfeit storage devices that report a # larger capacity than they actually have. It works by filling the device # with unique data then reading it back to find where corruption starts. # Useful before trusting a newly purchased USB drive or SD card. log "Installing f3 (AUR)..." yay -S --answerdiff None --answerclean All --noconfirm f3 log "Disk recovery tools installed."