Linux添加新硬盘并加入原有分区的实现

 更新时间:2026年03月04日 09:03:04   作者:Marco1XIE  
文章介绍了如何在Linux系统中使用LVM(逻辑卷管理)来扩展分区空间,包括添加新硬盘、创建LVM分区、建立物理卷、将PV加入VG(卷组)以及调整LV(逻辑卷)大小,特别提到在调整根目录大小时遇到的问题,通过检查文件系统类型并使用相应工具(如xfs_growfs)解决了问题

1、先查看目前的分区详情

[root@XIEXC ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   24G  3.9G   21G   17% /
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G  8.7M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/xvda1              1014M  145M  870M   15% /boot
tmpfs                    378M     0  378M    0% /run/user/1001

2、虚拟机添加一块22g的硬盘,重启

重启确认添加成功,/dev/xvdc

[root@XIEXC ~]# fdisk -l
磁盘 /dev/xvdb:17.2 GB, 17179869184 字节,33554432 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc9a2cf65

    设备 Boot      Start         End      Blocks   Id  System
/dev/xvdb1            2048    33554431    16776192   8e  Linux LVM

磁盘 /dev/xvdc:23.6 GB, 23622320128 字节,46137344 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
.......

3、在新硬盘上创建Lvm分区

[root@XIEXC ~]# fdisk /dev/xvdc
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x1f64f006 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-46137343,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-46137343,默认为 46137343):
将使用默认值 46137343
分区 1 已设置为 Linux 类型,大小设为 22 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p
磁盘 /dev/xvdc:23.6 GB, 23622320128 字节,46137344 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x1f64f006
    设备 Boot      Start         End      Blocks   Id  System
/dev/xvdc1            2048    46137343    23067648   8e  Linux LVM

命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。

再次确认,查看分区:fdisk -l /dev/xvdc

[root@XIEXC ~]# fdisk -l /dev/xvdc
磁盘 /dev/xvdc:23.6 GB, 23622320128 字节,46137344 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x1f64f006
    设备 Boot      Start         End      Blocks   Id  System
/dev/xvdc1            2048    46137343    23067648   8e  Linux LVM

现已成功创建了LVM分区: /dev/xvdc1

4、建立物理卷,并将PV加入到源VG中

1)建立物理卷

[root@XIEXC ~]# pvcreate /dev/xvdc1
  Physical volume "/dev/xvdc1" successfully created.
查看原有VG,确认VGNAME为centos
[root@XIEXC ~]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  8
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               24.99 GiB
  PE Size               4.00 MiB
  Total PE              6398
  Alloc PE / Size       6398 / 24.99 GiB
  Free  PE / Size       0 / 0   
  VG UUID               HUD2hi-cbik-KDzt-SOFs-iSHe-5Xio-meRJOc

2)将PV加入到原有VG中

vgextend centos /dev/xvdc1

[root@XIEXC ~]# vgextend centos /dev/xvdc1
  Volume group "centos" successfully extended
[root@XIEXC ~]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <46.99 GiB
  PE Size               4.00 MiB
  Total PE              12029
  Alloc PE / Size       6398 / 24.99 GiB
  Free  PE / Size       5631 / <22.00 GiB
  VG UUID               HUD2hi-cbik-KDzt-SOFs-iSHe-5Xio-meRJOc

可以看到vg size和free size都变了

5、调整LV的空间

a.先调整大小,给根目录加2G

[root@XIEXC ~]# lvextend -L +2G /dev/mapper/centos-root
  Size of logical volume centos/root changed from 23.99 GiB (6142 extents) to 25.99 GiB (6654 extents).
  Logical volume centos/root successfully resized.

b、再resize2fs

resize2fs /dev/mapper/centos-root

报错:

resize2fs 1.42.9 (28-Dec-2013)

resize2fs: Bad magic number in super-block 当尝试打开 /dev/mapper/centos-root 时

找不到有效的文件系统超级块.

原因:

确认文件系统是否为xfs:

cat /etc/fstab | grep centos-root
/dev/mapper/centos-root /                       xfs     defaults        0 0

如果为xfs分区类型,用xfs_growfs

[root@XIEXC ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512    agcount=13, agsize=524032 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=6289408, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 6289408 to 6813696

最后确认下分区大小

[root@XIEXC ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   26G  3.9G   23G   15% /
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G  8.7M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/xvda1              1014M  145M  870M   15% /boot
tmpfs                    378M     0  378M    0% /run/user/1001

从24G升到26G,验证成功!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux终端提示符(prompt)不如期生效的原因分析与解决

    Linux终端提示符(prompt)不如期生效的原因分析与解决

    Linux命令行是系统管理员管理Linux的重要手段,我们管理Linux,首先要面对的就是Linux命令行提示符。下面这篇文章主要给大家介绍了Linux终端提示符(prompt)不如期生效的原因以及解决方法,需要的朋友可以参考下。
    2017-07-07
  • Linux安装多个jdk版本进行切换

    Linux安装多个jdk版本进行切换

    这篇文章主要为大家详细介绍了Linux安装多个jdk版本进行切换的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 在linux服务器上安装Jenkins

    在linux服务器上安装Jenkins

    Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用。本章教大家如何在linux服务器上安装Jenkins。
    2017-05-05
  • 制作PHP的RPM包详解及实例

    制作PHP的RPM包详解及实例

    这篇文章主要介绍了制作PHP的RPM包详解及实例的相关资料,为了方便源码包的安装,我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包,需要的朋友可以参考下
    2016-12-12
  • Linux中一对多配置日志服务器的详细步骤

    Linux中一对多配置日志服务器的详细步骤

    这篇文章主要介绍了Linux中一对多配置日志服务器步骤教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Linux自动化构建工具make/Makefile和git使用及说明

    Linux自动化构建工具make/Makefile和git使用及说明

    本文介绍Linux下的make工具与Makefile自动化构建、缓冲区刷新及git版本控制操作,涵盖依赖关系处理、PHONY修饰、提交流程等关键点
    2025-09-09
  • Apache Web 服务器的安装配置方法

    Apache Web 服务器的安装配置方法

    学习如何在 Apache 上托管你自己的网站,这是一个可靠、流行且易于配置的 Web 服务器。Apache Web 服务器的安装和配置必须以 root 身份执行,接下来通过本文给大家介绍Apache Web 服务器的安装配置方法,需要的朋友参考下吧
    2018-10-10
  • Mac通过不同终端SSH连接远程服务器的讲解

    Mac通过不同终端SSH连接远程服务器的讲解

    今天小编就为大家分享一篇关于Mac通过不同终端SSH连接远程服务器的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • centos7下安装java及环境变量配置技巧

    centos7下安装java及环境变量配置技巧

    现在我们常见的一些关于Linux的系统很多,但是使用的更多的一般都是CentOS和Ubuntu,今天我就来记录一下关于centos下java的安装和环境变量的配置,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • Linux下磁盘空间不足问题的处理方案

    Linux下磁盘空间不足问题的处理方案

    在Linux系统运维过程中,磁盘空间不足是最常见的问题之一,当系统提示"No space left on device"或通过df -h命令发现磁盘使用率接近100%时,系统性能会显著下降,本文将详细介绍Linux下磁盘空间不足问题的处理方案,需要的朋友可以参考下
    2025-04-04

最新评论