背景
在日常运维工作中交付客户的云主机通常需要挂载超过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软件包是否安装
[root@elk-node1 /]# rpm -qa partedparted-3.1-29.el7.x86_64
安装parted
yum install -y parted
查看硬盘信息 (等同于 fdisk -l /dev/sdb)
更改硬盘的分区表为GPT
parted /dev/sdb mklabel gpt
更改硬盘的分区表为MBR
parted /dev/sdb mklabel msdos
将硬盘的容量都划分成一个主分区
parted /dev/sdb primary '1 -1'
创建一个10G 的主分区
parted /dev/sdb mkpart primary 1 10GB
创建一个20G 的主分区
parted /dev/sdb mkpart primary 10GB 30GB
创建一个20G 的主分区
parted /dev/sdb mkpart primary 30GB 50GB
将剩余的空间全部给某个分区
parted /dev/sdb mkpart primary '50G -1'
lsblk 查看块设备
删除一个分区
parted /dev/sdb rm 3
修改分区1 为lvm分区
parted /dev/sdb toggle 1 lvm
parted 常用命令
print 查看分区(也可以直接使用 p )mklabel 创建一个分区表mkpart 创建一个分区rm 删除一个分区
格式化分区并挂载分区
mkfs.xfs /dev/sdb1
写入测试数据
查看挂载情况
查看分区UUID
[root@elk-node2 ~]# blkid
umount 异常处理
异常现象
查找被占用进程的pid并kill掉
fdisk使用
查看fdisk 版本
[root@elk-node1 /]# fdisk -vfdisk from util-linux 2.23.2
查看硬盘
利用fdisk 分区工具更改硬盘的分区表为GPT
将硬盘的容量都划分成一个主分区