今天在一台母鸡上制作一个CentOS7系统模板,做完了才发现LVM分区的VG名称是和主机名一样的,既然是系统模板,所有东西还是规范些好,于是把该模板的 VG名和LV名都改了,顺手做个记录。

先了解一些背景知识以及名词的解释:

LVM (Logical Volume Manager ),即逻辑卷管理,更多释义请看LVM-百度百科
PV (physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。相当于RAID阵列中的磁盘单位。
VG (volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。
LV (logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。
PE (physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。
LE (logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
卷组描述区域:卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中逻辑卷、逻辑卷中物理区域的分配等所有信息,它是在使用pvcreate建立物理卷时建立的。

一、修改VG名

相关命令

  • lsblk 即list block列出所有可用块设备信息(可以理解为列出所有存储设备信息)
  • pvs -v 查看pv信息
  • vgs -v 查看vg信息

查看磁盘与挂载点:

[root@template-centos7_6_1810 ~]# lsblk
NAME                              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                 8:0    0   50G  0 disk 
├─sda1                              8:1    0    1G  0 part /boot
└─sda2                              8:2    0   49G  0 part 
  ├─centos_template--centos7-root 253:0    0 45.1G  0 lvm  /
  └─centos_template--centos7-swap 253:1    0  3.9G  0 lvm  [SWAP]
sr0                                11:0    1 1024M  0 rom

查看pv信息:

[root@template-centos7_6_1810 ~]# pvs -v
PV         VG                       Fmt  Attr  PSize    PFree  DevSize  PV UUID         
/dev/sda2  centos_template-centos7  lvm2 a--   <49.00g  4.00m  <49.00g  ZM2vmF-91Gu-hVAh-BZRn-3LdP-eDqL-7Aft0B

可见当前的卷名是centos_template--centos7,看着太别扭了~

查看vg信息:

[root@hyd024_dev03_4_24 ~]# vgs -v
VG     Attr   Ext   #PV #LV #SN VSize   VFree VG UUID                                VProfile
centos wz--n- 4.00m   1   2   0 <49.00g 4.00m 4k8yPR-zqpf-1S1Z-sy0B-Z4m5-ipkY-SOhMfi

建议使用UUID进行修改,避免在多VG重名时改错VG

避免页面排版问题,截个图

修改VG名命令:vgrename UUID newname
本文实际示例命令:vgrename 4k8yPR-zqpf-1S1Z-sy0B-Z4m5-ipkY-SOhMfi vg001

[root@template-centos7_6_1810 ~]# vgrename c07WDd-om1T-EfGp-7Dvb-8AcO-E8Jh-cKsvVC vg001
  Processing VG centos_template-centos7 because of matching UUID c07WDd-om1T-EfGp-7Dvb-8AcO-E8Jh-cKsvVC
  Volume group "c07WDd-om1T-EfGp-7Dvb-8AcO-E8Jh-cKsvVC" successfully renamed to "vg001"

可见系统提示vg名已成功更改为vg001,使用 vgs命令再看下

[root@template-centos7_6_1810 ~]# vgs
  VG    #PV #LV #SN Attr   VSize   VFree
  vg001   1   2   0 wz--n- <49.00g 4.00m

二、修改引导

因为我们修改了VG名,导致整个引导路径发生了改变,因此需要修改引导

分别需要修改两个文件:

1.确认vg名,lv路径

相关命令

  • lvm vgdisplay 查看vg信息(亦可使用vgs命令查看,用lvm命令查看较详细些,lv亦同)
  • lvm lvdisplay 查看lv信息

    vg信息:

    • 此处我们需要关注的是VG Name为vg001,即上文中修改的新vg名
    [root@template-centos7_6_1810 opt]# lvm vgdisplay
      --- Volume group ---
      VG Name               vg001
      System ID   
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                2
      Open LV               2
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               <49.00 GiB
      PE Size               4.00 MiB
      Total PE              12543
      Alloc PE / Size       12542 / 48.99 GiB
      Free  PE / Size       1 / 4.00 MiB
      VG UUID               c07WDd-om1T-EfGp-7Dvb-8AcO-E8Jh-cKsvVC

    lv信息:

    • 此处我们需要关注的是LV Path,即lv路径,修改/etc/fstab与/etc/grub2.cfg两个文件中,填写的就是此LV Path
      图中的两个路径分别就是使用lsblk打印的/分区与SWAP分区
    [root@template-centos7_6_1810 opt]# lvm lvdisplay
      --- Logical volume ---
      LV Path                /dev/vg001/swap
      LV Name                swap
      VG Name                vg001
      LV UUID                dG40q2-NCVR-2O2H-QfKr-0q2V-lsNW-s0tw1J
      LV Write Access        read/write
      LV Creation host, time template-centos7, 2020-09-03 17:08:10 +0800
      LV Status              available
      # open                 2
      LV Size                <3.88 GiB
      Current LE             992
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:1
    
      --- Logical volume ---
      LV Path                /dev/vg001/root
      LV Name                root
      VG Name                vg001
      LV UUID                XTcDz3-kOeR-6Q4R-ypvW-0hxI-aoPc-QQ6VS9
      LV Write Access        read/write
      LV Creation host, time template-centos7, 2020-09-03 17:08:11 +0800
      LV Status              available
      # open                 1
      LV Size                <45.12 GiB
      Current LE             11550
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:0

2.修改/etc/fstab

vim /etc/fstab

#
# /etc/fstab
# Created by anaconda on Thu Sep  3 17:08:11 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos_template--centos7-root /                       xfs     defaults        0 0
UUID=bb5724e7-077c-4b21-9cb7-62113758875e /boot                   xfs     defaults        0 0
/dev/mapper/centos_template--centos7-swap swap                    swap    defaults        0 0

可见路径是未修改vg前的路径,将路径中的vg名改为修改后的vg名即可:

/dev/mapper/vg001-root /                       xfs     defaults        0 0UUID=bb5724e7-077c-4b21-9cb7-62113758875e /boot                   xfs     defaults        0 0/dev/mapper/vg001-swap swap                    swap    defaults        0 0

前后对比:

/dev/mapper/centos_template--centos7-root/dev/mapper/vg001-root

3.修改/etc/grub2.cfg

*修改此文件时,只需要修改对应的内核版本与救援模式即可,例如我使用 3.10.0-1160.25.1版本的内核启动,只需要修改此内核的对应的路径,因为其他的旧内核我们是要卸载掉的。

vim /etc/grub2.cfg

同样的将路径中旧的vg名改为新vg名

本文中修改 3.10.0-1160.25.1版本的内核参数:

image-20210611230907022

menuentry 'CentOS Linux (3.10.0-1160.25.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-957.el7.x86_64-advanced-b857bf5b-84a9-4173-a343-d9848b8ac375' {        load_video        set gfxpayload=keep        insmod gzio        insmod part_msdos        insmod xfs        set root='hd0,msdos1'        if [ x$feature_platform_search_hint = xy ]; then          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  bb5724e7-077c-4b21-9cb7-62113758875e        else          search --no-floppy --fs-uuid --set=root bb5724e7-077c-4b21-9cb7-62113758875e        fi        linux16 /vmlinuz-3.10.0-1160.25.1.el7.x86_64 root=/dev/mapper/vg001-root ro crashkernel=auto rd.lvm.lv=vg001/root rd.lvm.lv=vg001/swap rhgb quiet LANG=en_US.UTF-8        initrd16 /initramfs-3.10.0-1160.25.1.el7.x86_64.img}

额外说一下,若想要在启动时显示详细的信息,将 rhgb quiet删除即可

修改救援模式内核的参数:

menuentry 'CentOS Linux (0-rescue-d5919f5939e844b39bf33e4622ee0496) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-d5919f5939e844b39bf33e4622ee0496-advanced-b857bf5b-84a9-4173-a343-d9848b8ac375' {        load_video        insmod gzio        insmod part_msdos        insmod xfs        set root='hd0,msdos1'        if [ x$feature_platform_search_hint = xy ]; then          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  bb5724e7-077c-4b21-9cb7-62113758875e        else          search --no-floppy --fs-uuid --set=root bb5724e7-077c-4b21-9cb7-62113758875e        fi        linux16 /vmlinuz-0-rescue-d5919f5939e844b39bf33e4622ee0496 root=/dev/mapper/vg001-root ro crashkernel=auto rd.lvm.lv=vg001/root rd.lvm.lv=vg001/swap        initrd16 /initramfs-0-rescue-d5919f5939e844b39bf33e4622ee0496.img}

修改完成之后保存,并重启,若能正常重启并登录系统,本次修改就是成功了。

重启进入系统后,再次运行 lsblk命令,可见vg名已经修改好了:

[root@template-centos7_6_1810 ~]# lsblkNAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsda              8:0    0   50G  0 disk ├─sda1           8:1    0    1G  0 part /boot└─sda2           8:2    0   49G  0 part   ├─vg001-root 253:0    0 45.1G  0 lvm  /  └─vg001-swap 253:1    0  3.9G  0 lvm  [SWAP]sr0             11:0    1 1024M  0 rom

本文参考了:

LVM逻辑卷------基础命令详解

Linux之LVM修改VG和LV名字

CentOS LVM 卷组改名

最后修改:2021 年 08 月 25 日
如果觉得我的文章对你有用,请随意赞赏