今天在一台母鸡上制作一个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名,导致整个引导路径发生了改变,因此需要修改引导
分别需要修改两个文件:
- /etc/fstab 此文件记录了linux系统文件系统的挂载点,更多释义请见自动挂载文件/etc/fstab功能详解
- /etc/grub2.cfg 此文件记录了linux的引导信息,例如引导文件路径、内核路径等等,更多释义请见GRUB2配置文件"grub.cfg"详解
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
版本的内核参数:
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
本文参考了: