主要内容

一、NTFS系统结构原理

二、编码实现NTFS磁盘删除文件扫描

三、编码实现NTFS磁盘删除文件恢复

(编码实现的磁盘文件恢复小工具下载地址)

工具截图

第一部分 NTFS系统结构原理

NTFS是Windows NT引入的新型文件系统,由于NTFS的结构复杂,内容繁多,这里仅对NTFS卷上的底层结构做分析。

1.     基本概念

在NTFS格式中,文件以簇的形式分配。最小的单位为扇区,N个扇区为一簇。其中,N的值由引导扇区规定。卷与簇的关系如下表。

卷大小(分区大小)

每簇的扇区

缺省的簇大小

小于等于512MB

1

512字节

513MB~1024MB(1GB)

2

1024字节(1KB)

1025MB~2048MB(2GB)

4

2048字节(2KB)

大于等于2049MB

8

4KB

2.    基本结构

NTFS格式磁盘的数据分为4大部分。

引导区 主文件列表 系统文件 文件数据区

l         引导区(Partition boot sector):所有的磁盘格式都有这个区,占用了磁盘的第一个扇区。

l         主文件列表(Master File Table,MFT):它记录了卷上所有的文件,每一个文件对应表中的一条记录。NTFS中目录也是以文件的形式存在的。因此,每一个目录也可以看作一个文件。

l         系统文件(System files):NTFS系统一共有16个系统文件,和8个保留文件。

l         文件数据区(File area):存放文件数据。

3.    引导区

字节偏移

长度(字节)

常用值

意义

0x00

3

0xEB5290

JMP指令

0x03

4

“NTFS”

文件系统 ID

0x0B

2

0x0200

每扇区字节数

0x0D

1

0x08

每簇扇区数

0x0E

2

保留扇区

0x10

3

总为0

0x13

2

NTFS未使用,为0

0x15

1

介质描述

0x16

1

总为0

0x18

2

每磁道扇区数

0x1A

2

磁头数

0x1C

4

隐含扇区

0x20

4

NTFS未使用,为0

0x24

4

NTFS未使用,为0

0x28

8

扇区总数

0x30

8

$MFT的逻辑簇号

0x38

8

$MFTMirr的逻辑簇号

0x40

4

每MFT记录簇数

0x44

4

每索引簇数

0x48

8

卷标

0x50

4

校验和

0x54

430

引导代码

0x1FE

2

0x55AA

引导扇区标志

4.    主文件列表(MFT)

l         MFT是一个对应的数据库,由一系列的文件记录组成。卷中每一个文件都有一个文件记录(对于大型文件还可能有多个记录与之相对应)。主文件表本身也有它自己的文件记录。

l         实际上,MFT自身也是一个文件,因此,主文件列表的第一个记录就是它自身。MFT的每个记录都有一个编号,这里我们称它为ID号。这个ID从0开始。我们知道MFT自身是NTFS系统的第一个文件,所以文件$MFT的ID号为0。

l         MFT和其他23个文件一起(共24个),组成所谓的“Metafiles”(元文件,也是之前提到的System files,系统文件)。这24个文件中,前16(ID为0-15)个文件是固定的,剩下的8个文件为保留文件。

l         用户的文件(也包括目录)的MFT中的ID号从24开始排。用户每添加一个文件ID号加1,当某文件被删除时,与之对应的MFT记录将被空出来,如果此时再次添加文件,系统会优先填充ID小的空位。

l         无论簇的大小,文件记录大小都是1K。理论上MFT在卷中的分配空间(占12%)。
逻辑上,MFT在卷中会占用一块连续的空间,但实际情况$MFT可能会被分散在磁盘的几个不同的区域。甚至,可能在元文件的部分就被拆分开。

5.    系统文件(System files)

序号(ID)

元文件

功能

0

$MFT

主文件列表本身

1

$MFTMirr

主文件表的部分镜像

2

$LogFile

日志文件

3

$Volume

卷文件

4

$AttrDef

属性定义列表

5

$Root

根目录

6

$Bitmap

位图文件,文件$Bitmap标识的是该卷中簇的占用情况。它用一位代表一簇。为0代表此簇空闲,为1代表此簇已使用

7

$Boot

引导文件

8

$BadClus

坏簇文件

9

$Secure

安全文件

10

$UpCase

大写文件

11-15

$Extend

扩展文件(一共5个文件)

16-23

保留

下节地址:http://blog.csdn.net/A00553344/archive/2009/12/19/5039884.aspx

如何编码实现NTFS格式下删除文件的恢复相关推荐

  1. 如何编码实现NTFS格式下删除文件的恢复(结束)

    写完"如何编码实现NTFS格式下删除文件的恢复"和"如何编码实现NTFS格式下删除文件的恢复(续一)"后,好多朋友询问下文,但是最近忙着写别的东西,实在是没工夫 ...

  2. 如何编码实现NTFS格式下删除文件的恢复(续一)

    上节地址:http://blog.csdn.net/A00553344/archive/2009/12/18/5031993.aspx 7.    主文件列表(MFT)记录详解 了解了NTFS的基本结 ...

  3. FAT32下和NTFS下永久性删除文件的恢复

    FAT32下和NTFS下永久性删除文件的恢复 查看文件系统类型 FAT32下永久性删除文件的恢复 NTFS下永久性删除文件的恢复 注意事项 总结 查看文件系统类型 右键磁盘点击属性,就可以看到文件系统 ...

  4. yuv编码成h264格式写成文件

    yuv编码成h264格式写成文件 (使用ffmpeg 编码yuv420p编码成h264格式) #include <stdio.h> #include <stdlib.h> #i ...

  5. linux 下删除文件的 操纵

    linux   下删除 文件的 方法::: 1-  remove remove(删除文件) 相关函数 link,rename,unlink 表头文件 #include<stdio.h> 定 ...

  6. del rd命令行下删除文件不需要确认

    del rd命令行下删除文件不需要确认发布:dxy 字体:[增加 减小] 类型:转载  - del命令参数说明  /F 强制删除只读文件.  /S 从所有子目录删除指定文件.  /Q 安静模式.删除全 ...

  7. 用Winhex手工定位NTFS文件系统下的文件

    用Winhex手工定位NTFS文件系统下的文件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:off ...

  8. shell下删除文件末尾的空行

    shell下删除文件末尾的空行 文章目录 shell下删除文件末尾的空行 你能看懂几个? sed方式 sed -r -n '1h;1!H;${x;s/(.*[^\n])\n*$/\1/p}' /etc ...

  9. Linux下 删除文件夹下的所有文件

    Linux下  删除文件夹下的所有文件,而不删除文件夹本身 的命令: 1.先进入要删除的文件夹 切记 不管用什么命令: cd /app/www/test 2.删除此文件下的文件 rm -f /app/ ...

最新文章

  1. django之BBS需求分析和orm设计-71
  2. 06--swift之闭包
  3. macOS Mojave Version 10.14 新系统字体问题和修改MAC中Launchpad启动器图标行列的数量
  4. android 按钮动画效果_【css特效】按钮动画 - 按压效果
  5. 一个能极大提高生产率的Chrome新建标签页扩展
  6. Blazor University (5)组件 — 字面量、表达式和指令
  7. Oracle统计信息中的Pending Statistics
  8. MySQL tips (日期时间操作/concat 等)
  9. Windows7安装PowerShell5.1方法(Flutter新版本需要)
  10. div旋转45度_一看就会,一做不废的旋转楼梯建模
  11. entware mysql 5.5_分享包--K3 基于 entware 构建 debian+宝塔面板+nginx+php+mysql 备份包
  12. Python接口自动化测试
  13. 微信公众号开发者模式工作的开发
  14. 【腾讯开发者大会】天刀手游开发历程(笔记)
  15. Windows环境下修改redis默认端口和密码,以及启动方式
  16. 数据结构--栈--两栈共享空间
  17. 土地利用覆被变化的概念_土地利用/覆被变化(LUCC)研究现状与展望
  18. Java排序算法——插入排序(Insertion Sort)
  19. Fedora23 引导修复
  20. java创建的对象存储到什么地方?

热门文章

  1. python3 - RC4 算法
  2. 日本的mmx任务将捕获火星及其卫星的8k图像
  3. java中取反运算符_java取反运算符
  4. css3动画会造成回流重绘吗,重绘和回流以及如何优化
  5. 页面渲染之回流与重绘讲解
  6. 高速电路回流路径分析
  7. SQLyog13.1.1-Ultimate安装
  8. android台湾安卓中文网,安卓中文网
  9. Mac系统搭建PHP开发环境
  10. python入门爬虫教程汇总