Generating CentOS image for Openstack Ironic Boot Failure

647 Views Asked by At

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?

1

There are 1 best solutions below

0
On BEST ANSWER

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:

On RHEL-7 the hostonly mode is the default mode. Generic "non-hostonly" images are created, if the dracut-config-generic rpm is installed. The rescue kernel entry in the bootloader menu is also a generic image.

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.