以下内容源于网络资源的学习与整理,如有侵权请告知删除。
参考博客
硬盘结构(机械硬盘和固态硬盘)详解
简单理解磁盘结构_Guanngxu的博客-CSDN博客_磁盘的结构
硬盘基础知识_Forskamse的博客-CSDN博客
硬盘知识笔记整理_落子摘星的博客-CSDN博客
MBR分区表详解_zt_xcyk的博客-CSDN博客_mbr分区
硬盘分区、寻址和系统启动过程 - 走看看
目录
一、前言
二、机械硬盘
1、物理结构
2、逻辑结构
(1)磁道(track)
(2)扇区(sector)
(3)柱面(cylinder)
3、磁盘容量
4、磁盘的读写
(1)读写的方式
(2)读写的时间
5、机械硬盘的接口
(1)IDE 硬盘接口
(2)SATA 接口
(3)SCSI 接口
三、固态硬盘
1、固态硬盘简介
2、固态硬盘vs机械硬盘
四、概念厘清
1、块(block)、簇(cluster)
2、页(page)
3、磁盘块大小为何是扇区大小的整数倍?
五、 分区表
1、MBR分区表
2、GPT分区表
一、前言
(1)硬盘是计算机的主要外部存储设备,如果从存储数据的介质上来区分,硬盘可分为机械硬盘(Hard Disk Drive, HDD)和固态硬盘(Solid State Disk, SSD)。
(2)机械硬盘采用磁性碟片来存储数据,而固态硬盘通过闪存颗粒来存储数据。
二、机械硬盘
1、物理结构
(1)机械硬盘的内部主要由盘片、磁头、主轴与传动轴等组成,每个盘片包含上下两个盘面,每个盘面都对应着一个读/写磁头。
(2)盘片是承载数据存储的介质,它上面附着有磁粉,磁粉的S/N极分别代表着二进制中的0和1,利用磁头的磁力控制一些磁粉的方向,就存储了特定的信息。
(3)受到硬盘体积和成本的限制,盘片数量一般控制在5片以内。盘面的编号自下向上从0开始,如最下边的盘片有0面和1面,再上一个盘片编号为2面和3面。
(4)机械硬盘工作时,盘片的旋转速度很快(常见转速是 7200 r/min),因此在读取或写入数据时非常害怕晃动和磕碰;另外如果硬盘内部有灰尘则会造成磁头或盘片的损坏,所以机械硬盘内部是封闭的,如果不是在无尘环境下,则禁止拆开机械硬盘。
2、逻辑结构
机械硬盘的逻辑结构主要分为磁道、扇区和柱面。
(1)磁道(track)
1、每个盘片在逻辑上有很多同心圆,我们将每个同心圆称作磁道。
2、盘面的磁道密度非常高,通常一个盘面就有上千个磁道。
3、相邻的磁道之间并不是紧挨着的,因为磁化单元相隔太近会相互影响。
4、最外面的同心圆就是0磁道。
(2)扇区(sector)
1、从圆心向外画直线,将每个磁道等分为若干弧段,每条磁道上的一个弧段就是一个扇区。
2、扇区是磁盘的最小存储单元。
3、扇区的大小一般是 512Byte,但部分厂商设定每个扇区的大小是4096字节。
4、外侧磁道的扇区面积大,内侧磁道的扇区面积小。
5、以前的磁盘,每条磁道的扇区数目是一样的,每条磁道可以存储的数据量是一样的,因此外侧的磁道数据密度小,内侧磁道数据密度大。现在的磁盘,每条磁道的数据密度都是一样的,因此越外侧的磁道,其扇区数目就越多,能够存储的数据量就越大。
(3)柱面(cylinder)
1、硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”向内进行磁道编号,具有相同编号的磁道会形成一个圆柱,称之为磁盘的柱面。
2、从柱面含义中得知,磁盘的柱面数与一个盘面上的磁道数是相等的。
3、磁盘容量
(1)磁盘容量计算公式如下,其中磁头数(heads)表示磁盘一共有多少个盘面(因为一个盘面对应一个磁头);柱面数(cylinders)表示一个盘面有几条磁道。
磁盘容量= 磁头数(盘面数) x 柱面数(磁道数) x 每条磁道的扇区数 x 每个扇区的字节数
(2)比如下面是使用“fdisk -l”列出的磁盘分区情形,从中可以看出,磁盘共有255个盘面,每个盘面有2610条磁道,每条磁道有63个扇区(setcors/track表示每磁道多少扇区),每个扇区大小是512字节,按理有255*63*2610=419299650个扇区,但为何与显示的不一致?
root@ubuntu:/# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors Units = 扇区 of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000bf9a1设备 启动 起点 终点 块数 Id 系统 /dev/sda1 * 2048 37750783 18874368 83 Linux /dev/sda2 37752830 41940991 2094081 5 扩展 /dev/sda5 37752832 41940991 2094080 82 Linux 交换 / Solaris root@ubuntu:/#
4、磁盘的读写
(1)读写的方式
磁盘读写数据时,是按柱面进行的。首先从盘面0(磁头0)开始进行操作,依次往上在同一柱面的不同盘面(磁头上)进行操作,同一柱面的所有磁头全部读写完毕后,全部磁头才转移到下一个柱面。这是因为全部的磁头都连接在同一个磁臂上,因此只能“共进退”。
(2)读写的时间
1、读写一次磁盘信息所需的时间可分解为:寻道时间、延迟时间、传输时间。
2、寻道时间,表示磁头移动到数据所在磁道所需要的时间。目前磁盘的平均寻道时间一般在3至15ms,一般都在10ms左右。
3、延迟时间,表示盘片将数据所在的扇区旋转到读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,普通硬盘一般都是7200rpm,慢的5400rpm。
4、传输时间,表示完成数据传输所需要的时间。
5、为提高磁盘传输效率,软件应着重考虑减少寻道时间和延迟时间。
5、机械硬盘的接口
机械硬盘通过接口与计算机主板进行连接。硬盘的读取和写入速度与接口有很大关系。大家都见过大礼堂吧,大礼堂中可以容纳很多人,但是如果只有一扇很小的门,那么人是很难进入或出来的,这样会造成拥堵,甚至会出现事故。机械硬盘的读取和写入也是一样的,如果接口的性能很差,则同样会影响机械硬盘的性能。
目前,常见的机械硬盘接口有以下几种:(1)IDE 硬盘接口
Integrated Drive Eectronics,并口,即电子集成驱动器,也称作 "ATA硬盘" 或 "PATA硬盘",是早期机械硬盘的主要接口,ATA133 硬盘的理论速度可以达到 133MB/s(此速度为理论平均值),IDE 硬盘接口如图所示。
(2)SATA 接口
Serial ATA,是速度更高的硬盘标准,具备了更高的传输速度,并具备了更强的纠错能力。目前已经是 SATA 三代,理论传输速度达到 600MB/s(此速度为理论平均值),如图所示。
(3)SCSI 接口
Small Computer System Interface,小型计算机系统接口,广泛应用在服务器上,具有应用范围广、多任务、带宽大、CPU 占用率低及热插拔等优点,理论传输速度达到 320MB/s,如图所示。
三、固态硬盘
1、固态硬盘简介
(1)与机械硬盘采用盘片存储数据不同,固态硬盘采用存储芯片进行数据存储。
(2)固态硬盘的存储芯片主要分为两种,即闪存与DRAM。
(3)目前市场主要采用闪存作为存储介质的固态硬盘,如图所示。固态硬盘内主体其实就是一块PCB板,PCB板上最基本的配件就是控制芯片,缓存芯片(低端硬盘无缓存芯片)和用于存储数据的闪存芯片。
2、固态硬盘vs机械硬盘
固态硬盘和机械硬盘对比如下所示。
由此可以看出,固态硬盘因为丟弃了机械硬盘的物理结构,所以相比机械硬盘具有了低能耗、无噪声、抗震动、低散热、体积小和速度快的优势;不过价格相比机械硬盘更高,而且使用寿命有限。
四、概念厘清
1、块(block)、簇(cluster)
(1)关于块的概述
1、磁盘块,简称“块”,是虚拟出来的概念。它是操作系统中最小的逻辑存储单位,或者说操作系统与磁盘打交道的最小单位是磁盘块,或者说块是操作系统针对硬盘读写的最小单元。
2、块与簇其实是同一个概念,只是不同文件系统下的叫法不同。在Windows下如NTFS等文件系统中就叫做簇(cluster),在Linux下如Ext4等文件系统中就叫做块(block)。
3、既然磁盘块是一个虚拟概念,是操作系统规定的软件的概念,不是真实的,那么其大小可以由操作系统决定与配置。每个块包括2的n次方个扇区,这个的n是可以修改的。下图是每个块包括2个扇区的示意图。
4、在window的命令行中输入“fsutil fsinfo ntfsinfo F:”显示如下, 可知这里的一个簇是4KB,扇区大小是512B,因此这里的一个簇是由8个扇区组成的。
(2)磁盘块的意义
主要是为了读取方便。由于扇区的数量众多,在寻址时比较困难,所以操作系统就将相邻的扇区组合在一起,形成一个块,再对块进行整体的操作。或者通俗地理解,操作系统(其实是文件系统,但文件系统是操作系统的一部分,所以这里说操作系统)不是一个扇区一个扇区地去读数据的,因为这样速度太慢了,它是一个块一个块地去读取数据的,块才是文件存取的最小单位。
(3)扇区与磁盘块的映射
1、磁盘控制器除了读取数据、控制磁头等作用外,还负责映射扇区和磁盘块的关系。
2、磁盘控制器以扇区为单位读取磁盘数据,操作系统以块为单位读取磁盘数据。
2、页(page)
为了方便操作系统和硬盘之间的交流,虚拟出了“块”这个基本单位,它是操作系统与硬盘交流的最小单位。类似的,为了方便操作系统和内存之间的交流,虚拟出了“页”这个基本单位,它是操作系统与内存交流的最小单位。
3、磁盘块大小为何是扇区大小的整数倍?
操作系统是以块为单位进行数据读取的,而磁盘控制器是以扇区为单位读取磁盘数据。一个块的大小是扇区大小的整数倍,有利于磁盘的IO,不然(比如2.5个扇区为一个块)会对扇区进行分割。
五、 分区表
(1)一块全新的硬盘,必须进行初始分区。初始分区分为MBR分区、GPT分区这两种方法,对应着MBR分区表和GPT分区表。
(2)这里的初始分区是指只进行分区,还没有进行格式化。格式化是指定这块硬盘的某个分区采用什么文件系统。分区广义的概念是包括初始分区与格式化。
1、MBR分区表
见博客MBR分区表的简介_天糊土的博客-CSDN博客。
2、GPT分区表
暂略。