我有一个安装测试环境,偶尔会观察到导致卷组创建失败的问题。
测试开始时,磁盘包含四个分区。
# parted -l
Model: ATA Micron_5100_MTFD (scsi)
Disk /dev/sda: 480GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 525MB 524MB fat16 EFI system partition boot, esp
2 525MB 1050MB 524MB Linux filesystem
3 1050MB 33.3GB 32.2GB ext4 Linux LVM lvm
4 33.3GB 463GB 429GB Linux LVM lvm
目的是创建一个新的分区/dev/sda6
和卷组VG_TEST
。由于卷组可能在之前的测试中已经创建,因此首先进行预清理。
当问题出现时,vgremove
命令输出表明该组不存在,但是vgcreate
命令失败并显示错误,提示该组已存在。
# sgdisk --new=6:904849408:925820927 --change-name=6:TEST-FS /dev/sda
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.
# sleep 5
# partprobe /dev/sda
# vgremove -f VG_TEST
Volume group "VG_TEST" not found
Cannot process volume group VG_TEST
# rm -rf /dev/VG_TEST
# pvcreate -ffy /dev/sda6
Physical volume "/dev/sda6" successfully created.
# vgcreate VG_TEST /dev/sda6
/dev/VG_TEST: already exists in filesystem
Run `vgcreate --help' for more information.
(删除/dev/VG_TEST
是根据本文的建议添加的关联,但无论如何也无济于事。)
在测试结束时,收集了以下命令的输出。
此处显示了该组,但输出lsblk
中缺少该组。vgs
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 447.1G 0 disk
├─sda1 8:1 0 500M 0 part
├─sda2 8:2 0 500M 0 part
├─sda3 8:3 0 30G 0 part /var/lib/docker
├─sda4 8:4 0 400G 0 part
│ ├─VG_System-..
│ ..
└─sda6 8:6 0 10G 0 part
└─VG_TEST-sysimg 252:23 0 9G 0 lvm
sr0 11:0 1 1024M 0 rom
sr1 11:1 1 1024M 0 rom
# vgs
VG #PV #LV #SN Attr VSize VFree
VG_System 1 23 0 wz--n- <400.00g 138.87g
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda4 VG_System lvm2 a-- <400.00g 138.87g
/dev/sda6 lvm2 --- 10.00g 10.00g
什么原因导致了这个问题?如何正确清理卷组?
答案1
我在可移动媒体和重复卷组名称方面遇到了此问题。删除/dev/VG_TEST
您提到的内容是不够的,我还必须删除 中的所有条目/dev/mapper/VG_TEST-*
:
dmsetup remove VG_TEST-LV1 VG_TEST-LV2 ...
其中LV1
、LV2
、 ... 是 中的所有逻辑卷名称VG_TEST
。