本文共 761 字,大约阅读时间需要 2 分钟。
在openstack下创建windows虚机可能会出现do_hivex_close导致失败,下面具体说明。
报错信息如下:NovaException: Error mounting /var/lib/nova/instances/xxxxx/disk with libguestfs (hivex_close: do_hivex_close: you must call 'hivex-open' first to initialize the hivex handle)
hivex是提供给libguestfs api接口用以操作windows虚机内部文件的工具,nova则利用libguestfs来修改windows虚机内注册表等配置文件。
在redhat上也能看到相关bug记录,触发原因是镜像内出现异常(windows内注册表页异常),hivex发现这种这种异常就会调用do_hivex_close将hivex关闭,导致失败。
提供的patch方案:
在hivex >= 1.3.14 提供HIVEX_OPEN_UNSAFE标志位,用以处理遇到异常hive的时候强制打开hivex,根据这个机制,在ibguestfs API中增加对该标志位的映射。 bug讨论区在libguestfs-1.36.3版本验证已无此问题,所以如果有环境出现这个问题可以看下libguestfs版本信息,以做升级。小笨驴在吃草的时候创建了微信公众号,为方便更多觅食的“小笨驴”,为大家准备了大量的免费基础教学资料以及技术解决方案,还会定时发布一些好的技术文章,当然也会扯扯蛋、谈谈人生、呵呵,希望我们这群乐于分享技术的“小笨驴”团队越来越大!(技术干货分享群qq:128015753)