我正在尝试创建一个自定义的CentOS映像,以用作Openstack Ironic的映像。我在这里遵循指南:https://docs.openstack.org/image-guide/centos-image.html。我创建了映像,并将其部署到裸机服务器上。具有讽刺意味的是,它似乎已成功将映像“ dd”放入服务器。但是,当服务器启动时,它找不到错误为/dev/disk/by-uuid/XXXX does not exist
的任何分区。我可以将其引导到救援模式,但是对于调试它的方法我一无所知。
我还使用相同的过程来部署自定义Ubuntu Image,它似乎运行得很好。有没有人有解决此问题的建议?
答案 0 :(得分:1)
好吧,经过很多修补,我发现了问题所在。这更多的是CentOS7问题,而不是开放堆栈问题。
我已经找到了生成CentOS云构建(https://github.com/CentOS/sig-cloud-instance-build/blob/master/cloudimg/CentOS-7-x86_64-GenericCloud-201606-r1.ks)的kickstart脚本。原来,它们包含了dracut-config-generic
软件包,而我的自定义CentOS映像没有包含该软件包。经过一些Google搜索工作,我发现此链接(https://www.systutorials.com/docs/linux/man/8-dracut/)指出:
在RHEL-7上,仅主机模式是默认模式。如果安装了dracut-config-generic rpm,则将创建常规的“非仅限主机”映像。 Bootloader菜单中的救援内核条目也是通用映像。
没有dracut-config-generic
,图像只能在我设置的虚拟环境中运行。因此,添加此程序包后,我可以成功地通过openstack具有讽刺意味的方式成功部署它。
希望这对尝试此操作的人有所帮助。