当前位置: 首页 > article >正文

CentOS7原有磁盘扩容实战记录(LVM非LVM)【针对GPT分区】

一、环境

在这里插入图片描述

二、命令及含义

  • fdisk
    ‌ ‌ fdisk‌是一个较老的分区表创建和管理工具,主要支持MBR(Master Boot Record)格式的分区表。MBR分区表支持的硬盘单个分区最大容量为2TB,最多可以有4个主分区。fdisk通过命令行界面进行操作,主要命令包括查看分区表(p)、创建新分区(n)、删除分区(d)、改变分区类型(t)等。fdisk适用于处理较小的硬盘和MBR分区表,但对于大于2TB的硬盘或需要GPT分区表的场景则不适用‌
  • parted
     ‌ parted‌是一个功能强大的磁盘分区工具,支持MBRGPT两种分区表。与fdisk不同,parted可以直接对GPT格式的磁盘进行操作,适用于大容量硬盘(如大于2TB)的分区需求。parted也通过命令行界面进行操作,提供了更多高级功能,如调整分区大小、格式化分区等。其基本命令包括查看分区(p)、删除分区(rm)、创建新分区(mkpart)等。parted在处理GPT分区表时更为灵活和强大‌
  • gdisk
     ‌ gdisk是一个功能强大的GPT分区表管理工具,专门用于GPT分区表。gdisk支持大容量硬盘和复杂的分区需求,可以通过命令行进行操作。其基本命令包括查看GPT分区表、创建新分区、删除分区等。gdiskparted类似,但专注于GPT分区表的操作‌

总结
fdisk‌适用于处理较小的硬盘和MBR分区表,操作简单但功能有限。
parted‌支持MBR和GPT分区表,功能强大,适用于大容量硬盘和复杂需求。
gdisk‌专注于GPT分区表,功能与parted类似,但更专注于GPT的支持。

三、步骤

1.准备测试环境(非lvm)

lsblk
fdisk -l

在这里插入图片描述

parted -s /dev/sdc mklabel gpt mkpart  xfs  0% 100%      //静默扩容gpt模式
mkfs.xfs /dev/sdc1										 //格式化xfs
mkdir /test												 //创建测试目录
mount /dev/sdc1 /test/									 //挂载目录
df -h
# 创建测试数据
touch /test/{1,2,3,4,5,6}
echo "data" > /test/1
lsblk

在这里插入图片描述

# 给sdb原有基础上加100G
umount /test
partprobe /dev/sdc    //取消挂载刷新或者reboot
lsblk

在这里插入图片描述

2.扩容(非lvm)

lsblk
fdisk -l

在这里插入图片描述

umount /dev/sdc1      //扩容前一定要取消挂载
parted /dev/sdc
print 
resizepart 1 100%    //因为centos7自带的是3.1版本则不支持此命令,改用gdisk

在这里插入图片描述

yum install -y gdisk 
gdisk -l /dev/sdc    //查看起始位置
gdisk /dev/sdc
d
n
1                    //原始分区号
回车
回车
回车
w
y
partprobe /dev/sdc   //如果没生效需要reboot

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

说明:这里因为内核没有识别 重启过所以sdc识别变成sdb了

mount /dev/sdb1 /test
xfs_growfs /test 
# 验证数据
df -h 
ls /test/
cat /test/1

在这里插入图片描述

3.准备测试环境(lvm)

lsblk
fdisk -l

在这里插入图片描述

parted -s /dev/sdb mklabel gpt mkpart  xfs  0% 100%
pvcreate /dev/sdb1
vgcreate vg1  /dev/sdb1
vgs && pvslvcreate  -l  100%FREE   -n    lv1      vg1
lvs && vgs
ls -l /dev/vg1/lv1
mkfs.xfs /dev/vg1/lv1
mount /dev/vg1/lv1 /test/

命令详解:
parted -s /dev/sdb mklabel gpt mkpart xfs 0% 100%
作用:在 /dev/sdb 上创建一个 GPT 分区表,并划出一个 100% 大小的分区。
-s:silent 模式,非交互式
mklabel gpt:创建 GPT 分区表(支持 2TB 以上磁盘)
mkpart xfs 0% 100%:新建一个分区,类型为 xfs(只是标注,实际格式化在后面),从磁盘起始到末尾
结果:你会得到一个新分区 /dev/sdb1,占满整个 /dev/sdb
pvcreate /dev/sdb1
作用:把 /dev/sdb1 初始化为一个 LVM 物理卷(PV)
这一步是让 LVM 能够接管这块分区作为底层存储
执行后可以用 pvs 查看这个 PV 状态
vgcreate vg1 /dev/sdb1
作用:创建一个新的 LVM卷组(VG),名字叫 vg1,并将 /dev/sdb1 加入其中
卷组是多个 PV 的逻辑聚合体,可以像资源池一样分配空间
vgs && pvs
作用:分别查看卷组(VG)和物理卷(PV)的状态
vgs:显示卷组名、可用容量等信息
pvs:显示物理卷的位置、属于哪个 VG、大小等
lvcreate -l 100%FREE -n lv1 vg1
作用:在卷组 vg1 中创建一个新的 逻辑卷(LV),名称为 lv1
-l 100%FREE:使用卷组中所有剩余的空间
-n lv1:设置逻辑卷名为 lv1
创建完成后,会生成 /dev/vg1/lv1
lvs && vgs
作用:查看逻辑卷(LV)和卷组(VG)的状态
lvs:列出逻辑卷的大小、路径、所属卷组等
vgs:确认剩余空间、逻辑卷数量等
ls -l /dev/vg1/lv1
作用:确认逻辑卷设备文件已生成(本质上是一个块设备)
你会看到:/dev/vg1/lv1 -> /dev/mapper/vg1-lv1(LVM 使用 dm 设备映射)
mkfs.xfs /dev/vg1/lv1
作用:将逻辑卷格式化为 XFS 文件系统
注意:你之前在 parted 中声明了 xfs,那只是“标签”,真正格式化要靠这一步
如果你想用 ext4 或其他,也可以改为 mkfs.ext4
mount /dev/vg1/lv1 /test/
作用:将逻辑卷挂载到 /test 目录
前提:目录 /test 必须存在
完成后你就可以在 /test 下读写新磁盘空间了

在这里插入图片描述

df -h
touch /test/{1,2,3,4,5,6}
echo "data" > /test/1

在这里插入图片描述

# 给sdb原有基础上加100G
umount /test
partprobe /dev/sdb    //取消挂载刷新,如果没变那就需要重启reboot使内核识别
lsblk

在这里插入图片描述

4.扩容(lvm)

# 记得卸载挂载 umount /test
gdisk -l /dev/sdb    //查看起始位置

在这里插入图片描述

gdisk /dev/sdb
d
n
1              //原始分区号
回车
回车
回车
w
y				//如果输入了两次y 那么就需要重新在执行一遍gdisk分区

在这里插入图片描述

说明:
警告!次级标头在磁盘上放置得太早!你想吗
纠正这个问题?(Y/N):Y
已将第二个标题和分区表移动到正确位置。

因出现警告所以需要在执行一遍gdisk
gdisk /dev/sdb
d
n
1              //原始分区号
回车
回车
回车
w
y	
partprobe /dev/sdb 

在这里插入图片描述

说明:出现这个意思就是需要reboot才可以让内核识别变动。

reboot
lsblk

在这里插入图片描述

pvresize /dev/sdb1   //扩容物理卷 PV
lvextend -r -l +100%FREE /dev/vg1/lv1   // -r就是扩容文件系统

在这里插入图片描述
在这里插入图片描述

# 数据验证
mount /dev/vg1/lv1 /test
ls /test/
cat /test/1
df -h
lsblk

在这里插入图片描述

四、结束语

  本次GPT原有磁盘扩容实战记录LVM非LVM就到此结束了,后期会给大家带来更多的脚本,感谢认真读完,如果觉得还可以,那么给作者点赞、收藏、关注吧!

http://www.lryc.cn/news/2379345.html

相关文章:

  • 机器学习07-归一化与标准化
  • AI agent与lang chain的学习笔记 (1)
  • 优化 Spring Boot 应用启动性能的实践指南
  • 谢赛宁团队提出 BLIP3-o:融合自回归与扩散模型的统一多模态架构,开创CLIP特征驱动的图像理解与生成新范式
  • 【idea】调试篇 idea调试技巧合集
  • 二叉树深搜:在算法森林中寻找路径
  • golang 安装gin包、创建路由基本总结
  • BMVC2023 | 多样化高层特征以提升对抗迁移性
  • 有哪些GIF图片转换的开源工具
  • C++—特殊类设计设计模式
  • Android 手写签名功能详解:从原理到实践
  • Level2.8蛇与海龟(游戏)
  • 【Android构建系统】如何在Camera Hal的Android.bp中选择性引用某个模块
  • 【Canvas与诗词】醉里挑灯看剑 梦回吹角连营
  • Hue面试内容整理-Hue 架构与前后端通信
  • Linux搜索
  • Git基础原理和使用
  • 实现视频分片上传 OSS
  • 网络I/O学习(一)
  • 4:OpenCV—保存图像
  • Selenium-Java版(css表达式)
  • 产品更新丨谷云科技 iPaaS 集成平台 V7.5 版本发布
  • 深度学习让鱼与熊掌兼得
  • TDuckX 2.6 正式发布|API 能力开放,核心表单逻辑重构,多项实用功能上线。
  • LeetCode Hot100刷题——除自身以外数组的乘积
  • JAVA EE(进阶)_进阶的开端
  • PDF批量合并拆分+加水印转换 编辑 加密 OCR 识别
  • Go语言交替打印问题及多种实现方法
  • ArcGIS Pro调用多期历史影像
  • 10.11 LangGraph多角色Agent开发实战:生产级AI系统架构与性能优化全解析