Linux教程

Linux MBR和GPT分区类型

本文主要是介绍Linux MBR和GPT分区类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

磁盘分区的好处:

优化IO性能、实现磁盘配额、隔离系统和程序、可以采用多个文件系统

分区的方式:

  • MBR --- 比较传统的分区

  • GPT

MBR分区:

MBR:Master Boot Record(主引导记录),1982年开发而来,使用32位表示扇区数,分区不超过2T
特点:支持的分区空间有限

0磁道0扇区:

MBR的分区是按照分区类型来进行组织的。把整个硬盘的分区信息放在0磁道0扇区这个512字节大小的空间中。这个扇区分为三部分:

  • 446bytes: boot loader 启动相关(存放启动相关的文件)

  • 64bytes:分区表(记录每个硬盘有几个分区,每个分区的开始和结束位置),其中每16bytes用来标识一个分区信息(起始位置和结束位置等信息)

  • 2bytes: 55AA(两个字节的标志位)

MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)

MBR分区类型:

  • 主分区:可以存放数据也可以装系统

  • 扩展分区:不能直接存数据,需要在里面划分逻辑分区才能存放数据(相当于一个容器)

  • 逻辑分区:
    主分区和扩展分区对应数字1--4,/dev/sda3,逻辑分区从数字5开始,/dev/sda5

MBR分区结构

image

  • 主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序

  • 出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节

  • 分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长1个字节,共64字节为分区项1、分区项2、分区项3、分区项4(分区表不是一个文件,而是直接以二进制的形式存放在0扇区)

  • 结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA

备份MBR分区表:

#dd命令:直接以二进制的形式来访问磁盘数据
dd if(input file)=/dev/sda of(out file)=/data/mbr bs=1(一次读一个字节) count=64(读64次) skip=446(跳过硬盘的前446个字节)

dd命令:按照指定大小的数据块来拷贝文件,并在拷贝的过程中对内容进行转换

选项:

  • if:源文件(输入文件)

  • of:目标文件(目的文件)

  • bs:每一块的大小

  • count:拷贝多少个

  • skip:从输入文件跳过开头多少个块后开始复制

  • seek:从输出文件开头跳过多少个块开始复制

范例: 备份MBR的分区表,并破坏后恢复

查看二进制文件的十六进制编码:hexdump -C filename
选项:
-C:输出十六进制对应的字符
-n:显示前多少个字节
如果不加选项: hexdump filename -- 已两个字节为一组的十六进制倒叙显示
链接:https://www.linuxprobe.com/linux-hexdump.html
备份的这个分区表文件不能放在本地,因为如果分区表坏了,这个文件也找不到了。


GPT分区

GPT:GUID(Globals Unique Identifiers) partition table。支持128个分区,支持很大的硬盘很大的分区容量。取消了扩展分区这些概念,全是主分区(MBR使用扩展分区的目的是弥补只能分四个分区的缺陷)。

BIOS和UEFI

BIOS(Basic Input Output System 基本输入输出系统):电脑主板上内置的程序代码
作用:开机自检、引导操作系统。操作系统开始启动之后,BIOS的任务就完成了
BIOS只能识别到主引导记录(MBR)初始化的硬盘,最大支持2T的硬盘,4个主分区(逻辑分区中的扩展分区除外)。
EFI(Extensible Firmware Interface)可扩展固件接口。是因特尔首先发布出来的,后来各大公司就加入,形成了一个
UEFI的国际组织。
EFI:相当于新版BIOS
UEFI(Unified Extensible Firmware Interface)统一的可扩展固件接口:支持更大的内存、支持gpt分区和图形界面等

常用组合方式:

  • BIOS+MBR

  • UEFI+GPT

运行流程:
image

硬盘分区的管理

列出块设备:lsblk

lsblk: list block --- 列出所有的块设备文件
块设备也就是存储以“块”为单位数据的设备,比较典型的如磁盘设备、光盘或者优盘

设备类型:
块设备:block,存取单位“块”,磁盘
字符设备:char,存取单位“字符”,键盘

创建分区:

  • fdisk --- 一个老牌工具,一般用来管理MBR分区

  • gdisk --- 管理GPT分区

把硬盘上的分区信息同步到内核中:

  • partprobe命令

  • 重启计算机

分区工具fdisk和gdiskd的使用

fdisk -l [-u] [device...]     查看分区
fdisk [device...]             管理MBR分区
gdisk [device...]             类fdisk 的GPT分区工具

子命令:

  • p 分区列表

  • t 更改分区类型

  • n 创建新分区

  • d 删除分区

  • v 校验分区

  • u 转换单位

  • w 保存并退出

  • q 不保存并退出

查看内核是否已经识别新的分区:cat /proc/partations

这篇关于Linux MBR和GPT分区类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!