Disk Operations Suite

SectorPilot

Times every block of a disk image and maps which ones are struggling.

Free right now — no account, no card

Get SectorPilot free Windows & Mac · one file, nothing to install

Preview

1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.

Interface design SectorPilot, 1 of 1
Screenshot SectorPilot running on Windows today

Free while we’re in preview

Get SectorPilot

Times every block of a disk image and maps which ones are struggling.

The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.

One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.

Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.

  • One file — no installer
  • Runs on your machine, offline
  • Source code published below

Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, SectorPilot is included in every plan along with the rest of the range.

A benchmark says the drive feels slow

SectorPilot says blocks 8,690 to 8,695, byte offsets 569,507,840 onward, took thirty times longer than the median, that they were fine on Monday, and that four neighbours have joined them since. It reads an image block by block, times each read on its own, and classifies every block OK, SLOW or FAILED. The surface map compresses the whole file into at most 256 cells, so the shape of the trouble shows up: a failing head stripes, a scratch bands, a dying flash block clusters.

Careful what you conclude

A read time includes the filesystem, the page cache, the I/O scheduler and whatever else the machine was doing at that microsecond. A block flagged SLOW might be a weak sector, or it might just have been unlucky. That’s exactly why compare and verify exist. Slow twice, in the same place, on a quiet machine, is interesting. Slow once during a backup is noise.

What it refuses to do

Regular files only. Point it at /dev/sda and it tells you to image the device first. No SMART, no repair, no write of any kind. The image is opened O_RDONLY and only ever gets Stat and ReadAt; the one file the program can create is the path you pass to --save.

Reading on the job itself

Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams

A working prototype of a block-level surface scan: it reads an image block by block, times every read, and maps which areas are healthy, slow or unreadable — then compares two scans to show whether trouble is spreading. Strictly read-only, with no write calls against the target at all. Reported honestly: genuine bad sectors were not reproducible in testing, so the failure path was exercised by proxy, and a slow block is a hint rather than a diagnosis.

Naming status

Working name only — brand verdict **CAUTION** (Medium). Collision: SectorPilot / recent 'Sector: Pilot Logbook' adjacency. Could use only after formal clearance; alternate name likely better.

What it draws on

Existing paid software whose best ideas shaped this program: EaseUS Partition Master Professional, AOMEI Partition Assistant Professional, DiskGenius Professional, Hard Disk Sentinel Professional.

Command line

There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.

sectorpilot - read-only block-level surface scan and health map

USAGE
  sectorpilot scan    <image> [--block 64KB] [--slow-ms N] [--save scan.json] [--top N] [--json]
  sectorpilot compare --before a.json --after b.json [--json]
  sectorpilot verify  <image> --scan scan.json [--json]

COMMANDS
  scan      Read the image block by block, time every read, and classify each
            block OK / SLOW / FAILED. Prints counts, median and p95 read times,
            the slowest blocks with their byte offsets, and an ASCII map of the
            whole surface.
  compare   Diff two saved scans: which blocks got worse, which recovered, and
            whether damage is spreading.
  verify    Re-read only the blocks a saved scan flagged, to confirm quickly
            whether they are still bad.
  help      Show this message.

OPTIONS
  --block <size>    Block size for scan. Accepts 4096, 64KB, 1MB, 1GB.
                    Suffixes are powers of 1024. Default 64KB.
                    Must be between 512 bytes and 64 MiB.
  --slow-ms <ms>    Fixed slow threshold in milliseconds; fractions allowed
                    (e.g. 0.05). When omitted or 0, an adaptive threshold of
                    max(8 x median read time, 1.0 ms) is used instead.
  --save <path>     Write the scan to a JSON file for later compare/verify.
  --top <n>         How many slowest blocks to list. Default 10.
  --before <path>   compare: the earlier scan file.
  --after <path>    compare: the later scan file.
  --scan <path>     verify: the saved scan whose flagged blocks to re-read.
  --json            Emit machine-readable JSON instead of text.
  -h, --help        Show this message.

EXIT STATUS
  0   success, nothing failed
  1   usage error, or the image or scan file could not be read
  2   scan: at least one block FAILED
      compare: at least one block that did not fail before now fails
      verify: at least one rechecked block still FAILED

...

Recorded from the shipped binary, not written by hand.

Source

Every file the program is built from:

console.go · console_test.go · guided.go · main.go

SHA-256 checksums · build instructions & scope notes · full build plan