You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何在不破坏LVM2分区的前提下扩容RHEL8的XFS格式Boot分区(/dev/sda2)

如何在不破坏LVM2分区的前提下扩容RHEL8的XFS格式Boot分区(/dev/sda2)

嘿Lucas,我来帮你搞定这个扩容Boot分区的问题!先给你吃个定心丸——完全可以在不破坏LVM2分区的前提下完成操作,只是因为Boot分区(/dev/sda2)右边紧挨着LVM物理卷(/dev/sda3),得先给LVM分区“挪个地方”腾出空间,咱们一步步来:

一、操作前的核心准备:全量备份!

这步绝对不能省,磁盘分区操作有风险,哪怕是最熟练的管理员也会先备份。你可以:

  • 用外接存储设备,通过dd if=/dev/sda of=/mnt/external/backup.img把整个磁盘镜像备份(如果空间足够的话)
  • 至少备份Boot分区内容:cp -a /boot/* /mnt/external/boot-backup/,同时备份LVM里的关键数据

二、进入RHEL8救援模式(必须离线操作)

因为要修改正在使用的磁盘分区和LVM物理卷,不能在系统正常运行时操作,得用救援模式启动:

  1. 插入RHEL8安装介质(U盘/光盘),从它启动
  2. 选择“Troubleshooting”(故障排除)选项,再选“Rescue a RHEL system”(救援RHEL系统)
  3. 进入救援环境后,选择“3) Skip to shell”(跳过挂载系统,直接进入命令行),这样磁盘处于未挂载状态,才能安全修改

三、先处理LVM物理卷,腾出Boot分区的扩容空间

1. 确认磁盘和LVM状态

  • 查看分区表,确认分区布局:
    fdisk -l /dev/sda
    
    你会看到/dev/sda2是Boot分区,/dev/sda3是LVM物理卷,记录下sda3的起始扇区,以及要扩容的1GiB对应的扇区数(1GiB=2097152个512字节扇区)
  • 查看LVM物理卷的空闲空间:
    pvs /dev/sda3
    
    重点看Free PE / Size这一列,确保有至少1GiB的空闲空间。如果没有空闲空间,你需要先给某个LVM逻辑卷缩容(注意:XFS格式的逻辑卷不能缩容,如果是ext4可以先缩文件系统再缩逻辑卷;如果你的LVM里全是XFS卷,那可能需要临时挂载外接存储转移部分数据腾出空间)

2. 把LVM物理卷左侧的1GiB数据移到右侧

用LVM原生的pvmove命令,把/dev/sda3开头1GiB区域里的物理扩展块(PE)全部移到物理卷的右侧空闲区:

# 假设PE大小是4MiB,1GiB对应256个PE,所以移动0-255号PE
pvmove --alloc anywhere /dev/sda3:0-255

等待命令执行完成,这时候/dev/sda3的开头1GiB区域就没有数据了,相当于给Boot分区“让”出了空间

3. 调整LVM物理卷的分区边界

现在可以修改/dev/sda3的分区起始位置,把它往右挪1GiB:

  1. 运行fdisk /dev/sda进入分区编辑模式

  2. 输入d删除原来的/dev/sda3分区

  3. 输入n创建新的主分区:

    • 分区类型选p(主分区)
    • 分区号选3(保持和原来一致)
    • 起始扇区输入「原来的sda3起始扇区 + 2097152」(也就是1GiB之后的位置)
    • 结束扇区直接按回车,保持和原来的分区结束位置一致
  4. 输入t更改分区类型为LVM:

    • 输入分区号3
    • 输入8e(LVM分区的类型代码)
  5. 输入w保存分区表,退出fdisk

  6. 让LVM识别新的物理卷边界:

pvresize /dev/sda3

四、扩容Boot分区(/dev/sda2)

现在LVM分区已经挪好位置,Boot分区右侧有了1GiB的空闲空间,开始扩容:

  1. 运行fdisk /dev/sda进入分区编辑模式
  2. 输入d删除原来的/dev/sda2分区
  3. 输入n创建新的主分区:
    • 分区类型选p(主分区)
    • 分区号选2(保持和原来一致)
    • 起始扇区输入原来的sda2起始扇区(必须和原来完全一样,不然Boot会失效)
    • 结束扇区输入「原来的sda2结束扇区 + 2097152」(增加1GiB空间)
  4. 输入t更改分区类型为Linux:
    • 输入分区号2
    • 输入83(Linux分区的类型代码)
  5. 输入w保存分区表,退出fdisk

2. 扩容XFS格式的Boot分区

RHEL8的Boot分区默认是XFS格式,XFS只能扩容不能缩容,用以下命令完成文件系统扩容:

xfs_growfs /dev/sda2

五、验证操作结果

  1. 输入reboot重启系统,移除安装介质,从硬盘正常启动
  2. 进入系统后,检查Boot分区大小:
    df -h /boot
    
    你会看到/dev/sda2的容量已经增加了1GiB
  3. 检查LVM状态,确认所有逻辑卷正常:
    lvdisplay
    
    确保所有LVM卷都能正常挂载,数据没有丢失

备注:内容来源于stack exchange,提问作者Lucas Rey

火山引擎 最新活动