Linux系统使用LVM挂载硬盘全过程

 更新时间:2025年11月20日 08:49:55   作者:水步天  
文章介绍了在CentOS Linux 7.6上使用LVM配置新硬盘为逻辑卷的过程,包括确认硬盘、创建分区、初始化物理卷、创建卷组、创建逻辑卷、格式化并挂载逻辑卷以及设置开机自动挂载

1. 背景

在服务器运维中,经常需要挂载或者扩展存储空间。

LVM(Logical Volume Manager)是Linux下强大的磁盘管理工具,支持动态调整分区大小、快照、RAID等功能。

本文将详细介绍如何在CentOS Linux 7.6上添加一块新的500GB硬盘,并进行LVM配置为以后扩容做准备。

2. 准备工作

  • 操作系统:CentOS Linux 7.6
  • 新硬盘:500GB
  • 分区表类型:GPT(支持大于2TB的磁盘,并具有更好的兼容性)
  • 目标:将新硬盘初始化为LVM,并挂载到 /data 目录

3. 操作过程

3.1. 确认硬盘

首先,用lsblk命令检查系统是否识别了新磁盘:

[hljkjc@hljkjc ~]$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0  200G  0 disk 
├─vda1 253:1    0    4G  0 part [SWAP]
└─vda2 253:2    0  196G  0 part /
vdb    253:16   0  500G  0 disk 

切换到root账号操作,或者用fdisk -l命令查看:

[hljkjc@hljkjc ~]$ fdisk -l
Disk /dev/vda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bcc64

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1            2048     8390655     4194304   82  Linux swap / Solaris
/dev/vda2   *     8390656   419430366   205519855+  83  Linux

Disk /dev/vdb: 536.9 GB, 536870912000 bytes, 1048576000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

可以看到系统新添加的物理硬盘为/dev/vdb,容量为536.9GiB

3.2. 创建新分区

使用 fdiskparted 创建 LVM 分区(以 fdisk 为例):

fdisk /dev/vdb

在交互界面中按顺序输入:

  • 1)n → 新建分区;
  • 2)p → 创建主分区;
  • 3)1 → 分区号(默认1);
  • 4) 起始扇区(直接回车,默认);
  • 5)结束扇区(直接回车,使用全部空间);
  • 6) t → 修改分区类型 ;
  • 7)8e → 设置为 LVM 类型(Linux LVM);
  • 8)w → 保存并退出
[root@hljkjc hljkjc]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xa7b107d2.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-1048575999, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1048575999, default 1048575999): 
Using default value 1048575999
Partition 1 of type Linux and of size 500 GiB is set

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): L

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix      
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@hljkjc hljkjc]# 

完成验证区

[root@hljkjc hljkjc]# fdisk -l /dev/vdb

Disk /dev/vdb: 536.9 GB, 536870912000 bytes, 1048576000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xa7b107d2

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048  1048575999   524286976   8e  Linux LVM

3.3. 创建物理卷(PV)

/dev/vdb 初始化为LVM物理卷:

[root@hljkjc hljkjc]#pvcreate /dev/vdb1
bash: pvcreate: command not found
# 安装lvm2
[root@hljkjc hljkjc]#yum install lvm2
# 安装成功后重新执行 `pvcreate /dev/vdb1`
[root@hljkjc hljkjc]# pvcreate /dev/vdb1
  Physical volume "/dev/vdb1" successfully created.
[root@hljkjc hljkjc]#

查看PV:

[root@hljkjc hljkjc]# pvcreate /dev/vdb1
  Physical volume "/dev/vdb1" successfully created.
[root@hljkjc hljkjc]# pvdisplay
  "/dev/vdb1" is a new physical volume of "<500.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/vdb1
  VG Name               
  PV Size               <500.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               9y6duM-vEfU-QjqW-ClfA-CPG1-xm9T-XqZHQC

3.4. 创建卷组(VG)

将物理卷加入卷组,卷组名为 data_vg

[root@hljkjc hljkjc]# vgcreate data_vg /dev/vdb1
  Volume group "data_vg" successfully created
[root@hljkjc hljkjc]# 

查看VG:

[root@hljkjc hljkjc]# vgdisplay
  --- Volume group ---
  VG Name               data_vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <500.00 GiB
  PE Size               4.00 MiB
  Total PE              127999
  Alloc PE / Size       0 / 0   
  Free  PE / Size       127999 / <500.00 GiB
  VG UUID               gMQOlE-G48X-DV0k-fFRs-picr-n3JR-UrFbel
   
[root@hljkjc hljkjc]# 

3.5. 创建逻辑卷(LV)

在卷组中创建逻辑卷,这里命名为 data_lv,大小 100%VG:

[root@hljkjc hljkjc]# lvcreate -l 100%FREE -n data_lv data_vg
  Logical volume "data_lv" created.
[root@hljkjc hljkjc]# 

查看LV:

[root@hljkjc hljkjc]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/data_vg/data_lv
  LV Name                data_lv
  VG Name                data_vg
  LV UUID                De7jjl-UoF3-LfsC-XS6f-AOJ9-wy3D-S446k1
  LV Write Access        read/write
  LV Creation host, time hljkjc, 2025-09-12 14:29:03 +0800
  LV Status              available
  # open                 0
  LV Size                <500.00 GiB
  Current LE             127999
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:0
   
[root@hljkjc hljkjc]#

3.6. 格式化并挂载

3.6.1. 格式化

使用 ext4xfs 格式化LV,这里采用 xfs 进行格式化操作:

[root@hljkjc hljkjc]# mkfs.xfs /dev/data_vg/data_lv
meta-data=/dev/data_vg/data_lv   isize=512    agcount=4, agsize=32767744 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=131070976, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=63999, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@hljkjc hljkjc]#

3.6.2. 创建挂载点并挂载

[root@hljkjc hljkjc]# mkdir /data
[root@hljkjc hljkjc]# mount /dev/data_vg/data_lv /data
[root@hljkjc hljkjc]# df -Th
Filesystem                  Type      Size  Used Avail Use% Mounted on
devtmpfs                    devtmpfs   16G     0   16G   0% /dev
tmpfs                       tmpfs      16G     0   16G   0% /dev/shm
tmpfs                       tmpfs      16G  8.8M   16G   1% /run
tmpfs                       tmpfs      16G     0   16G   0% /sys/fs/cgroup
/dev/vda2                   ext4      193G  3.0G  182G   2% /
tmpfs                       tmpfs     3.2G     0  3.2G   0% /run/user/0
tmpfs                       tmpfs     3.2G     0  3.2G   0% /run/user/1000
/dev/mapper/data_vg-data_lv xfs       500G   33M  500G   1% /data
[root@hljkjc hljkjc]# 

3.6.3. 开机自动挂载

备份/etc/fstab文件

cp /etc/fstab{,.bak}

编辑 /etc/fstab

[root@hljkjc hljkjc]# echo "/dev/data_vg/data_lv		 /data       xfs     defaults        0 0" >> /etc/fstab
[root@hljkjc hljkjc]# 

重启服务器后验证:

[root@hljkjc hljkjc]# mount -a
[root@hljkjc hljkjc]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
devtmpfs                      16G     0   16G   0% /dev
tmpfs                         16G     0   16G   0% /dev/shm
tmpfs                         16G  8.7M   16G   1% /run
tmpfs                         16G     0   16G   0% /sys/fs/cgroup
/dev/vda2                    193G  3.0G  182G   2% /
/dev/mapper/data_vg-data_lv  500G   33M  500G   1% /data
tmpfs                        3.2G     0  3.2G   0% /run/user/1000
[root@hljkjc hljkjc]# df -h /data
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/data_vg-data_lv  500G   33M  500G   1% /data
[root@hljkjc hljkjc]# 

关键命令总结

名称命令示例
确认磁盘lsblk或 fdisk -l
创建分区fdisk /dev/sda→ 设置类型 8e
创建物理卷pvcreate /dev/vdb1
创建卷组vgcreate data_vg /dev/vdb1
创建逻辑卷lvcreate -l 100%FREE -n data_lv data_vg
格式化mkfs.xfs /dev/data_vg/data_lv
挂载mount /dev/data_vg/data_lv /data
开机挂载echo “…” >> /etc/fstab

注意事项

1)如果磁盘已存在数据,操作前请备份。

2)如需调整分区大小(如分配部分空间),可在 fdisk 中指定结束扇区。

3)LVM 允许动态扩展,未来可通过 lvextendresize2fs 调整容量。

完成上述步骤后,500GB 磁盘将作为 LVM 逻辑卷挂载到 /data 并可供使用。

总结

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

相关文章

  • Apache rewrite的重写相关的参数说明

    Apache rewrite的重写相关的参数说明

    Apache的rewrite的重写非常常用,现总结了一下.
    2008-08-08
  • CentOS 7下修改默认网卡名为eth0的两种方法

    CentOS 7下修改默认网卡名为eth0的两种方法

    今天又从Centos 6.5装回了Centos 7,毕竟还是要顺应潮流嘛。安装完成之后,发现发现CentOS 7默认的网卡名称是eno16777736,所以想着改回eth0,下面这篇文章主要介绍了CentOS 7下修改默认网卡名为eth0的两种方法,需要的朋友可以参考借鉴。
    2017-02-02
  • Linux lsof命令使用详解

    Linux lsof命令使用详解

    这篇文章主要介绍了Linux lsof命令使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • socket unix domain IPC的实例代码

    socket unix domain IPC的实例代码

    下面小编就为大家带来一篇socket unix domain IPC的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Linux下“/”和“~”的区别详解

    Linux下“/”和“~”的区别详解

    这篇文章主要介绍了Linux下“/”和“~”的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • VMware14.0.0版本虚拟机安装Ubuntu16.04 LTS版本Linux系统图文教程

    VMware14.0.0版本虚拟机安装Ubuntu16.04 LTS版本Linux系统图文教程

    这篇文章主要为大家详细介绍了VMware14.0.0版本虚拟机安装Ubuntu16.04 LTS版本Linux系统图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • APACHE 多站点配置方法

    APACHE 多站点配置方法

    有时候开多个站点下面是具体的配置参数,大家看下,应该就可以自由的增加网站了。
    2009-08-08
  • Linux 进程管理工具之Supervisor安装配置

    Linux 进程管理工具之Supervisor安装配置

    这篇文章主要为大家介绍了Linux 进程管理工具之Supervisor使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Linux上通过SSH挂载远程文件系统方法详解

    Linux上通过SSH挂载远程文件系统方法详解

    在本篇内容里小编给大家整理了关于在Linux上通过SSH挂载远程文件系统的相关知识点,需要的朋友们跟着学习下。
    2019-03-03
  • Linux SNMP团体号配置指定IP地址访问的方法

    Linux SNMP团体号配置指定IP地址访问的方法

    这篇文章主要介绍了如何配置SNMP服务以限制对服务器的访问,包括使用snmpd.conf文件和iptables防火墙,建议使用复杂的团体号,实施最小权限原则,并限制IP地址,通过这些方法,可以显著提高SNMP服务的安全性,需要的朋友可以参考下
    2025-11-11

最新评论