# Terminal reference [English](cli.md) · [Português](pt-BR/cli.md) Reading a raw disk requires privileges: administrator on Windows, `sudo` on Linux and macOS. Use `guara --help` for the full list of options. ## Commands | Command | What it does | |---|---| | `devices` | Lists disks and USB sticks, warns about TRIM and mounted volumes | | `inspect ` | Partitions, unpartitioned space, encryption | | `health ` | Disk health (SMART); requires `smartmontools` | | `scan ` | Scan for deleted and lost files | | `resume ` | Continues a paused scan | | `recover ` | Recovers the files of a session | | `image ` | Forensic image (raw, E01 or AFF4) | | `verify ` | Checks an E01 or Ex01 image against the stored hash | | `hash ` | MD5, SHA-1 and SHA-256 of the device | | `search ` | Text across the whole disk, UTF-8 and UTF-16 | | `export ` | Spreadsheet of the findings | | `report ` | Printable HTML report | | `audit` | Audit trail of every action (who, when, what); `--verify` checks the hash chain | | `sessions` | Automatically saved sessions | | `ui` | Interface in the browser (127.0.0.1, with token) | `--json` exists on `devices`, `inspect`, `health` and `scan`. ## Scanning ```bash sudo guara scan /dev/sdb --session s.json --list # deep, with listing sudo guara scan /dev/sdb --quick # metadata only, in seconds guara scan disk.img --category image,document --min-confidence medium guara scan disk.img --recover /mnt/other-disk/Recovered ``` Filters (valid on `scan`, `recover`, `export` and `report`): | Option | Effect | |---|---| | `--category` | `image`, `document`, `video`, `audio`, `archive`, `database`, `other` (comma separated) | | `--min-confidence` | `low`, `medium` or `high` | | `--name` | only names and paths that contain the text | | `--organize` | how to write: `folders` (original folders), `type`, `date` or `flat` | ## Recovery ```bash guara recover s.json /mnt/other-disk/Recovered --category image guara resume s.json ``` The destination must be on **another disk**. Every recovery writes `guara-manifesto.json` with the MD5, SHA-1 and SHA-256 of every file. If the recovery is interrupted, repeating the command skips what was already copied and checked. ## Encrypted volumes ```bash sudo guara scan /dev/sdb1 --ask-password sudo guara scan /dev/sdb1 --recovery-key 111111-222222-333333-444444-555555-666666-777777-888888 sudo guara scan /dev/sdb1 --key-file key.BEK sudo guara scan /dev/sdb1 --volume-key 4f2a... ``` | Option | Use | |---|---| | `--ask-password` | Asks in the terminal, without echo. **Preferred** | | `GUARA_PASSWORD` | Environment variable with the password | | `--password` | Password on the command line (stays in the shell history) | | `--recovery-key` | BitLocker numeric key | | `--key-file` | BitLocker `.BEK` or LUKS keyfile | | `--volume-key` | Volume key in hexadecimal (the one Guará shows when it opens a volume) | | `--remember-keys` | Stores the keys of opened volumes in the session (never the password) | ## RAID and LVM Pass the main disk and the other members with `--member`, repeated. Use `-` for a missing disk. ```bash # With mdadm or LVM metadata: Guará reads everything by itself guara inspect disk1.img --member disk2.img --member disk3.img # Without metadata: discovers level, stripe size, layout and order guara scan disk1.img --member disk2.img --member disk3.img --raid # Fixing what you already know guara scan disk1.img --member disk2.img --member - --raid \ --raid-level 5 --raid-chunk-kb 64 --raid-layout left-symmetric --raid-order 0,1,2 ``` ## Forensic image ```bash sudo guara image /dev/sdb /mnt/other-disk/sdb.img # raw, with error map sudo guara image /dev/sdb /mnt/other-disk/sdb --format e01 \ --case 2026-001 --examiner "Name" --evidence E1 --description "Laptop HDD" sudo guara image /dev/sdb /mnt/other-disk/sdb --format aff4 guara verify /mnt/other-disk/sdb.E01 ``` For E01: `--segment-mib` (size of each segment, default 1500, 0 for a single file) and `--compression` (0 to 9, default 1). ## Audit trail Every action that touches evidence is appended to `auditoria.jsonl` in the configuration folder (or to the file named by `GUARA_AUDIT_LOG`): opening a source (`inspect`, `scan`), `recover`, `image`, `hash`, `search`, `verify`, exports and sessions. Each line has the time (UTC), the system user (the one behind `sudo`), the host, the Guará version and the details; set `GUARA_EXAMINER` to also record the examiner's name. Passwords and keys are never written. ```bash guara audit # lists the entries guara audit --tail 20 --json guara audit --verify # checks the chain; exits with an error if it is broken ``` The lines are chained: each one carries the SHA-256 of the previous hash plus its own content, so editing, removing or reordering an entry is detected and `--verify` says which one. Cutting the end of the file cannot be detected by the file alone: keep the hash printed by `--verify` somewhere else (for example in the case notes). ## Video without an index (MP4 without moov) Pass an **intact video from the same camera or drone** so Guará can rebuild the index: ```bash guara scan card.img --reference GOOD_VIDEO.MP4 --category video ``` `--reference` can be repeated. Audio is not reconstructed. ## Text search ```bash sudo guara search /dev/sdb "contract" "ssn" --case-sensitive --max 500 ``` Searches in UTF-8 and UTF-16 (`--no-utf16` turns it off), including free space and areas outside partitions. Shows position, partition and context. `--max` limits the results (default 200). ## Report ```bash guara report s.json report.html --case 2026-001 --examiner "Name" --hash-source ``` Includes case identification, source, partitions, summary, hashes and the list of files. `--hash-source` adds the hash of the whole source.