1.磁盘的概念
磁盘(disk)是指利用磁记录技术存储数据的存储器。
磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk,简称硬盘)。
在 Linux 系统中,文件系统是创建在硬盘上的。
磁盘是计算机的主要外部存储设备。计算机中的存储设备种类非常多,常见的主要有光盘、硬盘、U 盘等,甚至还有网络存储设备 SAN、NAS 等,使用最多的还是硬盘。
从存储数据的介质上来区分,硬盘可分为机械硬盘(Hard Disk Drive, HDD)和固态硬盘(Solid State Disk, SSD)
机械硬盘HDD
机械硬盘是上下盘面同时进数据读取的。而且机械硬盘的旋转速度要远高于唱片(目前机械硬盘的常见转速是 7200 r/min),所以机械硬盘在读取或写入数据时,非常害怕晃动和磕碰。另外,因为机械硬盘的超高转速,如果内部有灰尘,则会造成磁头或盘片的损坏,所以机械硬盘内部是封闭的,如果不是在无尘环境下,则禁止拆开机械硬盘。
机械硬盘的逻辑结构
盘面 platter
硬盘一般会有一个或多个盘片,每个盘片可以有两个面(Side),即第1个盘片的正面称为0面,反面称为1面;第2个盘片的正面称为2面,反面称为3面…依次类推。每个盘面对应一个磁头(head)用于读写数据。第一个盘面的正面的磁头称为0磁头,背面称为1磁头;第二个盘片正面的磁头称为2磁头,背面称为3磁头,以此类推。盘面数和磁头数是相等的。
磁头 read-writer head
一张单面的盘片需要一个磁头,双面的盘片则需要两个磁头。硬盘采用高精度、轻型磁头驱动和定位系统。这种系统能使磁头在盘面上快速移动,读写硬盘时,磁头依靠磁盘的高速旋转引起的空气动力效应悬浮在盘面上,与盘面的距离不到1微米(约为头发直径的百分之一),可以在极短的时间内精确定位到计算机指令指定的磁道上。
磁道 track
每个盘片的每个盘面被划分成多个狭窄的同心圆环,数据就是存储在这样的同心圆环上,我们将这样的圆环称为磁道(Track),每个盘面可以划分多个磁道。关机时磁头停留在硬盘的着陆区(Landing Zone),这个着陆区以前是位于离盘心最近的区域,不存放任何数据。
扇区 sector
把每个磁道划分成若干弧段,每段称为一个扇区(Sector)。扇区是硬盘上存储的物理单位,每个扇区一般为512B或4K。也就是说即使计算机只需要硬盘上存储的某个字节,也须一次把这个字节所在的扇区中的全部512字节读入内存,再选择所需的那个字节。
为了对扇区进行查找和管理,需要对扇区进行编号,扇区的编号从0磁道开始,起始扇区为1扇区,其后为2扇区、3扇区……,0磁道的扇区编号结束后,1磁道的起始扇区累计编号,直到最后一个磁道的最后一个扇区(n扇区)
Tips:扇区是最小的物理存储单位,有512bytes和4K两种格式,最小分区单位通常为扇区
交叉因子:在硬盘磁道中,扇区号是按照某个间隔跳跃着编排。比如,2号扇区并不是1号扇区后的按顺序的第一个而是第八个,3号扇区又是2号扇区后的按顺序的第八个,依此类推,这个“八”称为交叉因子。
数据读取经常需要按顺序读取一系列相邻的扇区(逻辑数据相邻)。如对磁道扇区按物理顺序进行编号,很有可能出现当磁头读取完第一个扇区后,由于盘片转速过快来不及读取下一个扇区,(要知道物理相邻扇区位置距离是极小的),必须等待转完一圈,这极大浪费了时间。所以就用交叉来解决这个问题。
柱面Cylinder
如果硬盘是由多个盘片组成的,每个盘面都被划分为数目相等的磁道,那么所有盘片都会从外向内进行磁道编号,最外侧的就是 0 磁道(依此往里为1磁道,2磁道,3磁道…)。具有相同编号的磁道会形成一个圆柱,这个圆柱就被称作磁盘的柱面
硬盘数据的读写是按柱面进行,即磁头读写数据时首先在同一柱面内从0磁头开始进行操作,依次向下在同一柱面的不同盘面(即磁头上)进行操作,只有在同一柱面所有的磁头全部读写完毕后磁头才转移到下一柱面
簇
将物理相邻的若干个扇区称为了一个簇。操作系统读写磁盘的基本单位是扇区,而文件系统的基本单位是簇。
如查看一个文件的大小,显示:大小:15 字节 (15 字节), 占用空间:4.00 KB (4,096 字节)。这里的占用空间就是机器分区的簇大小,因为再小的文件都会占用空间,逻辑基本单位是4K,所以都会占用4K。
硬盘的容量=柱面数(磁道数) * 磁头数 * 单磁道扇区数 * 单个容量扇区大小(一般初始为512字节)
硬盘的接口
机械硬盘通过接口与计算机主板进行连接。硬盘的读取和写入速度与接口有很大关系。如果接口的性能很差,则会影响机械硬盘的性能。
目前,常见的机械硬盘接口有以下几种:
IDE 硬盘接口(Integrated Drive Eectronics,并口,即电子集成驱动器)也称作 “ATA硬盘” 或 “PATA硬盘”,是早期机械硬盘的主要接口,ATA133 硬盘的理论速度可以达到 133MB/s(此速度为理论平均值)
SATA 接口(Serial ATA,串口),是速度更高的硬盘标准,具备了更高的传输速度,并具备了更强的纠错能力。目前已经是 SATA 三代,理论传输速度达到 600MB/s(理论平均值)
SCSI 接口(Small Computer System Interface,小型计算机系统接口),广泛应用在服务器上,具有应用范围广、多任务、带宽大、CPU 占用率低及热插拔等优点,理论传输速度达到 320MB/s
磁盘的分类:
IDE磁盘:特点价格低廉,兼容性强,性价比高,数据传输慢,不支持热插拔等等。
SCSI磁盘:传输速率高,读写性能好,运行稳定,可连接多个设备。可支持热插拔,占用CPU低,但是价格相对来说比较贵,一般用于工作站或服务器上。
SATA磁盘:结构简单、支持热插拔
USB
其中IDE的磁盘的文件名为 /dev/hd[a-d]
而SCSI、SATA、USB的磁盘文件名为 /dev/sd[a-p]
2.固态硬盘SSD
固态硬盘和传统的机械硬盘最大的区别就是不再采用盘片进行数据存储,而采用存储芯片进行数据存储。固态硬盘的存储芯片主要分为两种:一种是采用闪存作为存储介质的;另一种是采用DRAM作为存储介质的。目前使用较多的主要是采用闪存作为存储介质的固态硬盘
固态硬盘因为丟弃了机械硬盘的物理结构,所以相比机械硬盘具有了低能耗、无噪声、抗震动、低散热、体积小和速度快的优势;不过价格相比机械硬盘更高,而且使用寿命有限。
3.硬盘分区
硬盘分区是指将硬盘的整体存储空间划分成多个独立的区域,分别用来安装操作系统、安装应用程序以及存储数据文件等。
只有将磁盘进行分区格式化之后,才能成为操作系统能够利用的文件系统格式
硬盘分区表可以说是支持硬盘正常工作的骨架。操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,写入数据文件。
为什么要分区:
(1)易于管理和使用;(2)有利于数据的安全;(3)节约寻找文件的时间;
1. MBR(MS-DOS 主引导记录区)方案
MBR(Main Boot Record 主引导记录区)位于整个硬盘的0磁道0柱面1扇区。
不过,在总共512字节的主引导扇区中,MBR只占用了其中的446个字节,另外的64个字节交给了 DPT(Disk Partition Table硬盘分区表),最后两个字节“55,AA”是分区的结束标志。这个整体构成了硬盘的主引导扇区。
Tips:零磁道一旦受损,将使硬盘的主引导程序和分区表信息将遭到严重破坏,从而导致硬盘无法引导
主引导扇区记录着硬盘本身的相关信息以及硬盘各个分区的大小及位置信息。如果它受到破坏,硬盘上的基本数据结构信息将会丢失,需要用繁琐的方式试探性地重建数据结构信息后,才可能重新访问原先的数据。
主引导扇区内的信息可以通过任何一种基于某种操作系统的分区软件写入,但和某种操作系统没有特定的关系,即只要创建了有效的主引导记录就可以引导任意一种操作系统
分区表由4项组成,每项16个字节(Byte).共4×16 = 64字节(Byte)。每项描述一个分区的基本信息。
MBR分区表上有四项,每一项表示一个分区,所以一个分区表最多只能表示4个分区。分区表上的4项用来表示主分区和扩展分区的信息。因为扩展分区最多只能有一个,所以硬盘最多可以有四个主分区或者三个主分区,一个扩展分区。余下的分区表是表示逻辑分区的。
这里有必要阐述一点:逻辑区都是位于扩展分区里面的,并且逻辑分区的个数没有限制。
硬盘的分区由主分区、扩展分区和逻辑分区组成:主分区(注意扩展分区也是一个主分区)的最大个数是四个,其
个数是由硬盘的主引导记录MBR(Master Boot Recorder)决定的,MBR存放启动管理程序(如GRUB)和分区表记录。
mbr只支持不超过2T的硬盘
2.GPT(GUID Partition Table)方案
这是另外一种分区,针对MBR分区,它有很多优点:
(1)几乎突破了分区个数的限制。
在GPT分区表中最多可以支持128个主分区。
(2)单个分区容量几乎没有限制。
单个分区最大支持1EB容量。
因此GPT分区中,主分区和扩展分区,逻辑分区的概念已经很模糊了。甚至没必要这么叫。其实扩展分区之所以存在,意义就是为了解决MBR中分区个数的限制问题。既然在GPT中,分区个数几乎没有了限制,那么这些概念就会模糊起来。