版权声明:未经作者允许,严禁用于商业出版,否则追究法律责任。转载请注明出处!!!
1 基本磁盘与动态磁盘
基本磁盘使用主分区、扩展分区和逻辑分区组织数据。一个分区不能与其他分区共享或拆分数据、主动备份数据,也不能主动容错,也不能跨磁盘。基本磁盘上的每个分区都是该磁盘上一个独立的实体。只能在基本磁盘上创建分区。。可在基本磁盘上创建的分区个数取决于磁盘的分区形式:
- 对于主启动记录 (MBR) 磁盘,可以最多创建四个主分区,或最多三个主分区加上一个扩展分区。在扩展分区内,可以创建多个逻辑分区。
- 对于 GUID 分区表 (GPT) 磁盘,最多可创建 128 个主分区。由于 GPT 磁盘并不限制四个分区,因而不必创建扩展分区或逻辑驱分区。
如果一个分区结束处有相邻的连续未分配空间,则可以向该分区添加更多空间,叫做分区扩展(但是主分区不能添加属于扩展分区的未使用空间,即使看起来是连续的),反之如果一个分区太大我们可以减小它以得到一段连续未分配空间,叫做分区压缩(逻辑分区分区压缩得到的未分配空间只能被分配给逻辑分区,主分区压缩的空间只能分配给主分区)。分区在格式化之前都是可扩展和压缩的,但格式化后能否扩展和压缩取决于文件系统,Windows中只有NTFS支持扩展和压缩,FAT和FAT32都不支持。如果想要扩展分区大小超过了可用空间大小,扩展分区就会增大直到用完所有可用的连续未分配空间。
动态磁盘没有分区的概念,统称卷(动态卷),它和分区概念类似,但一块动态磁盘上可以容纳大量的卷(大约 2000 个)。在 Windows 中,卷又分为简单卷、跨区卷、带区卷、镜像卷、RAID5卷,其中简单卷和跨区卷可以改变大小(格式化后只有NTFS支持调整卷大小),跨区卷、带区卷、镜像卷、RAID5卷都可以包含多个物理磁盘,带区卷可以拆分和共享数据,镜像卷可以备份数据,RAID5卷可以拆分和共享数据以及一定的容错能力,这些物理磁盘可以有不同分区格式(MBR和GPT),也就是说动态磁盘对基本磁盘的进一步抽象。动态磁盘出现后,出现了卷的概念,因此基本磁盘上的主分区和逻辑分区称为也被叫做基本卷。
分区(也叫基本卷,对应基本磁盘)和卷(也叫动态卷,对应动态磁盘)的区别在于:卷只能在动态磁盘中,分区只能在基本磁盘中;卷只能用于存放数据不能用于启动和系统,而分区都可以。 由于分区和简单卷比较类似,所以Windows7以后,将分区(也叫基本卷)和简单卷都标记为了简单卷。
基本磁盘和动态磁盘可以进行转换,一般都用基本磁盘。从基本转动态简单,但是有动态转基本就比较麻烦了——必须删除磁盘上所有卷,再进行转化。将基本硬盘转换为动态硬盘条件和注意事项:
- 只有Administrator和BackupOperators组的用户才有权执行转换工作。
- 除Win2000及其以后的Windows OS能够识别动态磁盘外,其他操作系统都不能识别,进行多重系统引导时要注意。
- 一旦转换成动态盘后,原来的主分区、逻辑分区等都会自动转换成为"简单卷",原来的基本卷都没有了。
- 需要1M的未分配空间。
总之:基本磁盘与分区(也叫基本卷)对应,动态磁盘与卷(也叫动态卷)对应,由于简单卷与基本卷类似,所以windows7以后基本卷也叫简单卷。
物理驱动器(物理磁盘):现实世界中真实存在的驱动器,一个硬盘就是一个物理驱动器。在在windows中磁盘管理器看到的叫做物理磁盘,物理磁盘一般编号为磁盘0,磁盘1……磁盘N。
逻辑驱动器(逻辑磁盘):是使用软件在物理磁盘上分区或分卷后形成的。在windows中资源管理器看到的就是逻辑磁盘,逻辑磁盘编号一般为A,B……Z。
2 分区
分区是基本磁盘上的概念,就是把一块硬盘分成几个部分来使用,每一部分就是一个分区,可以把全部容量当成一个分区来使用。磁盘分区有两种格式:MBR和GPT。
2.1 MBR
-
磁盘的0号扇区(第一个扇区)也叫主引导扇区,它包含主引导程序、分区表DPT、硬盘有效标志。
- 早期磁盘的扇区大小为512B
-
主引导程序:记录主引导加载程序,也叫第一阶段引导加载程序(Initial Program Loader,IPL),446B。主要作用是:
- 检查硬盘分区表是否完好。
- 在分区表中寻找可引导的“活动”分区。
- 将活动分区的第一逻辑扇区内容(也叫分区引导记录,PBR)装入内存。在DOS分区中,此扇区内容称为DOS引导记录(DBR)。
-
分区表:记录整块磁盘的分区状态,64B。
-
有效标志:2B。
-
分区表(DPT):分区表只能记录4个记录,每个记录为16B。记录了每个分区的起始和结束柱面号磁头号、扇区号、柱面号,分区**标志,文件系统类型,相对扇区号,总扇区数目。因此磁盘最多只能有4个主分区,每个主分区可以划分为若干个逻辑分区。主分区划分逻辑分区后就叫做扩展分区,扩展分区不能格式化且最多只能有一个,在其前几个扇区记录了逻辑分区的信息。每个记录的格式如下:
起始字节 偏移量 内容 0 1 分区的**标志,表示系统可引导;一般为80 1 3 起始磁头号、起始扇区号、起始柱面号 4 1 分区的系统类型,0B(FAT32),04(FAT16)、07(NTFS); 5 3 结束磁头号、结束扇区、结束柱面号 8 4 相对扇区号,从磁盘开始到该分区开始的位移,以扇区计算 12 4 总扇区数,最大容量为232x512B=2TB
-
MBR分区的缺点:
- MBR分区表不支持容量大于2.2TB的分区(一些硬盘制造商将他们的容量较大的磁盘升级到了4KB的扇区,这意味着MBR的有效容量上限提升到了16 TB)
- MBR 仅有一个扇区,若被破坏后,经常很难恢复。
- MBR 内的存放开机管理程序的区块仅 446bytes,无法容纳较多的程序代码。
2.2 GPT
因为过去一个扇区大小就是512bytes 而已,不过目前已经有 4K 的扇区设计出现!为了兼容于所有的磁盘,因此在扇区的定义上面,大多会使用所谓的逻辑区块地址( LBA)来处理。GPT 将磁盘所有区块以此 LBA(预设为 512B!) 来规划,而第一个 LBA 称为 LBA0 (从0 开始编号)。
与 MBR 仅使用第一个 512bytes 区块来记录不同, GPT 使用了 34 个 LBA 区块来纪录分区信息!同时与过去MBR仅有一个扇区,被干掉就死光光的情况不同, GPT 除了前面 34 个 LBA 之外,整个磁盘的最后 33 个 LBA 也拿来作为备份!
-
LBA0 (PMBR)
在GPT分区表的最开头,处于兼容性考虑仍然存储了一份传统的MBR(LBA 0),这个MBR叫做保护性MBR(Protective MBR)。
保护性MBR保护GPT磁盘不受以前发布的MBR磁盘工具的危害。这些工具不能感知GPT,也无法正确地访问GPT磁盘。这些工具通过解释保护性MBR,将GPT磁盘看成一个封装的(可能无法识别)分区,而不是错误地当成一个未分区的磁盘,并且拒绝对硬盘进行操作。这就避免了意外删除分区的危险。
在支持从GPT启动的操作系统中,这里也用于存储第一阶段的启动代码。在这个MBR中,只有一个标识为0xEE的分区,以此来表示这块硬盘使用GPT分区表。
在使用MBR/GPT混合分区表的硬盘中,这部分存储了GPT分区表的一部分分区(通常是前四个分区),可以使不支持从GPT启动的操作系统从这个MBR启动,启动后只能操作MBR分区表中的分区。 -
LBA1 (GPT 表头)
分区表头(LBA 1)定义了硬盘的可用空间以及组成分区表的项的大小和数量。在使用64位Windows Server2003的机器上,最多可以创建128个分区,即分区表中保留了128个项,其中每个都是128字节。(EFI标准要求分区表最小要有16,384字节,即128个分区项的大小)
分区表头还记录了这块硬盘的GUID,记录了分区表头本身的位置和大小以及备份分区表头和分区表的位置和大小(在硬盘的最后)。它还储存着它本身和分区表的CRC32校验。固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错,如果出错了,可以使用软件从硬盘最后的备份GPT中恢复整个分区表,如果备份GPT也校验错误,硬盘将不可使用。以下是分区表头结构的具体信息:
起始字节 偏移量 内容 0 8 签名(“EFI PART”) 8 4 修订 12 4 分区表头的大小 16 4 分区表头(92B)的CRC32校验,在计算时,先把这个字段写作0处理,然后计算出所有分区表项的CRC32校验后再计算这个CRC32 20 4 保留,必须是 0 24 8 当前LBA(这个分区表头的位置) 32 8 备份LBA(另一个分区表头的位置) 40 8 第一个可用于分区的LBA(主分区表的最后一个LBA + 1) 48 8 最后一个可用于分区的LBA(备份分区表的第一个LBA - 1) 56 16 硬盘GUID(在类UNIX系统中也叫UUID) 72 8 分区表项的起始LBA(在主分区表中是2) 80 4 最大分区表项的数量(windows是128,没有这么多也先占着空间) 84 4 一个分区表项的大小(通常是128) 88 4 分区表项的CRC32校验(计算的是所有分区表项的检验和即128*128字节) 92 420 保留,剩余字节必须是0(420字节针对512字节的LBA硬盘)
-
LBA2-33 (GPT分区表)
从LBA2区块开始,每个LBA都可以有4个分区记录,所以在默认的情况下,总共可以有 4*32=128个分区记录(默认最多128个分区)!因为每个LBA有512B,因此每个记录可使用128B的空间。
一个分区表项的前16字节是分区类型GUID。接下来的16字节是该分区唯一的GUID(这个GUID指的是该分区本身,而之前的GUID指的是该分区的类型)。再接下来是分区起始和末尾的64位LBA编号,以及分区的名字和属性。格式如下:
起始字节 偏移量 内容 0 16 分区类型GUID 16 16 分区GUID 32 8 起始LBA(小端格式) 40 8 末尾LBA 48 8 分区属性,
类型GUID为固定值,查阅资料可得。下图列举Windows、Linux下常见几种:
以Windows下基本数据分区为例说明:EBD0A0A2-B9E5-4433-87C0-68B6B72699C7。上述表示形式采用小端表示,其16位的串行表示为:A2A0D0EBE5B9334487C068B6B72699C7,即前三部分倒序表示。
分区属性低位4字节表示与分区类型无关的属性,高位4字节表示与分区类型有关的属性。具体见下图:
-
GPT分区优点:
- 可以在GPT分区表头自定义最大分区数;
- LBA为64位,支持的磁盘容量大;
- 分区表和分区表头有备份。
3 卷
卷是动态磁盘中概念。
3.1 简单卷
- 简单卷是动态盘中的基本单位。类似基本磁盘的基本卷。
- 简单卷的文件系统有:FAT、FAT32、NTFS。
- NTFS文件系统可以扩展容量,而FAT、FAT32则不能扩展容量。注意扩展部分只能是同一磁盘未指派空间。
- 只有一个磁盘时只能创建简单卷;
- 只可以变为镜像卷和跨区卷。
3.2 跨区卷
- 跨区卷是指数个位于不同磁盘的未指派空间组成的卷,共享同一逻辑驱动器。
- 可以选用2~32块磁盘内的未指派空间组成跨区卷。
- 跨区卷存储数据时是按顺序存储。
- 跨区卷中的某一部分出错则所有数据丢失,无法容错。
- 跨区卷可以被扩展,但是只能是NTFS文件系统。
- 磁盘利用率100%。
- 每块硬盘可以提供不同的磁盘空间;
- 只可以变为简单卷。
3.3 带区卷
- 带区卷与跨区卷类似,带区卷也是指多个位于不同磁盘的未指派空间所组合成的一个逻辑卷。不同之处在于,带区卷的每个成员大小相同。
- 可以选用2~32块磁盘内的未指派空间组成带区卷,带区卷每个成员的大小相同。
- 系统将数据存储到带区卷的时候,是将数据分成等量的64K。轮询存储。
- 带区卷一旦创建好后就无法扩展。
- 带区卷可以被格式化为:FAT、FAT32、NTFS。
- 带区卷中的任何一个成员出错则所有数据丢失。
- 磁盘的利用率为100%,读写盘速率提高。
- 非容错磁盘(RAID 0)在系统中的多个磁盘中分布数据;
- 无法转为其他卷。
3.4 镜像卷
- 镜像卷成员只有两个,并且两个部分大小完全相同。
- 在创建镜像卷的时候如果选择一个简单卷与一个未指派空间组成镜像卷,则系统在创建镜像的过程中,会将简单卷内的现有数据复制到另一个成员中。
- 在存储数据的过程中镜像卷的两个成员存储的数据是完全相同的。当一个磁盘出现故障另一个磁盘仍然可以用。 镜像卷的空间使用率50%
- 镜像卷可以被格式化为:FAT、FAT32、NTFS 镜像卷一旦创建不能扩展。 容错磁盘(RAID 1),把数据从一个磁盘向另一个磁盘做镜像; 每块磁盘提供相同大小的空间
- 浪费磁盘空间
- 无法提高性能
- 只可以变为简单卷。
3.5 RAID-5卷
- RAID-5卷是由3-32块磁盘组成,磁盘最好是相同制造商、相同型号、相同容量。
- RAID-5卷的每个成员,容量大小完全相同。
- 将数据分成等量64K,与奇偶校验数据一起分别写入每个磁盘。
- 当某个磁盘出现故障,系统还可以根据奇偶校验数据,推算出故障盘内的数据。
- 磁盘利用率为:(n-1)/n。写慢,读快。
- RAID-5卷不能扩展,也可以被格式化为LFAT、FAT32、NTFS。
- 无法变为其他卷。
4 示例
版权声明:未经作者允许,严禁用于商业出版,否则追究法律责任。转载请注明出处!!!