[华为云在线课程][Linux磁盘存储和文件系统][第二章磁盘分区][学习笔记]

举报
John2021 发表于 2022/03/23 06:45:46 2022/03/23
【摘要】 使用硬盘空间的过程设备分区创建文件系统挂载新的文件系统 为什么要分区优化I/O性能实现磁盘空间配额限制提高修复速度隔离系统和程序安装多个OS采用不同文件系统 分区方式分区方式有两种:MBR和GPT MBR分区MBR:Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T划分分区的单位:CentOS5之前按照 整个柱面划分CentOS6后可以按Sector划分0...

使用硬盘空间的过程

  1. 设备分区
  2. 创建文件系统
  3. 挂载新的文件系统

为什么要分区

  • 优化I/O性能
  • 实现磁盘空间配额限制
  • 提高修复速度
  • 隔离系统和程序
  • 安装多个OS
  • 采用不同文件系统

分区方式

分区方式有两种:MBR和GPT

MBR分区

MBR:Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T
划分分区的单位:

  • CentOS5之前按照 整个柱面划分
  • CentOS6后可以按Sector划分

0磁道0扇区:512bytes
446bytes:boot loader启动相关
64bytes:分区表,其中每16bytes标识一个分区
2bytes:55AA

MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1拓展(N个逻辑分区)
MBR分区:主和拓展分区对应的1-4,/dev/sda3,逻辑分区从5开始,/dev/sda5
MBR分区的主分区:不能再划分更小的分区,主分区+拓展<=4,可以有多个,一个硬盘只有一个主分区处于激活状态(启动系统)1-4
MBR分区的拓展分区:可以有,也可以没有,有且只有一个,不能直接使用,划分更小的分区才能使用 1-4
MBR分区的逻辑分区(逻辑驱动器):必须由拓展分区的划分出来 5-N
MBR分区结构

硬盘主引导区MBR由4个部分组成

  • 主引导程序(偏移地址0000H-0088H),它负责从活动分区中装载,并运行系统引导程序
  • 出错信息数据区,偏移地址0089H-00E1H为出错信息,00E2H-01BDH全为0字节
  • 分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH-01FDH,每个分区表项长16字节,共64字节为分区项1、分区项2、分区项3、分区项4

问题:如果分区表被破坏了,如何修复?如何备份分区表?

  • 开机后进入救援模式,利用分区策略相同的另一台主机的分区表来还原和恢复当前主机被破环的分区表
  • 将分区表备份为一个二进制文件存放在别的电脑上

GPT分区

GPT:GUID(Global Unique Identifiers)partition table支持128个分区,支持8Z(512Byte/block)64Z(4096Byte/block)
使用128位UUID(Universally Unique Identifier)表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位
UEFI(Unified Extensible Firmware Interface)统一可拓展固件接口,硬件支持GPT,使得操作系统可以启动
GPT分区结构

GPT分区结构分为4个区域:

  • GPT头
  • 分区表
  • GPT分区
  • 备份区域

BIOS和UEFI

BIOS是固化在电脑主板上的程序,主要用于开机系统自检和引导操作系统。目前新式的电脑基本上都是UEFI启动
BIOS(Basic Input Output System,基本输入输出系统)主要完成系统硬件自检和引导操作系统,操作系统开始启动之后,BIOS的任务就完成了。系统硬件自检:如果系统硬件有故障,主板上的扬声器就会发出长短不同的"滴滴"声,可以简单的判断硬件故障,比如"1长1短"通常表示内存故障,"1长3短"通常表示显卡故障
BIOS在1975年就诞生了,使用汇编语言编写,当初只有16位,因此只能访问1M的内存,其中前640K称为基本内存,后384K内存留给开机和各类BIOS本身使用。BIOS只能识别到主引导记录(MBR)初始化的硬盘,最多支持2T的硬盘,4个主分区(逻辑分区中的扩展分区除外),而目前普遍实现了64位系统,传统的BIOS已经无法满足需求了,这时英特尔主导EFI就诞生了
EFI(Extensible Firmware Interface)可拓展固件接口,是Intel为PC固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在OS加载之前(启动前)在所有平台上一致的、正确指定的启动服务,被看做是BIOS的继任者,或者理解为新版BIOS。
UEFI是由EFI1.10为基础发展起来的,她的所有者已不再是Intel,而是一个称为Unified EFI Form的国际组织。
UEFI(Unified Extensible Firmware Interface)统一的可拓展固件接口,是一种详细描述类型接口的标准。UEFI相当于一个轻量化的操作系统,提供了硬件和操作系统之间的一个接口,提供了图形化的操作界面。最关键的是引入了GPT分区表,支持2T以上的硬盘,硬盘分区不受限制。
BIOS和UEFI的区别
BIOS采用了16位汇编语言编写,只能运行在实模式(内存寻址方式由16位段寄存器的内容乘以16(10H)当做段基地址,加上16位偏移地址形成20位的物理地址)下,可访问的内存空间为1MB,只支持字符操作界面
UEFI采用32位或者64位的C语言编写,突破了实模式的限制,可以达到最大的寻址空间,支持图形操作界面,使用文件方式保存信息,支持GPT分区启动,适合和较新的系统和硬件配合使用。
BIOS+MBR与UEFI+GPT
传统BIOS运行流程:开机,BIOS初始化,BIOS自检,引导操作系统,进入系统
UEFI运行流程:开机,UEFI初始化,引导操作系统,进入系统
MSDN(Microsoft Developer Network)指出,Windows只能安装于BIOS+MBR或者UEFI+GPT组合上,而BIOS+GPT和UEFI+MBR是不允许的。但是BIOS+GPT+GRUB启动Linux是可以的

管理分区

列出块设备

lsblk

创建分区命令

fdisk 管理MBR分区
gdisk 管理GPT分区
parted 高级分区操作,可以是交互或非交互方式

重新设置内存中的内核分区表版本,适合于除了CentOS6以外的其他版本5,7,8

partprobe

parted命令

注意:parted的操作都是实时生效的,小心使用
格式:

parted [选项]... [设备 [命令 [参数]...]...]

例子:

parted /dev/sdb mklabel gpt|msdos
parted /dev/sdb print
parted /dev/sdb mkpart primary 1 200 (默认M)
parted /dev/sdb rm 1
parted -l 列出所有硬盘分区信息

分区工具fdisk和gdisk

  • gdisk [device…] 类fdisk 的GPT分区工具
  • fdisk -l [-u] [device…] 查看分区
  • fdisk [device…] 管理MBR分区
    子命令:
p 分区列表
t 更改分区类型
n 创建新分区
d 删除分区
v 校验分区
u 转换单位
w 保存并退出
q 不保存并退出

查看内核是否已经识别新的分区

cat /proc/partations

CentOS7,8同步分区表

partprobe

CentOS6通知内核重新读取硬盘分区表
新增分区用

partx -a /dev/DEVICE
kpartx -a /dev/DEVICE -f:force
例子:
partx -a /dev/sda

删除分区用

partx -d --nr M-N /dev/DEVICE
例子:
partx -d --nr 6-8 /dev/sda

例子:非交互式创建分区

echo -e 'n\np\n\n\n+2G\nw\n' | fdisk /dev/sdc
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。