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

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.xdnf.cn/news/443143.html

相关文章:

  • QMK RGB矩阵灯效配置详解:从理论到实践(实操部分)
  • 共享代理IP vs 动态IP:企业级业务场景的选型深度解析
  • 通过Ollama读取模型
  • attention_weights = torch.ones_like(prompt_embedding[:, :, 0]):切片操作获取第二维度,第三维度
  • 速查 Linux 常用指令 II
  • 初识C++:类和对象(上)
  • Nexus首次亮相迪拜 TOKEN2049:以“手机 + 钱包 + 公链 + RWA”生态系统引领未来区块链基建
  • C++GO语言微服务之Dockerfile docker-compose②
  • Screen Mirroring App:轻松实现手机与电视的无缝投屏
  • idea springboot 配置文件 中文显示
  • OpenHarmony平台驱动开发(十七),UART
  • DFS算法的学习
  • PyTorch深度神经网络(前馈、卷积神经网络)
  • JVM调优实战
  • 面试--HTML
  • OpenCV CUDA模块中逐元素操作------逻辑运算
  • 代码随想录算法训练营第四十天
  • ubuntu24.04上安装NVIDIA driver+CUDA+cuDNN+Anaconda+Pytorch
  • Webpack其他插件
  • Emacs 折腾日记(二十三)——进一步提升编辑效率
  • Docker 疑难杂症解决指南:从入门到进阶的全面剖析
  • 第五章 LVGL 字库使用
  • 【测试】BUG
  • 深度理解指针(2)
  • map格式可以接收返回 fastjson2格式的数据 而不需要显示的转换
  • 占位符读取标准输入缓冲区规则
  • WEB安全--Java安全--CC1利用链
  • 生成式人工智能认证(GAI认证)官网 - 全国统一认证中文服务平台上线
  • [python] python中的魔法方法和属性
  • 【Python 异常处理】