Skip to content

Releases

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 23 Aug 02:19

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 00:58

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 22 Aug 02:51

Highlights

  • Added stable --json CLI output for automation, backed by one shared report-rendering path.
  • Kept argument and logging-initialization failures inside the JSON event schema when --json is requested.
  • Made ext filesystem recovery commands preserve the discovered backup superblock.
  • Added traversal of fscrypt no-key directory names so encrypted ext directories remain browsable without a key.
  • Kept the workspace clean under Rust 1.98's pedantic Clippy checks.

Pull requests

Checksummed, provenance-attested archives are attached for Windows, Linux (x86-64 and ARM64), and macOS (Intel and Apple Silicon).

Full Changelog: v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 09:14

fsmnt 0.2.0

One CLI for images, drives and directories; scans you can trust; fscrypt keys; media that begin inside a filesystem; and tracing everywhere.

Breaking

  • CLI: mount-image and mount-device are gone. fsmnt mount SOURCE MOUNTPOINT mounts a directory, a disk image (raw/EWF/VHD/VHDX) or a drive; partitions and scan take the same SOURCE. Drive IDs and OS device paths (\\.\PhysicalDrive0, /dev/sda, /dev/disk2) are both accepted; --dir/--image/--drive override the guess. A partitioned drive with no --partition is now refused (it used to mount partition 0).
  • Library: ImageLayoutKind → LayoutKind, ImagePartition → LayoutPartition (whose ordinal is now Option<usize>); ScanHitKind gained variants and ExtBackupSuperblock gained a field; OpenedPartition gained layout_origin; ScanError/OpenImageError gained variants; PartitionOpenOptions/ImageOpenOptions gained builders. clap and tracing-subscriber sit behind the default cli feature of the fsmnt package (fsmnt-proxy: server), so library users can opt out.
  • fs-ext → linux-fscrypt: the fscrypt implementation moved to a new no_std crate linux-fscrypt; fs-ext re-exports the same names, and FscryptMasterKey::from_bytes now returns linux_fscrypt::FscryptError.

New

  • Drives get what images had: drive_layout, scan_drive, open_device_at_offset, --offset, --scan --partition N, --sector-size; images get --fstab (open_image_with_fstab); partitions prints one table for both and a VOLUME column for drives (where --volume ID comes from).
  • scan now demands corroboration before calling bytes a filesystem start: an ext primary superblock must be followed by its (checksummed) group descriptor table and point at a root inode that is a directory; 55AA must describe plausible partitions. Journalled superblock copies and orphan backups fold into one row each; a slice that begins inside a filesystem is reported as such, with the command that opens it.
  • --offset -N: mount a medium that begins N bytes into its filesystem (LeadingGapReader; absent bytes counted apart from truncation and bad sectors). With --backup-superblock and --salvage this recovers what a late-started acquisition still carries.
  • fscrypt / Android FBE: --fscrypt-key SPEC (v1/v2, hex or @file) decrypts names and contents; every mount of an fscrypt volume reports a census of the master keys it references, which are registered, and where they apply. Keys ride on the format-neutral FilesystemOpenOptions, ready for f2fs.
  • Logging: -v/-vv/-q, --log-file (survives --detach), FSMNT_LOG; stdout carries only tables and mount lifecycle lines; all first-party crates emit tracing events (fuser/ewf log records bridged).

Fixed

  • fs-ext's legacy GDT_CSUM CRC-16 fed a zeroed checksum field where the kernel skips it.
  • Opening an ext volume through a backup superblock no longer fails when the primary or a candidate offset is unreadable.
  • Proxy handover failures during drive enumeration are debug events, not warnings.

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Aug 22:51
933f500

What's Changed

  • Publish release archives so mise can install fsmnt by @coconutbird in #1

New Contributors

Full Changelog: https://github.com/napbat/fsmnt/commits/v0.1.0