Skip to main content

open_image_all

Function open_image_all 

Source
pub fn open_image_all(path: &Path) -> Result<Box<dyn ForensicFs + Send>>
Expand description

Open a disk-image evidence file into the ADR-0010 unified mount layout: <mount>/<volume>/<fs tree> at constant depth, so a consumer walks the same shape whether the image holds one filesystem or many.

open_image mounts only the first filesystem the engine finds; on a Windows GPT disk that is the tiny FAT EFI System Partition, so the NTFS Windows volume is unreachable. This opens all partitions via Vfs::open_all and wraps every result — one or many — in a MultiPartitionFs, so each filesystem is a <volume>/ directory under a synthetic root:

  • A bare, unpartitioned filesystem (no volume table) is one volume named root.
  • A partitioned disk names each volume by the ADR-0010 precedence (volume_dir_name, private): a wired label (kept verbatim, only unsafe characters reversibly percent-encoded), else _partition<index+1>.

The dense per-partition inode multiplexing (see MultiPartitionFs) keeps each volume’s inode space disjoint while flowing through the FUSE mount layer exactly like a single filesystem.

Transparently peels an OUTER compression wrapper first (as open_image), keeping the spilled temp image alive for the mount’s lifetime.

§Errors

Fails loud on a peel decode error, an engine open/decode error, or when no partition carries a detectable filesystem (InvalidData).