取证——存储与文件系统基础

取证——存储与文件系统基础

Table of Contents

一、磁盘结构

1、盘面:每个盘片有上下两个盘面,从上到下从0开始编号。

2、磁道:磁针画一圈叫一个磁道。

3、柱面:重叠的磁道形成一个圆柱的面。

4、扇区:每个磁道分为若干个弧度,一个磁道一般被分为63个扇区。大小一般为512B。

5、容量 = 盘面数*柱面数*扇区数*512B

6、簇:最小文件管理单位,由多个扇区构成,有2、4、8、16、32或64几种情况。如果为16个扇区,即8K=16*512,

二、硬盘的文件系统

1、执行bios程序 -> 硬件检测 -> 读取引导记录 -> 加载操作系统引导程序-> 加载内核、驱动、UI等 -> 启动完毕

2、不同操作系统常见文件格式

Windows:FAT32、NTFS

Linux:Eex2、Ext3、Ext4、XFS

MAC os :HFS+

​ FAT文件系统通链表的形式存储大文件,为文件分配多个block,前一个block里面装着下一个block的号码。

​ ext2文件系统是索引式文件系统。Linux系统中,权限与属性放置在 inode中(一个文件只有一个inode,同时记录文件数据所存放的data block号码),实际数据则放置在block 区块中(一个文件可有多个block)。还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。取文件时,首先会访问文件的inode,确认权限属性。如果权限和属性符合要求,那么就由inode里面的记录找到存储数据的block。(这种文件系统产生的磁盘碎片很少,这也就是Linux不需要进行磁盘碎片整理的原因)

三、存储系统构成:

1、MBR:位于整个硬盘的0磁道0柱面1扇区。,由446字节的主引导程序和64字节的分区表项+两字节的”55 AA”有效分区结束标志构成。

2、FAT:

(1)构成:MBR、DBR(操作系统引导记录,一般在保留扇区中)、保留扇区(FAT16不存在)、文件分配表区(FAT1、FAT2,一般FAT2为镜像)、数据区(DATA区)

(2)目录项结构:

(3)计算文件起始地址:文件起始地址(文件内容) = (保留扇区数 + FAT表扇区数 * FAT表个数(2) + (文件起始簇号-2)*每簇扇区数)*每扇区字节数

(4)FAT12、16、32各表项表项值

(5)文件删除过程:将目录项的首字节改为E5,文件数据仍在原处

3、NTFS:

(1)构成:引导扇区 $Boot -> MFT元数据 -> MFT -> 数据区(含有部分MFT备份)

(2)元数据文件:NTFS文件系统一共由16个元文件构成,在分区格式化时写入到硬盘的隐藏文件(以”$”开头),也是NTFS文件系统的系统信息。

$MFT:NTFS卷上每个对象在$MFT中都有一条记录(1024字节)记录文件、文件夹的名称、起始位置(簇)、对象的片段

$MFT文件记录结构:

$Bitmap:记录了整个NTFS卷上簇的使用状态。每一个二进制位代表卷中一个逻辑簇号的状态,1表示对应的逻辑簇号已分配或损坏,0表示对应的逻辑簇号未分配。

(3)文件创建过程:在$MFT中创建条目-> 文件写入到已分配数据块 -> 文件占用的簇信息写入到$Bitmap中。

(4)文件删除过程:$MFT中的信息被标记为可重新利用。

comments powered by Disqus

Related Posts

start-hugo

start-hugo

一、start hugo 条件:配置好git,下载hugo,将hugo所在目录放入环境变量 1、创建网站: hugo new site /path/to/site; 2、克隆主题: git clone https://github.

Read More
Django基础

Django基础

一、虚拟环境 1、建立虚拟环境 python -m venv xxcdu 2、激活虚拟环境 windows: xxcdu/Scripts/activate linux:

Read More
docker常用命令

docker常用命令

原文链接:https://blog.csdn.net/Python_0011/article/details/140313812 原文链接:https://blog.csdn.net/Python_paipai/article/details/144389754 [TOC] 1、Docker运行 要在Docker中运行容器,可以使用以下命令: docker run [OPTIONS] IMAGE [COMMAND] [ARG.

Read More