NTFS文件系统
一、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文件系统的更多相关文章
- linux如何编译安装新内核支持NTFS文件系统?(以redhat7.2x64为例)
内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核 ...
- 详解NTFS文件系统
一.分析NTFS文件系统的结构 当用户将硬盘的一个分区格式化为NTFS分区时,就建立了一个NTFS文件系统.NTFS文件系统同FAT32文件系统一样,也是用“簇”为存储单位,一个文件总是占用一个或多个 ...
- linux权限及ntfs文件系统权限的知识
关于ntfs权限的问题 文件的权限: [-dcbps][u:rwx][g:rwx][a:rwx] 当中: r=4, w=2, x=1, u=owner, g=group, a=all user ...
- NTFS 文件系统解析
1. windows 下磁盘文件读写 下面是读取D:\磁盘上的第0扇区 512 Bytes CreateFile()打开磁盘,获取文件句柄: SetFilePointer()设置读写的位置: Read ...
- Linux系统挂载NTFS文件系统
今天尝试并成功的将一块500G的移动硬盘挂载到了RHEL5的系统上,甚感欣慰.想到也许以后自己或其他同学们会有类似经历,于是尽量细致的记录于此. 无论是一块安装了Windows/Linu ...
- NTFS文件系统详细分析
NTFS文件系统详细分析 第一部分 什么是NTFS文件系统 想要了解NTFS,我们首先应该认识一下FAT.FAT(File Allocation Table)是“文件分配表”的意思.对我们来说 ...
- 1-18 编译安装内核支持ntfs文件系统
大纲: 源码编译Linux内核 使用Linux内核模块 实战:编译一个NTFS内核模块,实现Linux挂载NTFS文件系统并实现读写功能 =============================== ...
- 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. ...
- 使用QFileInfo类获取文件信息(在NTFS文件系统上,出于性能考虑,文件的所有权和权限检查在默认情况下是被禁用的,通过qt_ntfs_permission_lookup开启和操作。absolutePath()必须查询文件系统。而path()函数,可以直接作用于文件名本身,所以,path() 函数的运行会更快)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Amnes1a/article/details/65444966QFileInfo类为我们提供了系统无 ...
- centos6.9使用NTFS-3G挂载ntfs文件系统
centos6.9使用NTFS-3G挂载ntfs文件系统 工作中,难免需要到linux 系统上拷贝文件,但linux 自己不支持ntfs,下面就是解决问题的办法. NTFS-3G是一个开源软件,支持在 ...
随机推荐
- java构造器内部多态方法
public class TestC { public static void main(String []args) { new Graph(5); }}class Grp{ void draw() ...
- Cocos2d 之FlyBird开发---GameUnit类
| 版权声明:本文为博主原创文章,未经博主允许不得转载. 这节来实现GameUnit类中的一些函数方法,其实这个类一般是一个边写边完善的过程,因为一般很难一次性想全所有的能够供多个类共用的方法.下 ...
- Java_3.Java帮助文档
1.Oracle的在线帮助文档 http://docs.oracle.com/javase/8/docs/api 2.jdk源码内容(包含5个部分) [以下内容参考至:https://blog.csd ...
- centos netstat 查看是否开放了端口
netstat命令各个参数说明如下: -a :所有 -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protoc ...
- 不要62(数位dp)
题目传送门 不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- pytorch中onehot编码转为普通label标签
label转onehot的很多,但是onehot转label的有点难找,所以就只能自己实现以下,用的topk函数,不知道有没有更好的实现 one_hot = torch.tensor([[0,0,1] ...
- Logback配置,error和普通日志分离
<?xml version="1.0" encoding="utf-8"?> <configuration> <springPro ...
- js转换成布尔类型boolean
/** * js转换成布尔值 * a.转换方法:Boolean(var) * b.数字转换成布尔,除了0与NaN,其余都是true * c.字符串转换成布尔,除了空串"",其余都是 ...
- JS异步事件顺序:setTimeout,async,promise
为什么最近更新那么频繁,还不是因为笔试的时候瞎了? 先说异步事件执行顺序的规则: 1. 定时器异步队列和promise队列不是同一队列,promise优先级高于setTimeout; 2. 创建pro ...
- 【知识强化】第四章 网络层 4.8 移动IP
这节课我们来学习一下移动IP. 那移动IP呢要跟动态IP区分开.动态IP是指,通过使用DHCP协议,在一个局域网内部的一台主机,就可以动态地获得一个IP地址.那这里面的移动IP是什么意思呢? 我们来举 ...