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).