I am trying to create a custom CentOS image to be used as an image for Openstack Ironic. I am following the guide here: https://docs.openstack.org/image-guide/centos-image.html. I created the image, and deploy it on my baremetal server. On the ironic side it seems that it has successfully 'dd' the image into the server. But when the server boots up, it can't find any of the partitions with the error /dev/disk/by-uuid/XXXX does not exist
. I am able to boot it to rescue mode, but I am clueless on what to do to debug it.
I also used the same procedure to deploy custom Ubuntu Image, and it seems to work perfectly fine. Does anyone have any suggestions to solve this?
Okay, after much tinkering, I have found the problem. This is more of a CentOS7 problem than an openstack problem.
I have found the kickstart script that generates the CentOS cloud build (https://github.com/CentOS/sig-cloud-instance-build/blob/master/cloudimg/CentOS-7-x86_64-GenericCloud-201606-r1.ks). Turns out that they included the
dracut-config-generic
package which my custom CentOS image did not include. After some google searching work, I found this link (https://www.systutorials.com/docs/linux/man/8-dracut/) stated that:Without
dracut-config-generic
, the images can only run in the virtualised environment I set up. So after adding this package, I can successfully deploy it through openstack ironic successfully.Hope this helps anyone that was trying on this.