喵♂呜 的博客

一个刚毕业就当爹的程序猿 正在迷雾中寻找道路...

Linux的LVM扩容所遇到的坑

今天给服务器的一个LVM卷扩容 遇到了一个奇怪了问题 最后发现是个坑

问题描述

  • 之前这个硬盘是Windows下使用了 原来的分区并没有删除 只是格式化了其中一个分区给Linux
  • 最近Linux容量不够了 打算把之前Windows的C盘分区 添加到Linux的LVM里面
  • 一切按照预想中的操作进行
    • 因为这个盘本来就是没有挂载的 所以可以直接修改分区类型
    • 进入分区管理 fdisk /dev/sda
    • t 输入 8e (Linux的LVM分区类型)
    • w 保存分区表 这个时候提示重新读取分区表错误
    • 重启完成之后 vgextend centos /dev/sda1 添加到VG里面
    • 然后扩容LV lvextend -l +100%FREE /dev/mapper/centos-home
    • 然后刷新LV的容量 xfs_growfs /dev/mapper/centos-home
    • 到这里 提示错误 Re-reading the partition table failed with error 22

问题解决

  • 百度之后 发现我忘了添加VG的时候输入vgcreate 捂脸捂脸捂脸

  • 然后我就去减少LV的容量 lvresize -l -20G /dev/mapper/centos-home

  • 继续移除VG vgreduce centos /dev/sda1

  • 这个时候提示 Physical volume "/dev/sda1" still in use

  • 一脸懵比 什么鬼 大概浪费了20分钟左右 发现分区缩小的不够多 = =

  • 大概计算了一下 又缩减了 20G lvresize -L -20G /dev/mapper/centos-home

  • 然后继续移除 vgreduce centos /dev/sda1 成功了

  • ==============我是分割线===================

  • 创建VG pvcreate /dev/sda1

  • 扩展VG vgextend centos /dev/sda1

  • 调整LV大小 lvextend -l +100%FREE /dev/mapper/centos-home 把剩余的都加上

  • 重新调整文件系统 xfs_growfs /dev/mapper/centos-home

  • 这个时候提示 文件系统未挂载 xfs_growfs: /dev/mapper/centos-home is not a mounted XFS filesystem

  • 把LVM挂载回home mount /dev/mapper/centos-home /home

  • 重新调整文件系统

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [root@localhost /]# xfs_growfs /dev/mapper/centos-home
    meta-data=/dev/mapper/centos-home isize=256 agcount=4, agsize=2575104 blks
    = sectsz=512 attr=2, projid32bit=1
    = crc=0 finobt=0 spinodes=0
    data = bsize=4096 blocks=10300416, imaxpct=25
    = sunit=0 swidth=0 blks
    naming =version 2 bsize=4096 ascii-ci=0 ftype=0
    log =internal bsize=4096 blocks=5029, version=2
    = sectsz=512 sunit=0 blks, lazy-count=1
    realtime =none extsz=4096 blocks=0, rtextents=0
    data blocks changed from 10300416 to 23117824
  • 最后 查看容量 /dev/mapper/centos-home 89G 407M 88G 1% /home 已经扩容成功了

欢迎关注我的其它发布渠道