I recently made the discovery that all my VMs have the same volume group name – the default that is given when CentOS is installed. My OCD got the best of me and I set out to change these names to reflect the hostname. The problem is if you rename the volume group containing the root partition, the system will not boot.
The solution is to run a series of commands to get things updated. Thanks to the centOS forums for the information. In my case I had already made the mistake of renaming the group and ending up with an unbootable system. This is what you have to do to get it working again:
Boot into a Linux rescue shell (from the installer DVD, for example) and activate the volume groups (if not activated by default)
vgchange -ay
Mount the root and boot volumes (replace VG_NAME with name of your volume group and BOOT_PARTITION with the device name of your boot partition, typically sda1)
mount /dev/VG_NAME/root /mnt mount /dev/BOOT_PARTITION /mnt/boot
Mount necessary system devices into our chroot:
mount --bind /proc /mnt/proc mount --bind /dev /mnt/dev mount --bind /sys /mnt/sys
Chroot into our broken system:
chroot /mnt/ /bin/bash
Modify fstab and grub files to reflect new volume group name:
sed -i /etc/fstab -e 's/OLD_VG_NAME/NEW_VG_NAME/g' sed -i /etc/default/grub -e 's/OLD_VG_NAME/NEW_VG_NAME/g' sed -i /boot/grub2/grub.cfg -e 's/OLD_VG_NAME/NEW_VG_NAME/g'
Run dracut to modify boot images:
dracut -f
Remove your recovery boot CD and reboot into your newly fixed VM
exit reboot
If you want to avoid having to boot into a recovery environment, do the following steps on the machine whose VG you want to rename:
Rename the volume group:
vgrename OLD_VG_NAME NEW_VG_VAME
Modify necessary boot files to reflect the new name:
sed -i /etc/fstab -e 's/OLD_VG_NAME/NEW_VG_NAME/g' sed -i /etc/default/grub -e 's/OLD_VG_NAME/NEW_VG_NAME/g' sed -i /boot/grub2/grub.cfg -e 's/OLD_VG_NAME/NEW_VG_NAME/g'
Rebuild boot images:
dracut -f