pub struct MultiPartitionFs { /* private fields */ }Expand description
The ADR-0010 volume multiplexer: it surfaces each volume of a disk image as a
<volume>/ subdirectory under a synthetic root (_partition<N>, a wired
label, or root for a bare unpartitioned filesystem — see
[volume_dir_name]), so an analyst reaches every filesystem (e.g. both the
FAT EFI System Partition and the NTFS Windows volume of a GPT disk) rather
than only the first the engine finds, at a constant <mount>/<volume>/…
depth even for a single-filesystem image.
Each volume is a mounted EngineFs; the multiplexer keeps a dense
(partition, inner inode) -> global inode map so partition inode spaces stay
disjoint. A partition << 48 bit-pack would be simpler but overflows the FUSE
mount layer’s ro_ino (backend + 1000) / decode_fuse_ino namespace
[1000, 10_000_000); the dense allocator (the same pattern EngineFs uses
for FileId -> u64) keeps globals small, so the tree flows through the mount
exactly like a single filesystem.
Trait Implementations§
Source§impl ForensicFs for MultiPartitionFs
impl ForensicFs for MultiPartitionFs
Source§fn read_dir(&mut self, ino: u64) -> FsResult<Vec<FsDirEntry>>
fn read_dir(&mut self, ino: u64) -> FsResult<Vec<FsDirEntry>>
Source§fn lookup(&mut self, parent_ino: u64, name: &[u8]) -> FsResult<Option<u64>>
fn lookup(&mut self, parent_ino: u64, name: &[u8]) -> FsResult<Option<u64>>
Source§fn metadata(&mut self, ino: u64) -> FsResult<FsMetadata>
fn metadata(&mut self, ino: u64) -> FsResult<FsMetadata>
Source§fn read_file_range(
&mut self,
ino: u64,
offset: u64,
len: u64,
) -> FsResult<Vec<u8>>
fn read_file_range( &mut self, ino: u64, offset: u64, len: u64, ) -> FsResult<Vec<u8>>
Source§fn block_size(&self) -> u64
fn block_size(&self) -> u64
Source§fn deleted_inodes(&mut self) -> FsResult<Vec<FsDeletedInode>>
fn deleted_inodes(&mut self) -> FsResult<Vec<FsDeletedInode>>
Source§fn deleted_nodes(&mut self) -> FsResult<Vec<FsDeletedNode>>
fn deleted_nodes(&mut self) -> FsResult<Vec<FsDeletedNode>>
$Orphans) and read its
bytes via read_file. Default empty: a backend opts
in once it can recover the rich identity (e.g. NTFS $FILE_NAME + the
MFT reference). It never fabricates an entry.Source§fn recover_file(&mut self, _ino: u64) -> FsResult<FsRecoveryResult>
fn recover_file(&mut self, _ino: u64) -> FsResult<FsRecoveryResult>
Source§fn timeline(&mut self) -> FsResult<Vec<FsTimelineEvent>>
fn timeline(&mut self) -> FsResult<Vec<FsTimelineEvent>>
Source§fn unallocated_blocks(&mut self) -> FsResult<Vec<FsBlockRange>>
fn unallocated_blocks(&mut self) -> FsResult<Vec<FsBlockRange>>
Source§fn read_unallocated(&mut self, _range: &FsBlockRange) -> FsResult<Vec<u8>>
fn read_unallocated(&mut self, _range: &FsBlockRange) -> FsResult<Vec<u8>>
Source§fn journal_transactions(&mut self) -> FsResult<Vec<FsTransaction>>
fn journal_transactions(&mut self) -> FsResult<Vec<FsTransaction>>
Auto Trait Implementations§
impl !RefUnwindSafe for MultiPartitionFs
impl !UnwindSafe for MultiPartitionFs
impl Freeze for MultiPartitionFs
impl Send for MultiPartitionFs
impl Sync for MultiPartitionFs
impl Unpin for MultiPartitionFs
impl UnsafeUnpin for MultiPartitionFs
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more