磁盘分区的好处:
优化IO性能、实现磁盘配额、隔离系统和程序、可以采用多个文件系统
分区的方式:
- MBR --- 比较传统的分区
- GPT --- 支持更大的硬盘空间
MBR分区:
MBR:Master Boot Record(主引导记录),1982年开发而来,使用32位表示扇区数,分区不超过2T
特点:支持的分区空间有限
0磁道0扇区:
1.MBR的分区是按照分区类型来进行组织的。
2.把整个硬盘的分区信息放在0磁道0扇区这个512字节大小的空间中
。
3.MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区) #逻辑分区在扩展分区里面分
#这个扇区分为三部分:
- 446 bytes: boot loader 启动相关(存放启动相关的文件)
- 64 bytes:分区表(记录每个硬盘有几个分区,每个分区的开始和结束位置),其中每16bytes用来标识一个分区信息(起始位置和结束位置等信息)
- 2 bytes: 55AA(两个字节的标志位)
MBR分区类型:
- 主分区:可以存放数据也可以装系统
- 扩展分区:不能直接存数据,需要在里面划分逻辑分区才能存放数据(相当于一个容器)
- 逻辑分区:
#主分区和扩展分区对应数字1--4,/dev/sda3,逻辑分区从数字5开始,/dev/sda5
MBR分区结构
- 主引导程序(偏移地址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:从输入文件跳过开头多少个块后开始复制 #单位和bs的单位一样
- seek:从输出文件开头跳过多少个块开始复制
查看二进制文件的十六进制编码
#查看二进制文件的十六进制编码:hexdump -C filename
#选项:
-C:输出十六进制对应的字符
-n:显示前多少个字节
#如果不加选项: hexdump filename -- 已两个字节为一组的十六进制倒叙显示
#hexdump命令使用链接: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
运行流程:
硬盘分区的管理
列出块设备:lsblk
lsblk: list block --- 列出所有的块设备文件
块设备也就是存储以“块”为单位数据的设备,比较典型的如磁盘设备、光盘或者优盘
#设备类型:
块设备:block,存取单位“块”,磁盘
字符设备:char,存取单位“字符”,键盘
创建分区:
- fdisk --- 一个老牌工具,一般用来管理MBR分区
- gdisk --- 管理GPT分区
把硬盘上的分区信息同步到内核中:
方法一:- partprobe命令:
#新的分区表已经写入了硬盘,但是没有复制到内存中,我们使用fdisk和lsblk命令看到的都是内存中的分区表。所以使用partprobe命令来同步
方法二:- 重启计算机
分区工具fdisk和gdiskd的使用
fdisk -l [-u] [device...]     查看分区
fdisk [device...]             管理MBR分区
gdisk [device...]             类fdisk 的GPT分区工具
fdisk的子命令:
- p 分区列表
- t 更改分区类型
- n 创建新分区
- d 删除分区
- v 校验分区
- u 转换单位
- w 保存并退出
- q 不保存并退出
注意:
分区的设备名称是不稳定的,比如两个扩展分区5和6,删除了5,6会变成5
查看内核是否已经识别新的分区:cat /proc/partations
创建swap空间,分区的id要改为82,创建逻辑卷,物理设备分区的id要改成8e fdisk的t选项
Original: https://www.cnblogs.com/heyongshen/p/16428376.html
Author: 背对背依靠
Title: Linux MBR和GPT分区类型
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/523243/
转载文章受原作者版权保护。转载请注明原作者出处!