fdisk 和 Parted 分区管理工具

2021-03-07 17:55:47 浏览数 (1)

背景

在日常运维工作中交付客户的云主机通常需要挂载超过2T的数据盘,对于超过2T的数据盘需要使用GPT分区表实现,然后老版本的fdisk 分区管理工具不支持GPT分区表需要使用Parted 分区管理工具。

MBR

MBR全称 Master Boot Record,称为主引导记录,MBR对硬盘大小有限制,最大支持2TB磁盘,它无法处理大于2TB容量的磁盘。MBR支持最多4个主分区——如果想要更多分区,就需要创建所谓“扩展分区”,并在其中创建逻辑分区。超过 2T 的磁盘,应当使用 GPT 分区表。

GPT

GPT 全称 GUID Partition Table ,称为全局唯一标识分区表,是一种新的分机管理机制,解决了 MBR 分区表机制存在很多缺点,可以支持超过 2T 的硬盘,可以兼容 MBR。它和UEFI相辅相成——UEFI用于取代老旧的BIOS,而GPT则取代老旧的MBR。之所以叫做“GUID分区表”,是因为你的驱动器上的每个分区都有一个全局唯一的标识符(globally unique identifier,GUID)——这是一个随机生成的字符串,可以保证为地球上的每一个GPT分区都分配完全唯一的标识符。GPT没有MBR的那些限制。磁盘驱动器容量几乎不限制。它还支持几乎无限个分区数量,限制只在于操作系统。

在Linux中分区工具通常使用 fdisk 和 parted。

早期 fdisk 分区管理工具,只支持 MBR ,不支持GPT分区表,所以早期的 fdisk 不能对 GPT 分区表的磁盘操作(新版本 fdisk 分区工具支持GPT分区),而 parted 即支持 MBR 分区表,也可以支持 GPT 分区表。

fdisk 分区管理工具是交互式的,parted 支持交互式模式和命令行模式。值得注意的是parted 执行命令后立即生效,而fdisk 最后需要执行w 后保存生效。

Parted 使用

新增一块200G硬盘/dev/sdb

查看parted软件包是否安装

代码语言:javascript复制
[root@elk-node1 /]# rpm -qa partedparted-3.1-29.el7.x86_64

安装parted

代码语言:javascript复制
yum install -y parted

查看硬盘信息 (等同于 fdisk -l /dev/sdb)

更改硬盘的分区表为GPT

代码语言:javascript复制
parted  /dev/sdb  mklabel gpt

更改硬盘的分区表为MBR

代码语言:javascript复制
parted  /dev/sdb  mklabel msdos

将硬盘的容量都划分成一个主分区

代码语言:javascript复制
parted /dev/sdb primary '1 -1'

创建一个10G 的主分区

代码语言:javascript复制
parted /dev/sdb mkpart primary 1 10GB

创建一个20G 的主分区

代码语言:javascript复制
parted   /dev/sdb mkpart primary 10GB  30GB

创建一个20G 的主分区

代码语言:javascript复制
parted   /dev/sdb mkpart primary 30GB 50GB

将剩余的空间全部给某个分区

代码语言:javascript复制
parted   /dev/sdb mkpart primary '50G -1'

lsblk 查看块设备

删除一个分区

代码语言:javascript复制
parted /dev/sdb rm 3

修改分区1 为lvm分区

代码语言:javascript复制
parted   /dev/sdb  toggle 1 lvm

parted 常用命令

代码语言:javascript复制
print 查看分区(也可以直接使用 p )mklabel 创建一个分区表mkpart 创建一个分区rm 删除一个分区

格式化分区并挂载分区

代码语言:javascript复制
mkfs.xfs /dev/sdb1

写入测试数据

查看挂载情况

查看分区UUID

代码语言:javascript复制
[root@elk-node2 ~]# blkid

umount 异常处理

异常现象

查找被占用进程的pid并kill掉

fdisk使用

查看fdisk 版本

代码语言:javascript复制
[root@elk-node1 /]# fdisk  -vfdisk from util-linux 2.23.2

查看硬盘

利用fdisk 分区工具更改硬盘的分区表为GPT

将硬盘的容量都划分成一个主分区

fdisk 详细命令请查看 《Linux LVM --- 硬盘扩容》

0 人点赞