磁盘接口
IDE(Integrated Drive Electronics),即电子集成驱动器,是曾经主流的磁盘接口(同时也作为光驱的接口)。IDE又称ATA(Advanced Technology Attachment),即“高级技术附件”,在SATA(Serial ATA)出现后改名为PATA(Parallel ATA)。
SCSI(Small Computer System Interface),即小型计算机系统接口,可以连接硬盘、软驱、光驱、打印机等设备。SCSI出现的原因主要是因为IDE接口的硬盘转速太慢,传输速率太低。从原理层面看,SCSI与IDE一样使用的是并行技术,因此在SAS(Serial Attached SCSI)出现后SCSI就通常被称为并行SCSI了。
此后又出现了SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SAS(Serial Attached SCSI)即串行连接SCSI 等接口,使用了串行技术,提高了数据传输速率。
我们可以将,SCSI和SAS划归为另一个系列,SCSI和SAS价格较高,在各自的年代都是用在高级的服务器上的,私人电脑上较少使用。而将IDE和SATA划归为一个系列,它们用于一般电脑或PC上,SATA在当下非常普遍。
命名
在Linux上,IDE硬盘会被标识为hd,例如,在一个IDE接口上接着的两块硬盘会被分别标识为hda与hdb;出现SCSI硬盘后,Linux将其标识为sd,如sda、sdb。此后所有除IDE接口外的硬盘全部沿用SCSI硬盘的标识标准,即sd,没有再做改动。
机械硬盘组成与容量
机械硬盘由盘片、磁头及其它辅助机构组成。盘片(Disk)是硬盘中承载数据存储的介质,其上附着着磁粉,磁粉的S/N极将分别代表着二进制中的0和1,从而表示二进制数据。利用磁头(Head)的磁力控制指定的一些磁粉的方向,就存储了特定的信息。
盘片被分为很多条磁道(Track),即表面上的一些同心圆,磁道是从盘片外圈往内圈编号0磁道,1磁道…。每一个磁道又按512个字节为单位划分为等分,叫做扇区(Sector)
磁盘是由多个盘片叠加在一起,互相之间由垫圈隔开。盘片上下两面各有一个磁头,每张盘片同一位置的磁道,组成了柱面(Cylinder )。显然,磁道数=柱面数。
知道CHS(Cylinders、Heads、Sectors)的数量后,就可以确定磁盘的容量:
磁盘容量 = 柱面数(磁道数)× 磁头数 × 扇区数 × 扇区大小(512 Bytes)
固态硬盘
固态硬盘没有采用磁性介质作为存储介质,而是使用半导体材料来存储数据,但“磁盘”这个词还是沿用在了固态硬盘上。
固态硬盘的内部构造十分简单,固态硬盘内主体其实就是一块PCB板,而这块PCB板上最基本的配件就是控制芯片,缓存芯片(部分低端硬盘无缓存芯片)和用于存储数据的闪存芯片
固态硬盘也有扇区(Sector)的概念,与机械硬盘一致。
分区表(初始分区)
之所以介绍一下磁盘的基础知识,是为了让大家更好地理解这一部分对硬盘初始分区的介绍。一块全新的硬盘,必须进行初始分区。初始分区可以分为MBR分区和GPT分区两种形式,对应MBR分区表和GPT分区表。
MBR分区形式下,硬盘的第一个扇区是主引导扇区,由三个部分组成:主引导记录(Master Boot Record,MBR)、硬盘分区表(Disk Partition Table,DPT)和硬盘有效标志。
MBR占446个字节,负责从活动分区(活动分区是即启动分区,安装有系统)中装载并运行系统引导程序。
DPT占64个字节,记录着硬盘中分区的数量以及每一分区的大小,每个分区的信息用16个字节表示,因此限制了分区的数量:不能超过4个主分区或者3主分区+1扩展分区,而扩展分区可以划分为任意数量的逻辑分区(扩展分区不可直接使用,需要转化为逻辑分区方可使用)【注1:逻辑分区数量受系统层级的限制,在Linux中,IDE硬盘最多有59个逻辑分区(5-63),SATA硬盘则有11个逻辑分区(5-15)】。 这16字节的具体内容是:启动标志、起止磁头号、起止扇区号、起止柱面号、隐含扇区数目(4个字节)、分区总扇区数目(4个字节)。这里又暴露了MBR分区的一个缺陷:用4个字节表示分区总扇区数, 最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过2.2TB。
硬盘有效标志占2个字节,又被称为幻数(Magic Number),固定为55AA。如果该标志错误系统就不能启动。
GPT分区形式
GPT是GUID(Globally Unique Identifier Partition Table) Partition Table的缩写,意即全局唯一标识符分区表。
GPT分区的LBA0是保护性MBR【注2:LBA意为逻辑块地址(Logical Bolck Address),每个逻辑块的大小是512字节,这是与扇区不同的定位方式 】,为了实现有限的兼容性,GPT仍然为MBR保留了这一扇区,用来阻止基于MBR的磁盘工具识别错误,从而覆盖GPT磁盘。 LBA1是GPT头(Primary GPT Header),LBA-1是备份GPT头(Secondary GPT Header),这两部分内容是一样的。GPT头的具体内容在此不做详细说明了。 LBA2-LBA33是分区表项,LBA-33 - LBA-2是备份分区表项,两部分内容也是一样的。GPT就是为了避免MBR的两大缺点:在GPT中,分区表项的数量有MBR的4项增多到128项,因此允许划分128个主分区;同时每项由MBR的16字节扩大到128字节,描述每个分区的开始扇区和结束扇区都用8个字节,因而最多支持2的64次方的扇区数,即支持最大约9.4ZB大小的分区。
MBR VS. GPT MBR的缺点之一是不支持大于2.2T的分区,而GPT可以支持18EB的硬盘; MBR还有一个缺点是限制磁盘不能超过4个主分区或者3主分区+1扩展分区(包含随意数目的逻辑分区),而GPT则没有此限制。 GPT也有缺点,GPT分区硬盘在修复磁盘坏轨、做资料恢复、系统还原等任务时都会遇到麻烦,MBR则较为方便。 GPT 定义是 Intel提出的用以替代BIOS以实现对更多硬件的支持的规范:EFI( Extensible Firmware Interface ) 的一部分。例如,使用EFI/UEFI就可以引导GPT分区下的系统,可以将系统安装到2T容量以上的硬盘中。 考虑到兼容性,在EFI/UEFI中可以设置Legacy(传统)模式,从而引导MBR分区下的系统了。 而BIOS只可以引导MBR分区下的系统,不可以引导GPT分区下的系统(但支持GPT分区的硬盘做数据盘)。 查看分区类型 Windows系统下 在“此电脑–管理–磁盘管理”中右键查看“磁盘0”或“磁盘1”属性,在“卷”选项卡下的“磁盘分区形式”即是该磁盘分区类型。
Linux系统下
使用命令查询:
作为数据盘 GPT或是MBR都可以被在EFI/UEFI引导的系统下使用,没有差别。如果需要大于2.2T的分区或是更高的主分区数要求,则选择GPT。 总的来说,
作为系统盘,如果需要在2.2T容量以上的分区安装系统,或者对主分区数有更高要求,就必须使用GPT+EFI/UEFI,否则选择GPT+EFI/UEFI、MBR+BIOS或者MBR+EFI/UEFI(Legacy)都是可以的;而作为数据盘,选择的随意性更大,不需要考虑EFI/UEFI的影响。 我的建议是分区方式最好不要转换,可能会造成文件的丢失,如果确有必要,可以通过傲梅分区助手、DiskGenius来辅助,切不可使用Windows系统磁盘管理中的转换或是Linux安装系统的转换功能。