Cartridge and volume profiles¶
qicsilver uses two kinds of profile to read a tape. A cartridge profile
names the physical cartridge. A volume profile says how the backup program
that wrote the tape laid out its volume table and volumes. Both are TOML files
that ship with qiclib. This page covers how they are chosen and how to see or
force the choice. To write a new volume profile, see
Writing a volume profile.
Neither is a drive profile. Drive profiles describe how a drive behaves on
the bus and are used by tw; see Drive profiles.
Cartridge profiles¶
A cartridge profile describes one cartridge: its standard, track count, tape width and length, capacity, coercivity, and where known its model, vendor and label. The built-in profiles are:
| Standard | Profiles |
|---|---|
| QIC-40 | qic40-dc2000, qic40-307ft, qic40-1100ft |
| QIC-80 | qic80-dc2080, qic80-dc2120, qic80-425ft, qic80-1000ft, qic80-wide-400ft, qic80-wide-750ft, qic80-wide-1000ft |
| QIC-3010 | qic3010-400ft, qic3010-1000ft, qic3010-wide-400ft, qic3010-wide-750ft, qic3010-wide-1000ft |
| QIC-3020 | qic3020-400ft, qic3020-wide-400ft, qic3020-wide-750ft, qic-extra |
For what each cartridge is, see Cartridges.
How a cartridge profile is chosen¶
The header segment records tracks per cartridge and segments per track. Those two numbers are fixed by the standard and the tape's length, so together they name the cartridge:
- Only profiles with the header's track count are candidates.
- If a candidate's standard fixes the segment count (QIC-40) and it matches exactly, that profile is chosen.
- Otherwise each variable-length standard turns the segment count back into a tape length, using its own minimum-segments equation, and keeps the nearest cartridge if it lies within 10% of that length.
- QIC-3010 and QIC-3020 use the same track counts. When both fit, a hint narrows the choice: the drive's tape status recorded in the captures, or header format code 6, which only QIC-3020 defines. With no hint, the report lists both.
You cannot force a cartridge profile. The choice only affects the
cartridge line of the report; it does not change how the volumes are read.
See which cartridge profile matched¶
The cartridge line of qicsilver identify shows the result.
With --json, the cartridge member holds the description, the matched
catalogue entry (catalogue), the estimated length (estimated_ft), whether
the match was exact (exact), and any alternatives.
Volume profiles¶
The QIC-80-MC standard fixes only bytes 0-56 of each 128-byte volume table
(VTBL) record. Where the rest goes, how the volume's segments become bytes,
and what catalog format the volume holds all depend on the backup program. A
volume profile answers all three, one layer each:
| Layer | TOML table | What it sets |
|---|---|---|
| VTBL fields | [vtbl] |
Where bytes 57-127 hold the section sizes, source label, compression byte, OS type and multi-cartridge sequence. |
| Extents | [extent] |
The width of each QIC-122 extent's uncompressed-offset field (4 or 8 bytes) and of each frame's size field (2 or 4 bytes). |
| File set | [fileset] |
The file-set parser that reads the volume's catalog, and its parameters. |
A profile also carries a fingerprint ([match]): bytes the backup
program wrote, such as MTN at VTBL byte 58. The built-in profiles are:
| Profile | Written by | Fingerprint | Parser | Status |
|---|---|---|---|---|
cms-qic113 |
Colorado/HP CMS backup | 113 at VTBL byte 58 and CMS at 62 |
qic113-extended |
bench |
mtn |
The program that writes "MTN" (confirmed on two bench tapes, one a 3M DC2120) | MTN at VTBL byte 58 |
qic113-basic |
bench |
qic113-rev-g |
Any QIC-113 Rev G extended writer | 113 at VTBL byte 58 |
qic113-extended |
spec |
qic80-rev-n |
Software that follows QIC-80-MC Rev N ยง8 exactly | vendor-specific bit clear (no positive fingerprint) | qic113-basic |
spec |
vendor-unknown |
A vendor-specific entry with no known layout; bytes 0-56 only | vendor-specific bit set (no positive fingerprint) | qic113-basic |
spec |
qicstream-v2 |
QICStream v2 | FSET at volume byte 4 |
qicstream-fset |
untested |
novastor |
NovaStor | <<NoVaStOr>> at volume byte 116 |
none (no parser yet) |
untested |
status says how far a profile has been exercised: spec (written from a
standard), bench (confirmed on real tapes) or untested (written from a spec
or another program's reader, never run on a tape here).
For the record layouts, see Volume table and the vendor pages for Colorado (CMS) and MTN.
How a volume profile is chosen¶
With --volume-profile guess, the default:
- Fingerprint gate. Each profile's fingerprint is checked against every VTBL record. A profile whose fingerprint fails is eliminated for this tape. A fingerprint is something the software wrote, so a failure is final.
- Scoring. Every surviving profile decodes every record, and the reading is scored with plausibility checks: does the segment range sit in the data area, is the date sane, is the label printable, is the compression code known, does the claimed size fit in the segments the volume occupies. Each check is worth +1 or -1. A wrong layout reads neighbouring fields as sizes and labels, and fails these checks badly, so the margin is usually wide.
- Winner. The highest score wins. If the runner-up is within 2 points,
the reading carries the
low-confidencewarning. If two profiles read the table identically, it carriesvtbl-ambiguous. If two tie on score, the first is used andidentifyprints a note telling you to pick one. - Parser probe. When
extract,inspectortarbuilds a volume, the winner's file-set parser probes it. If the probe fails, the next profile that would have built the same bytes takes over.
A profile whose only fingerprint is in the volume bytes (qicstream-v2,
novastor) cannot be confirmed from the volume table. It never wins the
scoring. It is tried only when the winner's parser fails its probe.
If every profile is eliminated, the best-scoring reading is shown anyway, with a note that the volumes may be wrong.
Warnings¶
A reading's warnings appear in the identify report, in identify --json,
in the inspect summary, in the TWVL header, in the tar's pax global header
and in the damage report. The ones that come from the profile and its
selection:
| Warning | Meaning |
|---|---|
generic |
A default layout won because nothing positive matched the tape (qic80-rev-n, vendor-unknown). |
untested |
The profile has never been run on a real tape. |
single-tape |
The profile is confirmed on exactly one bench tape. |
low-confidence |
The runner-up scored within 2 points, or a probe passed with failures. |
vtbl-ambiguous |
Two profiles read the volume table identically. |
manual |
A layer was overridden by hand. See Manual read overrides. |
no-parser |
The volume can be extracted to TWVL, but nothing can list its files yet. |
Other warnings describe the volume itself, for example directory-damaged,
compression-unknown or spans-cartridges. The full list is in
TWS-3 TWVL section 3.5.
See which volume profile matched¶
Run qicsilver identify. The volume profile line names the
winner and its score, then every other profile's score, with eliminated
after the ones whose fingerprint failed. The file set line names the parser.
The warnings line follows when there are any.
To see why, add --raw. For each profile it prints every check with its
points, ok or FAIL, and marks fingerprint checks [fingerprint]:
qicsilver identify --raw captures/NAME.twtz
After a volume is built, inspect shows the profile and parser that actually
read it on its directory line, and the TWVL header records them.
Force a volume profile¶
Pass --volume-profile to identify, extract, inspect or tar (and to
cinnabar). Give the same value to every command you
run on the tape.
qicsilver identify --volume-profile mtn captures/NAME.twtz
qicsilver extract --volume-profile mtn captures/NAME.twtz captures/NAME-vols
The value is one of:
- A built-in name, such as
cms-qic113. A misspelled name is an error that lists the built-in names. - A path to a TOML file. A value is taken as a path when it ends in
.toml, names a file that exists, is absolute, or contains a directory separator. guess, the default.
A forced profile is used even when its fingerprint does not match. identify
then prints a note naming the checks that failed.
When no profile reads the tape correctly, override its layers by hand first (Manual read overrides), then keep what worked as a new TOML (Writing a volume profile).