虚拟机模版通常只划分100GB系统LVM架构、XFS分区后续根据新上线业务系统需要再添加指定大小的数据盘创建新虚拟机实现快速统一标准的系统搭建(集成VMtools、杀毒软件、运维监控软件、配置日志留存大于6个月)。一、完整实操步骤原有 VGopeneuler仅 PV /dev/sda3VG 内无剩余空间新磁盘裸盘 /dev/sdb 100GiB无分区、无文件系统目标将 sdb 作为新 PV 扩容进openeuler卷组新建 100G 逻辑卷挂载 /data步骤 1创建物理卷 PV /dev/sdb# 把整块sdb初始化为LVM物理卷pvcreate /dev/sdb# 校验PV生成pvdisplay执行后会多出一条 PV 记录/dev/sdb步骤 2扩容现有卷组 openeuler把 sdb 加入 VG# 将新PV /dev/sdb 添加到卷组openeulervgextend openeuler /dev/sdb# 查看VG扩容后总容量确认多出100G空间vgdisplay openeuler执行后 Free PE / Size 会出现约 100GiB 空闲空间。步骤 3在 openeuler 卷组新建逻辑卷 lvdata占用全部 100G# -n lvdata逻辑卷名称-L 100G分配100GB空间lvcreate -n lvdata -L 100G openeuler# 验证逻辑卷lvdisplay /dev/openeuler/lvdata生成设备路径/dev/mapper/openeuler-lvdata步骤 4格式化 XFS 文件系统openEuler 默认文件系统mkfs.xfs /dev/mapper/openeuler-lvdata若需要 ext4替换为 mkfs.ext4 /dev/mapper/openeuler-lvdata步骤 5创建挂载目录并临时挂载测试# 创建/data目录mkdir -p /data# 临时挂载mount /dev/mapper/openeuler-lvdata /data# 查看挂载是否生效df -h输出列表能看到 /data 100G 分区即为正常。步骤 6配置 /etc/fstab 实现开机自动挂载6.1 获取逻辑卷 UUIDblkid /dev/mapper/openeuler-lvdata复制输出中 UUIDxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 整串 ID。6.2 编辑开机挂载配置文件vi /etc/fstab在文件末尾追加一行替换为你实际查到的 UUIDplaintextUUID你复制的UUID值 /data xfs defaults 0 0字段说明UUID分区唯一标识/data挂载目录xfs文件系统类型defaults默认挂载权限0dump 备份0开机磁盘自检6.3 校验 fstab 配置关键防止系统无法启动mount -a无任何报错代表配置正确若报错回到 fstab 检查 UUID、文件系统类型是否写错。步骤 7重启验证可选reboot# 重启后执行df -h确认 /data 自动挂载成功。配套常用排查 / 回滚命令操作失误时使用卸载 /data 删除逻辑卷清空重做场景umount /datalvremove /dev/openeuler/lvdata# 确认删除输入y从 VG 移除 sdb 硬盘vgreduce openeuler /dev/sdbpvremove /dev/sdb补充说明本次直接使用整块磁盘 /dev/sdb 做 PV无需分区如果业务规范要求分区先执行 fdisk /dev/sdb 分一个 8e 类型分区 /dev/sdb1后续所有命令替换为 /dev/sdb1 即可。当前原有 VG openeuler 原本无空闲空间加入 sdb 后才有空间新建 lvdata全程不会改动原有 root、swap、var_log 数据无丢失风险。二、完整实际运行代码---------------------------------收集设备信息------------------------------------------------Welcome to 6.6.0-145.3.15.146.oe2403sp3.x86_64System information as of time: Tue Jun 16 09:21:12 AM CST 2026[rootfdjj ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTSsda 8:0 0 100G 0 disk├─sda1 8:1 0 2M 0 part├─sda2 8:2 0 953M 0 part /boot└─sda3 8:3 0 98G 0 part├─openeuler-root 253:0 0 80G 0 lvm /├─openeuler-swap 253:1 0 8G 0 lvm [SWAP]└─openeuler-var_log 253:2 0 10G 0 lvm /var/logsdb 8:16 0 100G 0 disksr0 11:0 1 1024M 0 rom[rootfdjj ~]# pvdisplay--- Physical volume ---PV Name /dev/sda3VG Name openeulerPV Size 98.01 GiB / not usable 4.00 MiBAllocatable yesPE Size 4.00 MiBTotal PE 25089Free PE 1Allocated PE 25088PV UUID HjDpyj-OloV-wkmZ-pRHs-jd3y-lwb7-obmMes[rootfdjj ~]# vgdisplay--- Volume group ---VG Name openeulerSystem IDFormat lvm2Metadata Areas 1Metadata Sequence No 4VG Access read/writeVG Status resizableMAX LV 0Cur LV 3Open LV 3Max PV 0Cur PV 1Act PV 1VG Size 98.00 GiBPE Size 4.00 MiBTotal PE 25089Alloc PE / Size 25088 / 98.00 GiBFree PE / Size 1 / 4.00 MiBVG UUID j8U2nW-Cwy1-CXMf-WpkX-HxzI-3rPy-jHwXMn[rootfdjj ~]# lvdisplay--- Logical volume ---LV Path /dev/openeuler/rootLV Name rootVG Name openeulerLV UUID Pv1gxG-ybRi-PH8E-cOZB-PcDX-Qh4V-hzhsK0LV Write Access read/writeLV Creation host, time localhost.localdomain, 2026-06-15 10:24:28 0800LV Status available# open 1LV Size 80.00 GiBCurrent LE 20480Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:0--- Logical volume ---LV Path /dev/openeuler/swapLV Name swapVG Name openeulerLV UUID rlzALo-dLjU-Q1gt-gjFM-nFiU-ifV8-ALFcCuLV Write Access read/writeLV Creation host, time localhost.localdomain, 2026-06-15 10:24:30 0800LV Status available# open 2LV Size 8.00 GiBCurrent LE 2048Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:1--- Logical volume ---LV Path /dev/openeuler/var_logLV Name var_logVG Name openeulerLV UUID gP7eLF-HMEt-yAf5-2Vhh-avEV-a8DH-ztIKeBLV Write Access read/writeLV Creation host, time localhost.localdomain, 2026-06-15 10:24:31 0800LV Status available# open 1LV Size 10.00 GiBCurrent LE 2560Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:2---------------------------------添加新硬盘到目录------------------------------------------------[rootfdjj ~]# pvcreate /dev/sdbPhysical volume /dev/sdb successfully created.[rootfdjj ~]# pvdisplay--- Physical volume ---PV Name /dev/sda3VG Name openeulerPV Size 98.01 GiB / not usable 4.00 MiBAllocatable yesPE Size 4.00 MiBTotal PE 25089Free PE 1Allocated PE 25088PV UUID HjDpyj-OloV-wkmZ-pRHs-jd3y-lwb7-obmMes/dev/sdb is a new physical volume of 100.00 GiB--- NEW Physical volume ---PV Name /dev/sdbVG NamePV Size 100.00 GiBAllocatable NOPE Size 0Total PE 0Free PE 0Allocated PE 0PV UUID LCTFDy-Ig0U-7St3-Zx9V-sBS1-DOdn-xEShIC[rootfdjj ~]# vgextend openeuler /dev/sdbVolume group openeuler successfully extended[rootfdjj ~]# vgdisplay openeuler--- Volume group ---VG Name openeulerSystem IDFormat lvm2Metadata Areas 2Metadata Sequence No 5VG Access read/writeVG Status resizableMAX LV 0Cur LV 3Open LV 3Max PV 0Cur PV 2Act PV 2VG Size 198.00 GiBPE Size 4.00 MiBTotal PE 50688Alloc PE / Size 25088 / 98.00 GiBFree PE / Size 25600 / 100.00 GiBVG UUID j8U2nW-Cwy1-CXMf-WpkX-HxzI-3rPy-jHwXMn[rootfdjj ~]# lvcreate -n lvdata -L 100G openeulerLogical volume lvdata created.[rootfdjj ~]# mkfs.xfs /dev/mapper/openeuler-lvdatameta-data/dev/mapper/openeuler-lvdata isize512 agcount4, agsize6553600 blks sectsz512 attr2, projid32bit1 crc1 finobt1, sparse1, rmapbt1 reflink1 bigtime1 inobtcount1 nrext641data bsize4096 blocks26214400, imaxpct25 sunit0 swidth0 blksnaming version 2 bsize4096 ascii-ci0, ftype1log internal log bsize4096 blocks16384, version2 sectsz512 sunit0 blks, lazy-count1realtime none extsz4096 blocks0, rtextents0[rootfdjj ~]# mkdir -p /data[rootfdjj ~]# mount /dev/mapper/openeuler-lvdata /data[rootfdjj ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/openeuler-root 80G 4.9G 76G 7% /devtmpfs 4.0M 0 4.0M 0% /devtmpfs 32G 0 32G 0% /dev/shmtmpfs 4.0M 0 4.0M 0% /sys/fs/cgrouptmpfs 13G 8.7M 13G 1% /runtmpfs 32G 0 32G 0% /tmp/dev/mapper/openeuler-var_log 10G 244M 9.7G 3% /var/log/dev/sda2 920M 306M 551M 36% /boot/dev/mapper/openeuler-lvdata 100G 2.0G 98G 2% /data[rootfdjj ~]# blkid /dev/mapper/openeuler-lvdata/dev/mapper/openeuler-lvdata: UUIDbfe692e1-3b0c-43bc-babd-19479e6c638d BLOCK_SIZE512 TYPExfs修改/etc/fstab添加/data目录重启后自动挂载# /etc/fstab# Created by anaconda on Mon Jun 15 02:24:41 2026## 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.## After editing this file, run systemctl daemon-reload to update systemd# units generated from this file.#/dev/mapper/openeuler-root / xfs defaults 0 0UUID8bbcab8a-dea9-4922-a90e-9847f52cd141 /boot ext4 defaults 1 2/dev/mapper/openeuler-var_log /var/log xfs defaults 0 0/dev/mapper/openeuler-swap none swap defaults 0 0UUIDbfe692e1-3b0c-43bc-babd-19479e6c638d /data xfs defaults 0 0[rootfdjj ~]# mount -a[rootfdjj ~]# reboot[rootfdjj ~]# X shell closePress any key to reconnect---------------------------------重启验证自动挂载情况------------------------------------------------Authorized users only. All activities may be monitored and reported.Activate the web console with: systemctl enable --now cockpit.socketLast login: Tue Jun 16 09:21:12 2026 from 10.40.9.150Welcome to 6.6.0-145.3.15.146.oe2403sp3.x86_64System information as of time: Tue Jun 16 09:36:35 AM CST 2026System load: 0.58Memory used: .5%Swap used: 0%Usage On: 7%IP address: 10.40.1.195Users online: 1[rootfdjj ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/openeuler-root 80G 4.9G 76G 7% /devtmpfs 4.0M 0 4.0M 0% /devtmpfs 32G 0 32G 0% /dev/shmtmpfs 4.0M 0 4.0M 0% /sys/fs/cgrouptmpfs 13G 8.7M 13G 1% /runtmpfs 32G 0 32G 0% /tmp/dev/mapper/openeuler-var_log 10G 245M 9.7G 3% /var/log/dev/sda2 920M 306M 551M 36% /boot/dev/mapper/openeuler-lvdata 100G 2.0G 98G 2% /data[rootfdjj ~]#