磁盘基础理论,发展趋势以及分区方式(fdisk,parted)

1、设备文件的分类
在Linux下的/dev目录中有大量的设备文件,根据设备文件的不同,又分为字符设备文件和块设备文件。
字符设备文件的存取是以字符流的方式来进行的,一次传送一个字符。常见的有打印机,终端(TTY)、绘图仪和磁带设备等等,字符设备文件有时也被称为“raw” 设备文件。
块设备文件是以数据块的方式来存取的,最常见的设备就是磁盘。系统通过块设备文件存取数据的时候,先从内存中的buffer中读或写数据。而不是直接传送数据到物理磁盘。这种方式有效的提高了磁盘的I/O性能。

2、MBR和GPT
MBR(Master Boot Record):即硬盘的主引导记录分区列表,硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT和硬盘有效标志(55AA)。在总共512字节的主引导扇区里,主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。
GPT(GUID Partition Table):即全局唯一标识分区列表,是一个物理硬盘的分区结构。它用来替代BIOS中的主引导记录分区表(MBR)。
传统BIOS主要支持MBR引导,UEFI则是取代传统BIOS,它加入了对新硬件的支持。

3、UEFI和BIOS
UEFI(Unified Extensible Firmware Interface):全称“统一的可扩展固件接口”,它定义了一种在操作系统和平台固件之间的接口标准。这种接口用于操作系统自动从预启动的操作环境(在系统启动之后,但是操作系统开始运作之前)加载到一种操作系统上,从而使开机程序化繁为简,节省时间。需要注意,UEFI最准确的说它仅是一种规范,不同厂商根据该规范对UEFI的实现,并做出PC固件后,该固件就称为UEFI固件。
BIOS(基本输入和输出系统),是最古老的一种系统固件和接口,采用汇编语言进行编程,并使用中断来执行输入/输出操作,在出现之初即确定了 PC 生态系统的基本框架。
UEFI比BIOS先进在三个方面:
(1) 读取分区表
(2) 访问某些特定文件系统中的文件
(3) 执行特定格式的代码【可以说UEFI像一个简易的操作系统】

表格对比:

对比项BIOSUEFIMBRGPT
类型固件(基本输入输出系统)固件(统一可扩展固件接口)分区表格式分区表格式
诞生时间1975年2005年1983年2000年
存储位置主板ROM芯片主板闪存/硬盘ESP分区磁盘第一个扇区磁盘开头和结尾
最大磁盘无限制(受MBR限制)无限制2.2TB9.4ZB(理论)
最大分区受MBR限制受GPT限制4个主分区(或3+扩展)128个主分区
启动方式Legacy/传统模式UEFI模式BIOS-MBRUEFI-GPT
安全特性安全启动(Secure Boot)CRC校验,分区表备份
图形界面文本界面支持图形界面
启动速度快(并行初始化)

4、UEFI、BIOS和MBR、GPT之间的关系?
MBR的特点
MBR分区的分区表保存在硬盘的第一个扇区,而且只有64字节,所以最多只能有四个表项。也就是说,我们只能把硬盘分为4主分区,或者分成小于等于3个主分区再加一个扩展分区。
MBR分区的优点就是简单,支持度高,很多操作系统都可以从MBR分区的硬盘启动。 缺点就是MBR分区不能识别大于2T的硬盘空间,也不能有大于2T的分区.
MBR支持32位和64位系统。
GPT的特点
没有4个主分区的限制,对分区的数量没有限制。
GPT可管理硬盘大小最大18EB
要从GPT分区的硬盘启动,则需要UEFI主板、硬盘使用GPT分区、操作系统支持GPT这三 个条件。
必须使用64位系统。
UEFI的目标是取代传统BIOS,它不支持MBR模式,仅支持GPT格式。不过,近年出现的UEFI主板,采用UEFI+BIOS共存模式,并且BIOS中集成UEFI启动项。

5、Linux操作系统GPT-UEFI支持列表
其中,1=BIOS+MBR,2=UEFI+GPT

操作系统平台版本范围 (64bit)GPT-UEFI 支持情况备注 引导限制
RHEL / CentOS6.X / 7.XGPT 需要 UEFI1、2 (RHEL 7 之后完全支持)
RHEL8.X / 9.X/10.x原生支持全面支持 UEFI & Secure Boot
Ubuntu20.04 / 22.04 / 24.04原生支持默认 GPT,支持 HTTP Boot
Debian10 / 11 / 12 / 13原生支持Debian 13 (Trixie) 强化了 UEFI 兼容性

主要是两种分区方式:

特性fdiskparted
主要用途MBR分区表管理GPT和MBR都支持
交互方式纯命令行交互命令行和交互式
实时性操作缓存,需w命令写入实时生效,需要小心
磁盘大小≤2TB(MBR限制)支持超大磁盘
分区数量4主分区或3主+扩展最多128分区(GPT)
文件系统只管理分区,不处理文件系统可直接创建文件系统
使用难度简单直观较复杂,功能强大
脚本支持支持非交互模式支持脚本和单行命令

第一种:fdisk

常用组合:
fdisk -l(查看分区情况)
fdisk的使用分为两个部分,查询部分和交互操作部分。通过fdisk device即可进入命令交互操作界面。
常用命令:
d:删除一个分区
l:查看指定分区的分区表信息
m:显示fdisk每个交互命令的详细含义
n:增加一个新的分区
p:显示分区信息
q:退出交互操作,不保存操作的内容
t:改变分区类型
w:写分区表信息到硬盘,保存操作退出

第二种是parted

对于GPT格式的分区,fdisk工具是无能为力的,同时,fdisk工具对分区是有大小限制的,它只能划分小于2T的磁盘。但是现在的磁盘空间很多都已经是远远大于2T,此时就需要另外一个磁盘管理工具parted来完成大于2T的磁盘分区工作。
查看系统是否有parted命令,如果没有,执行如下命令直接安装即可:
yum -y install parted


parted交互模式下常用的一些参数:
mklabel 创建分区表, 也就是设置使用msdos还是使用gpt格式。例如:mklabel gpt,表示设定分区表为gpt格式。
mkpart 创建新分区命令。
使用格式为:mkpart PART-TYPE [FS-TYPE] START END
其中,PART-TYPE,表示分区类型,主要有primary(主分区),extended(扩展分区),logical(逻辑区),其中,扩展分区和逻辑分区只针对msdos分区表。
fs-type,表示文件系统类型,主要有fat32,NTFS,ext2,ext3等,可不填写。
start,表示分区的起始位置。
end,表示分区的结束位置。


print 输出分区信息,可简写为p。该功能有3个选项:
free,显示该盘的所有信息,并显示磁盘剩余空间。
number, 显示指定的分区的信息。
all或list, 显示所有磁盘信息。


rm 删除分区。命令格式 rm number 。
例如:rm 2 就是将编号为3的分区删除。


select 选择设备。
当输入parted命令后直接回车进入交互模式时,默认设置的是系统的第一块硬盘,如果系统有多块硬盘,需要用select命令选择要操作的硬盘。
例如:select /dev/sdb

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注