Documentation

Everything you need to run tScrub — from boot to a verifiable report.

Part 1 · Get started

1. Quick start

New to tScrub? Start with the Getting started guide — account → licence → boot → report → certificate.

  1. Boot the tScrub appliance image from USB or PXE and run it.
  2. Enter a 5-digit Chain of Custody ID (COCID) when prompted.
  3. tScrub discovers every drive and maps it to its strongest wipe capability.
  4. Watch live progress; each drive ends with a status (COMPLETED, FROZEN, BLOCKED, or FAILED).
  5. Collect the report files, which are written to the report directory.

2. System requirements

  • x86-64 machine with USB or PXE boot
  • 1 GB RAM (erasure runs in parallel)
  • Dependencies are bundled in the appliance image: nvme-cli, hdparm, nwipe (SCSI), smartctl (SMART), lftp (upload), openssl (signing)
  • Drives must not be in use by the host OS

Part 2 · Build & run

3. Download the appliance

tScrub ships ready to boot — there is nothing to compile. Download the appliance from the Download page (no account needed), then sign in and issue your licence from the Licences page:

  • The appliance ISO — a hybrid ISO that boots on BIOS and UEFI, with sedutil-cli, curl, lftp and the report tooling built in.
  • A .lic file — every appliance needs one (the free tier is included).

tScrub is a single self-contained script embedded in the image (at /usr/bin/tscrub.sh). Security teams can extract it from the ISO to audit it line by line.

4. Run a sanitisation job

tscrub                      # full run (wipes all supported drives)
tscrub --dry-run            # discover and classify, wipe nothing
tscrub --output /mnt/usb    # write the report to /mnt/usb
tscrub --dry-run --simulate-running-eta=10   # simulated run with live progress

tScrub prompts for a COCID, then wipes all supported drives in parallel. Frozen, locked, or blocked drives are flagged rather than marked clean.

Part 2b · Deploy — USB & PXE

Boot the appliance from USB

The appliance download is a hybrid ISO (boots on both BIOS and UEFI, ~150 MB). Always verify its SHA-256 against the .sha256 file published next to it before writing it to a stick.

Secure Boot supported: the appliance boots with UEFI Secure Boot on, via a signed shim + MOK chain. On the first boot on a machine, shim opens MokManager — choose Enroll MOK → Continue → Yes, then reboot. After that it boots normally. (You can also simply disable Secure Boot or enable CSM/Legacy boot.)

  1. Insert a USB stick (4 GB or larger — its contents will be erased).
  2. Open Rufus and select your device.
  3. Boot selection: the downloaded ISO; Partition scheme: MBR for BIOS/CSM machines, GPT for pure UEFI; File system: FAT32.
  4. Click Start. When Rufus asks, choose Write in DD Image mode — this writes the ISO byte-for-byte (equivalent to dd) so it boots correctly.

Boot over the network (PXE)

The appliance kernel is self-contained (its initramfs is embedded, gzip-compressed, inside bzImage), so PXE needs only the kernel file plus a standard DHCP → TFTP → iPXE chain. This is the same two-stage HTTP-boot pattern used to netboot ShredOS (see the tadvaas/pxe reference setup).

  • DHCP — set next-server and boot filename: undionly.kpxe (legacy BIOS) or ipxe.efi / snp.efi (UEFI; use snp.efi if an HP or multi-NIC system picks the wrong adapter).
  • TFTP (tftpd-hpa) — serves the iPXE firmware only.
  • HTTP (nginx) — serves bzImage (extracted from the ISO).
#!ipxe
:tscrub
dhcp
kernel ${base-url}/tscrub/bzImage console=tty3 loglevel=3
tscrub_api_token=YOUR-64-HEX-TOKEN
boot

There is no initrd line — the initramfs is inside bzImage. Append any tScrub kernel parameters (report destination, licence) directly to the kernel line. The licence can be served over the LAN too: tscrub_license_url=http://pxe-host/tscrub/license.key.

Getting the kernel (bzImage)

bzImage is inside the appliance ISO at /boot/bzImage (shown as /BOOT/BZIMAGE in some listings). Extract it on any OS, then put it on your HTTP server.

Open the ISO with 7-Zip (7-Zip opens ISO files as archives): right-click the downloaded ISO → 7-Zip → Open archive, then drag boot\bzImage out to a folder. Copy it to your HTTP server (e.g. via WinSCP/scp) as bzImage.

Place bzImage on your HTTP server (e.g. nginx /srv/pxe/tscrub/bzImage) and point ${base-url} at it in boot.ipxe.

Report destinations (USB · FTP · dashboard)

Where the report lands is chosen at boot time, on the kernel command line (the same place for every boot method). You can combine them — tScrub writes locally first, then uploads.

DestinationKernel parameterNotes
USB stick (default)— (automatic)
tscrub_output=/path
Writes to the same volume the .lic was found on — the TSCRUB-USB partition with dd/Etcher, or the single partition with Rufus ISO mode — under reports/<COCID>/. Override with tscrub_output=.
tScrub dashboardtscrub_api_token=<64-hex>Needs curl + a CA bundle — both built into the appliance image. The dashboard URL is built in; the token (an appliance token from the Licences page) is all you supply.
FTP / SFTP servertscrub_output=ftp:host:path:user:pass
tscrub_output=sftp:host:path:user:pass
Uses lftp (built into the appliance image). Path is relative to the FTP/SFTP user's home. Use a dedicated account; credentials are visible in the boot config.

Preconfigure with a tscrub.conf file

You don't have to edit GRUB or the kernel command line — drop a tscrub.conf on the stick (next to your .lic) and tScrub reads it at boot:

tscrub_api_token=YOUR-64-HEX-TOKEN
tscrub_cocid=12345
tscrub_license_url=http://192.168.1.10/license.key
tscrub_output=ftp:backup.example.com:incoming/tscrub:itad:s3cret

Keys mirror the kernel parameters: tscrub_api_token pushes reports to your dashboard, tscrub_cocid enables unattended runs (no prompt), tscrub_license_url fetches the licence over the LAN, and tscrub_output points reports at a local path or an ftp: / sftp: server. Command-line flags always take precedence. Editing the GRUB entry on the stick also works when the boot partition is writable (Rufus ISO mode or Ventoy), but tscrub.conf works however you wrote the stick.

Full details and examples are in section 5, Getting reports off the appliance.

Part 3 · Reports

5. The report

Each job produces a CSV report plus a JSON manifest; a signature sidecar is written whenever OpenSSL is available (always, on the appliance image):

tScrub_48213_20260912T103000Z.csv    # human-readable report (one row per drive)
tScrub_48213_20260912T103000Z.json   # manifest (SHA-256, public key, drive summary)
tScrub_48213_20260912T103000Z.sig    # base64 Ed25519 signature (vendor key on paid, appliance key on free)

The CSV columns are: COCID, Timestamp, Model, Serial, Size, Bus, Type, Device, Class, Certification, Method, FinalStatus, SMART, TempC, PowerOnHours, PowerCycles, ReallocSectors, PctUsed, AvailSpare, TBW_TB, SMARTPOST, TempCPost, PowerOnHoursPost, System, SystemSerial, BaseboardSerial, CPU, GPU, RAM — the machine's make, serials, processors, graphics, and memory are repeated on every drive row.

Getting reports off the appliance

At the end of a run tScrub writes the report files locally, then optionally uploads them. Everything is configured at boot time on the kernel command line (PXE, GRUB, or the appliance boot entry) — not inside the script.

Where the report is written — tScrub saves to the same volume it found your .lic on (with dd/Etcher that's the TSCRUB-USB partition; with Rufus ISO mode it's the single writable partition), then falls back to a FAT/exFAT scan, then RAM. Reports are grouped under reports/<COCID>/, and the partition is synced and unmounted before reboot so nothing is lost on power-off. Override the location with tscrub_output=:

tscrub_output=/mnt/usb

Layout on the stick:

reports/
└── 11111/
    ├── tScrub_11111_20260922T161328Z.csv
    ├── tScrub_11111_20260922T161328Z.json
    └── tScrub_11111_20260922T161328Z.csv.sig

Push to the dashboard (network) — send the report straight to your tScrub account. The token comes from the Licences page of your dashboard. The appliance image ships curl and a CA-certificate bundle, so this works out of the box:

tscrub_api_token=YOUR-64-HEX-TOKEN

Upload via FTP or SFTP — upload the report files to an FTP or SFTP server. Both run over lftp, which is built into the appliance image:

tscrub_output=ftp:host:path:user:password
# e.g. tscrub_output=ftp:backup.example.com:incoming/tscrub:itad:s3cret
# SFTP (encrypted):
tscrub_output=sftp:backup.example.com:incoming/tscrub:itad:s3cret

ftp or sftp is the protocol. host is the server, path is the remote directory (relative to the user's home, no leading slash), then the username and password.

The password must not contain spaces, and credentials are visible in the boot configuration — use a dedicated upload account.

6. Verify a report

Anyone can verify that a report is unchanged and, where licensed, attributable:

tscrub verify tScrub_48213_20260912T103000Z.csv
SHA-256: 4614d837...
Manifest: OK
Signature: VALID

You can pass a public key explicitly: tscrub verify report.csv public-key.pem. A tampered report fails with MISMATCH or INVALID. A report with no signature (no OpenSSL available) shows Signature: none (checksum only).

The official tScrub vendor public key fingerprint (for audit reference):

be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02

7. Certificate of Destruction

Turn one or more tScrub reports into a single, printable Certificate of Destruction. Upload the .csv files (and, if you have them, the matching .json and .csv.sig sidecars) on the dashboard Reports page, then select the Chain of Custody ID on the Certificates page to generate a consolidated certificate.

What happens when you upload

  1. Each .csv is hashed (SHA-256) and, when a manifest is present, checked against its recorded checksum.
  2. Where a report is signed, the Ed25519 signature is verified against the key embedded in the manifest.
  3. Drives from every report with the same COCID are merged into a single certificate, sorted by wipe time.
  4. A tamper-evident PDF is generated with a unique Certificate ID, a device annex (Annex A), a pre/post-wipe SMART annex (Annex B, when the report includes it), and a verification QR code. Signed (paid) certificates also carry a digital signature.

Verifying a certificate online

Each certificate carries a unique Certificate ID (COD-…). Scanning the QR code — or visiting tscrub.com/verify?cert=COD-… — looks up the issuance record and confirms:

  • the Certificate ID, Chain of Custody ID, and sanitisation window;
  • device, method, and run counts;
  • the integrity and signature status recorded at issuance;
  • a SHA-256 hash of the PDF itself, so the document can be checked for alteration since issue.

Part 4 · Reference

8. Licensing

TierReport signing
FreeSelf-signed, appliance-generated key (tamper-evident, not attributable)
Pay-as-you-go / Team / EnterpriseVendor-issued key (proves attribution to a customer)

Licences are self-serve: sign in at tscrub.com and issue one from the Licences page of your dashboard. You'll receive a .lic JSON file. Free licences carry no report key, so the appliance self-signs reports with its own generated key (tamper-evident, not attributable); paid licences embed a vendor-signed report key, so the appliance signs reports with that key, the licence verifies against the tScrub vendor key, and uploaded reports are matched back to that key so they are attributable.

Attaching a licence

The appliance looks for a licence on the boot USB first — drop your .lic at the root of the stick (as license.key or any *.lic) and it is picked up automatically. Failing that it falls back to /etc/tscrub/license.key, or you can point at it explicitly with --license:

mkdir -p /etc/tscrub && cp "Acme-ITAD-Ltd-2027-09-12.lic" /etc/tscrub/license.key
tscrub --license /path/to/Acme-ITAD-Ltd-2027-09-12.lic

For appliance / PXE boots, set the licence path on the kernel command line:

tscrub_license=/etc/tscrub/license.key

The licence can also be fetched over the local network instead of a filesystem path. Use --license-url when running directly, or the URL form of the kernel parameter for appliance/PXE boots:

tscrub --license-url http://192.168.1.10/license.key
tscrub_license_url=http://192.168.1.10/license.key

Fetching requires curl or wget on the appliance. Because a .lic contains the private report-signing key, host it on an authenticated or isolated LAN endpoint — not a public URL.

Every appliance requires a valid licence — even the free tier. Without one, tScrub exits with an error.

Vendor public key (published for audit verification):

-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAbBDdsD4wQh7aoBRe890V8LcTOZNe6n6Cvh0AkrBA4B4=
-----END PUBLIC KEY-----

Fingerprint: be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02

Release & key history

Each release is checksummed and signed; the signing key is recorded so older downloads and licences stay verifiable. Reports themselves verify against their own embedded key, so they never depend on this history.

ReleaseSHA-256Signing key fingerprint
tscrub v1.4.45e086413cdaf5192118c6e16e60341d693d7423357c48beffae9ae7aec3c3dc78be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.4471b5a4b66cd57e8d1537ce7f4562313043c5326d8e7f2060640815a218fc5492be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.43be16648bcb3dda574870b6dee632c63397366b46e6edbac59cb97c366f814321be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.4207226090c9b672b215850e4471cf817bff2bd88197a1d8f4ac0a6dc43c429823be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.4123c259abe92178eaebfca8342a5318d5019f17eb7c21bf0b8de13fb3e831a315be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.4042671f9b53e523461eb86b56daf7a5c606b207aa2764ea9132c2ddd1845e0bcbbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.39d04a7c307a9dd529cd90c37513b155041edc9f110bfcb733446b5919389586c3be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.384662ddf1b2e0f7c16b7ff1ca34f93d72be2f52607902d749a71bed427a3f5ff6be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.37c9719d61495bb7c30129e76296df0b8afac3220a183278cf8e360a6526e29c09be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.36b1a961bac1d5f0470cf55dd31a0655b45995482aa418d80eb2baf0d2dacb1f4fbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.35a2ffa69d360b24ec1a3632f16f7fd183e3bec706372332b76ce6f5cebec56b69be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.3488580e54627b69e466e7e5a947241d2aac1025d3f44ad10eac558015e2f7ba18be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.32f02a809312e245e44b2b05f1eef149aa8e85e4ee48700aec944e70137cfd9eb7be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.31a9ac1c76f1528791fd6070b89bbee2d5448aa68cfc50900d1c53add60c64167cbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.30d0348dec5b4388ee5407758b262284838208249eeb7b3018093dc6ad90fc4e20be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.291047ffa11318c3e81d28794bfad7de76a3c206d6f83a5174789909789bc26b93be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.286282c3f19e852f8d1a8e870ac856ad8335be6cbe1f2de8b13a01ec49186ebb79be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.2727860ac93c64349182039ddf4b884056a0b16973e3fc28db65d8a0c8a6f9a002be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.266c87fffaf92224cd47a68c59d2e55a74cbad4531395b4bab68279d86def4ac28be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.258c949e36731f1f7351e5c2a1b8ffca5d3d5bc49e807bdb8e4298a77285273871be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.24a4e053fc56bd2947aaa4139073247efb5c534901508aae77eb9366296b1d864ebe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.23bcb9b666f2b4a5de5143259c36ba23b82da8c234b652e98bfea50c14dec11f09be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.22ce7093f9c4c16e095a5fc5b04cadc7e9dec7d0bccb90433d13b6b8ce1fb721dfbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.21f44dfa3382334fdc29842eb8a31e70d0dfe0bddde4f9b7191f8576725886b742be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.206e5735c88ecbf774312fdfde672efbfdffb4a178d02008c3b6d46137449fe910be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.1983c6bbdde86be32bdc2f9737884370082589017f2bc9e2db704df8d3da4bf3adbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.18e85fa74dc80d9ed96a309ef3840f6f26d3782e37ba3905756707aa649723c498be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.173f0e76abbdbcfd321896cf4c900cf2a059d70eb4ba174a049dca701a8118c5f5be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.16850f875bc42dcae06158db9c6a03cd393af50248d1fe34545a7672b20f9bc77cbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.159960edcfe69cf37527b04b6968c0c24d860cf45f80920844731958b6b0b9ef13be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.149b61bcfedba59ef3f857378c561c1111304c4524ef8832c6934a3439f5914da2be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.1303c17cff51850227952a5cdb5b0f3d0cf5f7c2d164521943f1d5da09e120c1dcbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.12c88c8776c19380846aca14d7721f364adc63993929a53d5120df10746b8eaff2be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.1167e6bcbf5f028fd1932ab4e91b98bbf74734994498ae8e9af1cbf74db03da6edbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.109e97d6f86e4e0c811840b956908690221ed1f89918cbe9e9e186b6be77214effbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.9e0083118e2f1f4ce8759c6045775d20d2c0049e1d617d5a379add3b57abd2a5abe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.8e4d8b49c218ecd99c17ac700b18747bea791e3f3601c7baa3ed1f32d0634d4c9be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.7de1e8dad1a358acb383a3ca0e7ab3ad10de82d6a1f076d733bc144998c2a4dcdbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.693f85aaf6d9f742d55638fc6fd577610307d5fdd86c42b619e9ecbd75a88c6b9be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.5d868c74e4bb50d25575ff6c33f595e27eaacf9cc929d5001348f4fec817e6a98be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.48b0ea2c6ae6036a63b87014cb8808143523262a92cf57db8cc56e2d796680bc4be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.3a9422a8ed5b3db589bb175b0c3b6704e54e6a3e7a91cfe190db54a82d7a8e8b2be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.2a8f44ffdd94550445b3d83a4cc7013490998242cc7b3f58d2fdbb5cff996c0dfbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.4.1ef843f04cc51851896727e432ba55586c26e41b3ee9493956c952abcfcb94958be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.436348783dd508dfae90804edc792286958483a1ce337bea33e144d8c6e09ec5dbe81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.3425dce8629ebfa38a671d992e884bbfcfbfecfc558113d0241acac734d21c3b5be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.280182216d58926902627bd4a68365ba446410b88683d9f41dcc028fc963e7df4be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.1e87549ead705b5d618c8fd21bd18375e21d4088bb4e3d8205770136432323ee0be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02
tscrub v1.085e83b2f09dcc020d96787b4d92ce8604e475364c0856d61e8253df9b11b67a0be81586c42b5fb2451f7691782c08376c2038d277e79710ff45294409b476c02

When the vendor key is rotated, the old public key is listed here (never deleted) so licences and releases signed by it remain verifiable.

9. Supported media

Drive typeMethodOutcome
NVMeCrypto / block / overwrite sanitise, or formatPurge / Clear
SATA / ATAEnhanced or standard security erasePurge / Clear
SCSI / SASnwipe quickClear
Frozen / locked / unsupported—Flagged for physical destruction

10. Kernel parameters & boot configuration

Everything tScrub needs at boot is set on the kernel command line; these parameters are read from /proc/cmdline at startup.

ParameterPurpose
tscrub_cocid=12345Chain of Custody ID. Setting it skips the prompt and runs non-interactively (autonuke).
tscrub_license=/path.licRead the licence from a filesystem path.
tscrub_license_url=http://…Fetch the licence over the network.
tscrub_output=/mnt/usbWhere to write the report (a filesystem path).
tscrub_output=ftp:host:path:user:passUpload the report over FTP.
tscrub_output=sftp:host:path:user:passUpload the report over SFTP (encrypted).
tscrub_upload=<url>Optional — overrides the built-in dashboard endpoint (https://tscrub.com/api/reports).
tscrub_api_token=<64-hex>Appliance token from the Licences page — pushes the report to your dashboard.
shredos_output=ftp:host:path:user:passDeprecated — former name for tscrub_output=ftp:…. Still accepted for backwards compatibility.

Defaults: the licence is read from the boot USB (a license.key or *.lic at the stick's root), then /etc/tscrub/license.key, unless tscrub_license= / tscrub_license_url= is set; the report is written to the first writable FAT32 partition (the boot stick), then RAM, unless tscrub_output= overrides it.

Where to set them

The kernel command line is supplied by the bootloader, so how you set it depends on how you boot:

  • USB (persistent) — the boot partition is a writable FAT32 volume, so after writing the image you can edit /boot/grub/grub.cfg (BIOS) or /EFI/BOOT/grub.cfg (UEFI) on the stick, appending your parameters to the linux line.
  • USB (one-off) — edit the entry at boot instead: highlight it, press e, append your parameters after console=tty3 loglevel=3, then press Ctrl+X. This affects that boot only.
  • PXE (best for fleets) — put the parameters on the kernel line of your boot.ipxe (see Boot over the network).

Command-line flags

The same settings can be passed as flags when you run tscrub directly (for example on the appliance console). There is also a verify subcommand for checking reports offline.

FlagPurpose
--cocid 12345Chain of Custody ID; runs non-interactively (autonuke).
--license /path.licRead the licence from a path (default: boot USB, then /etc/tscrub/license.key).
--license-url URLFetch the licence from a URL.
--output /mnt/usbWrite reports to a directory (default: boot USB, then RAM).
--dry-run, -nDiscover and classify drives without wiping anything.
--simulate-running-eta=MINUTESWith --dry-run, simulate a running job's live progress.
verify report.csv [pub.pem]Verify a report's SHA-256 and (optional) Ed25519 signature.
--help, -hPrint usage.

Ready to try it?

Download the appliance image and issue your licence, or see pricing for signed reports and support.