Skip to content

Restoring

Xitee edited this page Sep 13, 2026 · 2 revisions

Restoring DAR archives

extract restores DAR archives. For raw discs, copy files directly and use the raw repair guide if needed.

Choose an empty output directory and plan room for all collected slices plus the restored data. Slices accumulate until disc collection is complete. Input disc folders must be separate from both output and workdir; overlapping paths are rejected before creating output or staging files.

Restore from disc folders or images

# All prepared discs from one create run.
bd-archive extract -o /data/photos-restored -i /data/photos-gen1

# A full archive and its next generation.
bd-archive extract -o /data/photos-restored \
  -i /data/photos-gen1 /data/photos-gen2

These are alternative examples; use a fresh target for an independent restore. -i / --input accepts individual DAR disc folders, ISO files, or create output directories. Sets expand to sorted disc_NNNN/ folders under discs/, or disc_*.iso under images/. Both container directories can also be passed directly. Mixed folder/ISO sets in one directory are refused. Duplicate paths are removed. Supply -i once followed by all desired paths; --iso remains a compatible alias.

Folders are read directly; only ISO files are mounted through udisks2. There are no disc-change prompts, though a chain picker or incomplete-chain confirmation can still appear. -i and -D are mutually exclusive. The command requires dar and par2 even for checksum-only archives, plus udisksctl for images.

Restore from physical discs

bd-archive extract -o /data/photos-restored -D /dev/sr0

Omit -D to use drive auto-detection. Insert the first disc and confirm. For each disc, the tool stages its slices and checksums, collects any available isolated catalog, ejects the disc, then checks the local copies.

After the first disc, it automatically polls for another disc. Insert discs from the chosen chain in any order. When all wanted discs have been collected, press e while waiting to begin extraction. This is not a yes/no prompt after every disc. With non-TTY input, send e followed by a newline.

Generations and shared discs

The first accepted disc establishes the chain from DAR filenames. If it contains several chains, a numbered picker asks which to restore. Other chains are ignored. A shared disc containing multiple generations of the chosen chain contributes all of them.

When collection ends, generations are extracted in ascending order. Later file versions overwrite earlier ones, and DAR applies recorded deletions. To restore a specific historical state, collect the full chain only through that generation.

The source directory's contents are restored under -o; DAR mode does not add the raw mode's extra source-folder wrapper.

Damage and partial sets

Staged slices are checked with SHA-512. On failure, the tool asks for the affected physical disc again, reopens the folder, or remounts the ISO. It fetches that slice's PAR2 files and attempts repair locally. An intact PAR2 result can be accepted even if the SHA-512 sidecar disagrees; an actual repair is checked again with SHA-512. The source disc, folder or image is not modified; repair operates on staging.

An invalid isolated catalog is discarded from staging. It can be collected again from a disc that carries a copy; current sets put it on disc 1 only. The embedded master catalog is in the final DAR slice.

For missing generations, the tool warns before extracting an incomplete chain. Missing slices are handled by DAR's sequential best-effort restore. The amount recoverable depends on which data and metadata survived; there is no guaranteed recovery percentage. Missing generations can mean missing file contents and unapplied deletions.

Understand the result

Result What to do
Exit 0 No corruption was reported by this run; inspect the restored files and check that the supplied set was complete
Exit 1 with corrupted-files.txt Inspect the report of bad-CRC files and/or unrepaired slices; the output contains best-effort restored data
Exit 1 with a tool/mount/dependency error Read the diagnostic; extraction may have stopped before producing a corruption report
Exit 130 The operation was cancelled through the top-level Ctrl+C/EOF handler

The report lists detected corruption, not an inventory of everything absent from an incomplete set. A zero exit code does not prove completeness.

Repeat or resume a restore

The target contains .bd-archive-extract, recording its chain name. A non-empty target is accepted when it is a previous restore of that chain. Existing files can be overwritten on a rerun, so keep edited or unrelated files elsewhere. A target belonging to a different chain is refused.

Rerun with all discs/generations needed for the desired final state. Staging left by an interrupted run can save copying, but chain collection is rebuilt from the discs/images supplied to the new invocation. Existing staged slices are reused; changing the source ISO alone does not force them to be recopied. For a clean retry from replacement media, use a fresh output and workdir.

The default workdir is removed after the extraction loop finishes, including a completed best-effort restore that reports corruption. Earlier fatal failures may leave it in place. A custom -w workdir is retained. An old corrupted-files.txt is not automatically removed by a later clean run; inspect its timestamp and the current run's output, or use a fresh target to avoid confusing old and new results.

RAM staging

bd-archive extract -o /data/photos-restored \
  -i /data/photos-gen1 -w /dev/shm/photos-restore

Use this only when tmpfs has room for the entire collected slice set, catalogs, repair files and operating overhead. It is not a one-disc rolling buffer. There is no automatic switch to disk if an explicit RAM workdir fills. Restored files still go to -o; tmpfs can also use swap depending on the host configuration.

See Storage and layout for disk-space planning.

Clone this wiki locally