一、Volume和Cluster

卷(Volume)和簇(Cluster)是NTFS用来描述物理磁盘的单位。

卷之间是相对独立的,卷的概念其实就是分区(Partition)。

簇的引入是为了方便处理不同容量的卷,通常在格式化一个卷时,可以设定该卷的簇的大小的,默认值是根据卷的容量算出来的,容量越大,簇也划分得越大。

簇划分得很大,优点在于降低维护成本,缺点在于会造成一定的空间浪费。

二、NTFS与FAT的区别

FAT磁盘中会保留特别的区域,用来保存与文件系统相关的元数据,根据元数据的每一条记录的尺寸,可以具体分成多种子类型,比如FAT16、FAT32等等;

NTFS磁盘中没有这样特别的区域,而是把元数据也当成一个变通的文件对待,这样的好处在于,不必担心保留元数据的磁盘扇区物理损坏而造成的磁盘不可访问。

NTFS对每个文件都有一个security descriptor,即每个文件都可以定义自己的安全属性及访问属性,而在FAT文件系统是做不到的。

三、LCN与VCN

NTFS的管理单元是簇,磁盘的物理簇号(LCN)用来标识某个簇在磁盘中的位置,按照从0递增的顺序依次存放在磁盘上。

VCN是文件内部的逻辑簇号,一个文件数据太大,可能包含几个簇,那么会用逻辑簇号来标识某个簇在文件中的序号,这个VCN只在本文件内部有意义,一个文件的所有VCN不一定是物理上相连的,即它们对应的LCN可能散布在磁盘上。

一个VCN会映射到一个LCN。

四、MFT文件

里面保存着文件记录(File Record)的数据。每个文件记录大小固定为1KB。

通常,每个文件对应一个File Record,但是如果文件包含了太多的属性(Attribute),或者高度地碎片化(fragmented),那么可能需要多个文件记录来描述一个文件。

非常驻属性会将数据保存在run中,文件记录中会保存每个run的VCN到LCN的映射以及该run的长度,知道了这些,我们就可以把该文件的所有VCN映射到LCN上。

NTFS文件系统的更多相关文章

  1. linux如何编译安装新内核支持NTFS文件系统?(以redhat7.2x64为例)

    内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核 ...

  2. 详解NTFS文件系统

    一.分析NTFS文件系统的结构 当用户将硬盘的一个分区格式化为NTFS分区时,就建立了一个NTFS文件系统.NTFS文件系统同FAT32文件系统一样,也是用“簇”为存储单位,一个文件总是占用一个或多个 ...

  3. linux权限及ntfs文件系统权限的知识

    关于ntfs权限的问题 文件的权限: [-dcbps][u:rwx][g:rwx][a:rwx] 当中: r=4, w=2, x=1,  u=owner, g=group, a=all user   ...

  4. NTFS 文件系统解析

    1. windows 下磁盘文件读写 下面是读取D:\磁盘上的第0扇区 512 Bytes CreateFile()打开磁盘,获取文件句柄: SetFilePointer()设置读写的位置: Read ...

  5. Linux系统挂载NTFS文件系统

     今天尝试并成功的将一块500G的移动硬盘挂载到了RHEL5的系统上,甚感欣慰.想到也许以后自己或其他同学们会有类似经历,于是尽量细致的记录于此.     无论是一块安装了Windows/Linu ...

  6. NTFS文件系统详细分析

    NTFS文件系统详细分析 第一部分 什么是NTFS文件系统 想要了解NTFS,我们首先应该认识一下FAT.FAT(File   Allocation   Table)是“文件分配表”的意思.对我们来说 ...

  7. 1-18 编译安装内核支持ntfs文件系统

    大纲: 源码编译Linux内核 使用Linux内核模块 实战:编译一个NTFS内核模块,实现Linux挂载NTFS文件系统并实现读写功能 =============================== ...

  8. redhat6.5安装ntfs-3g rpm来支持ntfs文件系统挂载

    linux安装ntfs-3g模块来支持ntfs文件系统挂载 所需包 fuse-2.9.3.tar.gz ntfs-3g_ntfsprogs-2011.4.12.tgz step1. 解压fuse-2. ...

  9. 使用QFileInfo类获取文件信息(在NTFS文件系统上,出于性能考虑,文件的所有权和权限检查在默认情况下是被禁用的,通过qt_ntfs_permission_lookup开启和操作。absolutePath()必须查询文件系统。而path()函数,可以直接作用于文件名本身,所以,path() 函数的运行会更快)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Amnes1a/article/details/65444966QFileInfo类为我们提供了系统无 ...

  10. centos6.9使用NTFS-3G挂载ntfs文件系统

    centos6.9使用NTFS-3G挂载ntfs文件系统 工作中,难免需要到linux 系统上拷贝文件,但linux 自己不支持ntfs,下面就是解决问题的办法. NTFS-3G是一个开源软件,支持在 ...

随机推荐

  1. frida的js脚本处理正则的一个小坑

    frida的server模式需要python支持,所以js脚本中的正则需要多一次转义 比如匹配"/proc/{数字pid}" server: paramPath.match(&qu ...

  2. zabbix配置-模板

    1.配置=>模板=>创建模板=>输入模板名称和群组 2.配置=>模板=>找到刚刚创建的模板=>点击应用集(applications)=>创建应用集=>输 ...

  3. Bootstrap 学习笔记3 路径分页标签和徽章组件

  4. <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">

    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalabl ...

  5. 好1.1.4 PTA提交列表及说明

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 我在这个课程的目标是 这个作业在那个具体方面帮助我实现目标 概括本周的学习以及更加熟练本周的代码 参考文献 C语言程序设计 百度文献 (h ...

  6. Python中单下划线和双下划线

    1.双下划线开头和结尾 Python中存在一些特殊的方法,有些方法以双下划线 “__” 开头和结尾,它们是Python的魔法函数,比如__init__()和__str__等等.不用要这种方式命名自己的 ...

  7. HDU 5125 magic balls(线段树+DP)

    magic balls Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  8. POJ 3020:Antenna Placement(无向二分图的最小路径覆盖)

    Antenna Placement Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6334   Accepted: 3125 ...

  9. ollvm 新增字符串加密功能

    好久没弄ollvm了,可以继续了,今天给ollvm新增了一个pass,用来加密字符串,这个pass是从别的库里面扒出来的. 本文是基于在Windows 上使用VS2017编译出来的ollvm,在这个基 ...

  10. python介绍(变量,if,while)

    python介绍(变量,if,while): python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹 打发时间,决心开发一个新 ...