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,验证成功!

总结

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

相关文章

  • Centos 7.4服务器时间同步配置方法【基于NTP服务】

    Centos 7.4服务器时间同步配置方法【基于NTP服务】

    这篇文章主要介绍了Centos 7.4服务器时间同步配置方法,结合实例形式分析了NTP服务器安装、启动、设置时间同步等相关命令及问题解决方法,需要的朋友可以参考下
    2019-03-03
  • 在Linux环境下安装Kafka

    在Linux环境下安装Kafka

    本文以安装Kafka的步骤做了图文详细介绍,Kafka是一种高吞吐量 的分布式发布订阅消息系统,对Kagka感兴趣的小伙伴可以参考参考本篇文章
    2021-08-08
  • linux如何为一台实例分配一个公网IP地址

    linux如何为一台实例分配一个公网IP地址

    在本篇文章中我们给大家分享了一篇关于linux如何为一台实例分配一个公网IP地址的知识内容,有需要的朋友们学习下。
    2018-10-10
  • Linux性能监控与调优方式详解

    Linux性能监控与调优方式详解

    本文系统介绍Linux性能监控与调优方法,涵盖CPU、内存、磁盘、网络等指标检测工具及优化策略,如进程绑定、I/O调度调整、TCP缓冲优化等,适用于性能问题诊断与解决
    2025-08-08
  • Linux主机ssh使用秘钥方式实现免登陆互通配置方式

    Linux主机ssh使用秘钥方式实现免登陆互通配置方式

    实现多台服务器间SSH免登陆的操作包括密钥生成、配置与传递,首先在每台主机上生成秘钥,并将公钥传输到对方主机的配置文件中,确保ssh服务开启并且authorized_keys文件具有正确的权限,即可实现免登陆互通,其中可能遇到的问题通常跟文件权限有关
    2024-10-10
  • Linux创建Shell脚本.sh文件的三种方法

    Linux创建Shell脚本.sh文件的三种方法

    本文详细介绍了在Linux系统中创建Shell脚本文件的几种方法,包括使用vim、nano编辑器和快速创建空文件,同时,强调了赋予脚本执行权限和建议将脚本放在/usr/local/bin/目录下的重要性,需要的朋友可以参考下
    2026-02-02
  • ubuntu服务器上快速部署docker的方法

    ubuntu服务器上快速部署docker的方法

    本篇文章主要介绍了ubuntu服务器上快速部署docker的方法,非常具有实用价值,需要的朋友可以参考下
    2017-07-07
  • 清除CentOS 6或CentOS 7上的磁盘空间的方法

    清除CentOS 6或CentOS 7上的磁盘空间的方法

    这篇文章主要介绍了清除CentOS 6或CentOS 7上的磁盘空间的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Linux与Windows编码不一致的解决方案

    Linux与Windows编码不一致的解决方案

    本篇文章给大家总结了Linux与Windows编码不一致的解决方法以及相关注意点,有需要的朋友参考下。
    2018-03-03
  • CentOS 安装 Mongodb详解(在线和离线)

    CentOS 安装 Mongodb详解(在线和离线)

    这篇文章主要介绍了CentOS 安装 Mogodb详解(在线和离线) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论