提交 f6b5ed5e 编写于 作者: J Jim Fehlig

Support network boot for HVM guests in libxl

The libxl driver ignored boot devices in the domain config,
preventing PXE booting HVM domains.  This patch accounts for
user-specified boot devices when building the libxl domain
configuration.
上级 32bef82a
......@@ -438,6 +438,8 @@ libxlMakeDomBuildInfo(virDomainDefPtr def, libxl_domain_config *d_config)
b_info->max_memkb = def->mem.max_balloon;
b_info->target_memkb = def->mem.cur_balloon;
if (hvm) {
char bootorder[VIR_DOMAIN_BOOT_LAST + 1];
libxl_defbool_set(&b_info->u.hvm.pae,
def->features & (1 << VIR_DOMAIN_FEATURE_PAE));
libxl_defbool_set(&b_info->u.hvm.apic,
......@@ -450,6 +452,34 @@ libxlMakeDomBuildInfo(virDomainDefPtr def, libxl_domain_config *d_config)
libxl_defbool_set(&b_info->u.hvm.hpet, 1);
}
}
for (i = 0 ; i < def->os.nBootDevs ; i++) {
switch (def->os.bootDevs[i]) {
case VIR_DOMAIN_BOOT_FLOPPY:
bootorder[i] = 'a';
break;
default:
case VIR_DOMAIN_BOOT_DISK:
bootorder[i] = 'c';
break;
case VIR_DOMAIN_BOOT_CDROM:
bootorder[i] = 'd';
break;
case VIR_DOMAIN_BOOT_NET:
bootorder[i] = 'n';
break;
}
}
if (def->os.nBootDevs == 0) {
bootorder[0] = 'c';
bootorder[1] = '\0';
}
else {
bootorder[def->os.nBootDevs] = '\0';
}
if ((b_info->u.hvm.boot = strdup(bootorder)) == NULL) {
virReportOOMError();
goto error;
}
/*
* The following comment and calculation were taken directly from
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册