NTFS文件系统
+ -

NTFS 删除文件

2021-07-01 169 0

假如我们要删除 “子目录1\file.txt”下的文件。

  1. 读取文件第一个扇区的引导扇区,获取簇大小MFT的起始位置以及每个MFT项的大小
  2. 读取第一个MFT项,即$MFT文件的MFT项,由它的$DATA属性获取其它MFT项的位置。
  3. 访问5号MFT项,即目录,通过索引根属性($INDEX_ROOT)和索引分配属性($INDEX_ALLOCATION)找到“子目录1”项,它的MFT项为200号,更新目录的最后访问时间。
  4. 访问200号MFT项的索引根属性($INDEX_ROOT)并寻找file.txt的条目,找到它的MFT项为400号。
  5. 从索引项中移除文件的项,移动节点中的项覆盖了原来的项,更新目录的最后写入时间,最后修改时间和最后访问时间。
  6. 通过清除使用中标志取消400号MFT项的分配,访问$Bitmap文件的$DATA属性,将该项的相应位置0
  7. 访问400号MFT项的非常驻属性,从$DATA属性中得到数据内容所在簇号,将$Bitmap文件中的相应簇的bit置0,取消722和723号簇的分配。
  8. 在前面的每一步中,在文件日志中建立项并将改变记入$Extend$UsrJrnl。如果设置了配额管理,将在($Extend\$Quota)中,把回收的容量从用户已使用的磁盘空间量中减去

0 篇笔记 写笔记

NTFS 删除文件
假如我们要删除 “子目录1file.txt”下的文件。读取文件第一个扇区的引导扇区,获取簇大小,MFT的起始位置以及每个MFT项的大小。读取第一个MFT项,即$MFT文件的MFT项,由它的$DATA属性获取其它MFT项的位置。访问5号MFT项,即目录,通过索引根属性($INDEX_ROOT)......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!