声明:本笔记内容为笔者自己整理.
数年之前在"Linuxcast"学习Linux,当时记录了一份纸质版笔记,现在有意将其整理成电子版,供自己日后查阅以及分享.
感谢Linuxcast,感谢苏勇(nash_su)老师!

磁盘基本概念

磁盘结构:磁盘结构示意图

磁盘在Linux中的表示

  • Linux所有设备被抽象成一个文件,保存在/dev目录下。
    在这里插入图片描述
  • 设备名称一般为hd[a-z]或者是sd[a-z]([a-z]为分区号)。如:hda、hdb、sda、sdb。
  • IDE设备的名称为hd[a-z],SATA、SCSI、SAS、USB等设备的名称为sd[a-z]。
    在这里插入图片描述
    磁盘设备编号

分区概念

将一个磁盘逻辑的分为几个区,每个区当做独立硬盘,以方便使用管理。
Windows下将硬盘分区为“C盘、D盘、E盘……”。
而Linux下,不同分区用:设备名称+分区号 方式表示,如sda1sda2
在这里插入图片描述
上图中,我们假设计算机拥有一块硬盘,那么它的第一个分区就标识为sda1,它的第二个分区就标识为sda2,依次类推。
如果有其他的硬盘,那么第二块硬盘的第一个分区就标识为sdb1,第二个分区就标识为sdb2,以此类推。

示例:在这里插入图片描述

首先输入 cd /dev/ ,进入Dev目录下。
然后输入ls /dev/sda* ,查看以“sda”开头的文件,发现有四个,“sda”是第一块硬盘本身,“sda1”是第一块硬盘的第一个分区,“sda2”是第二个分区,“sda3”是第三个分区。
然后输入ls /dev/sd* ,查看以“sd”开头的文件,因为计算机上只有一个硬盘,所以结果与上面的相同。

分区并不是硬盘的物理功能,只是一种软件上的划分。
主流的分区机制分为MBRGPT两种。

MBR

MBR(master boot record)是传统的分区机制,应用于绝对大多数使用BIOS的PC设备。

  • MBR支持32bit和64bit系统
  • MBR支持的分区数量有限
  • MBR只支持不超过2TB的硬盘,超过2T的硬盘将只能使用2T的空间(有第三方解决方法)

MBR结构

MBR结构
如上图所示,MBR结构总共占用了磁盘的头512个字节,这512个字节分为几个部分:

  1. 前446个字节是引导代码,引导代码就是帮助我们启动硬盘上安装的系统的,不同系统的引导代码不同。
  2. 接下来的四组16个字节,也就是64个字节,是我们的分区表
  3. 剩下的2个字节,是启动标识。所有可引导的设备,头512字节的最后两个字节,一定是55AA55AA是一个永久性的标志,代表硬盘是可以启动的。即便你的系统是完好无损的,如果这个启动标识被修改了的话,BIOS也是不会引导的。

MBR分区

  • 主分区:最多只能创建4个分区。
  • 扩展分区:一个扩展分区会占用一个主分区的位置。
  • 逻辑分区:Linux最多支持63个IDE分区和15个SCSI分区。

我们从上面的MBR结构可以看到,MBR的分区表只有四个条目,所以只能创建四个主分区。如果想要创建更多的分区,我们必须使用扩展分区和逻辑分区。扩展分区会占用一个主分区的位置,而逻辑分区是基于扩展分区建立的。而且扩展分区本身是不可使用的,必须在扩展分区上建立逻辑分区才能使用。

在这里插入图片描述如上图所示,我们将硬盘sda划分三个主分区sda1、sda2、sda3,将剩下的空间划分为一个扩展分区sda4,这个扩展分区本身是不可使用的,必须在这个扩展分区上建立逻辑分区,分别建立四个逻辑分区sda5、sda6、sda7、sda8。

GPT

GPT(GUID Partition Table)是一个较新的分区机制,解决了MBR的很多缺点。

  • 支持超过2T的硬盘
  • 向后兼容MBR
  • 必须在支持UEFI的硬件上才能使用
  • 必须使用64bit的系统
  • Mac、Linux系统都能支持GPT分区格式
  • Windows部分系统支持GPT。

因为MBR的寻址空间只有32位长,所以只能支持2T的硬盘空间。而GPT的寻址空间有64位,所以支持超过2T的磁盘,而且超过非常多,非常非常的多,GPT的存储单位是ZB,对于我们现在来讲,完全可以理解是无限大。

UEFI是取代BIOS的新一代的引导系统,全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface)。硬件(通常是主板)必须支持UEFI才能使用GPT分区。

Mac和Linux原生支持GPT分区,而且Mac以MBR分区反而会变得不可使用。而Windows部分系统支持GPT。现在的服务器动辄以数十TB甚至更多的磁盘空间,如果部署Windows系统的话,在底层硬件层面上就限制住了。

GPT分区具体的细节,将在后面的文章呈现。

That’s all.


环境:
  软件版本:VirtualBox 4.3.12 r93733
  Linux系统版本:CentOS 7 ×86_64 1511

如有纰漏,望不吝指出,不胜感激。
Logo

更多推荐