From owner-freebsd-virtualization@FreeBSD.ORG Thu Oct 23 19:58:38 2014
Return-Path:
Delivered-To: freebsd-virtualization@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
[IPv6:2001:1900:2254:206a::19:1])
(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
(No client certificate requested)
by hub.freebsd.org (Postfix) with ESMTPS id 417195E5
for ; Thu, 23 Oct 2014 19:58:38 +0000 (UTC)
Received: from mail-yh0-x22f.google.com (mail-yh0-x22f.google.com
[IPv6:2607:f8b0:4002:c01::22f])
(using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits))
(Client CN "smtp.gmail.com",
Issuer "Google Internet Authority G2" (verified OK))
by mx1.freebsd.org (Postfix) with ESMTPS id 0248390B
for ; Thu, 23 Oct 2014 19:58:37 +0000 (UTC)
Received: by mail-yh0-f47.google.com with SMTP id c41so230386yho.34
for ; Thu, 23 Oct 2014 12:58:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
h=from:to:cc:subject:date:message-id:in-reply-to:references;
bh=W+Eoi72pkb5AePXuOAjLFNBX6kMmiiEryCb4l+h9S4o=;
b=xWrIsTBjCg59W7oR+LpkHsdJWfk+csWzjEN0UADmpyXATUzo/4jM/MU7wq0akaIhOl
Mwcere58LxE5vixTc87a4GZ94Fp9cyyg+OfuAFtx8vz4FN7X5ZfIabcW+wrI82pT2JDw
5dXVl7X0Cd6C2ObBgPmLINh21EnhfQdw0SpSbLYDkrOuV9eL2zkU4nPBLry9jPoPrUPE
es/WQzIgloJUVmmA7xJXzyzu+eHkOEHrRLwpwidCF8sZ3LePQEBqgot+3UT0SAMaZkoL
idtExYtIhYNY92FlWDiAtLMxMSE69GiJxWa4ssDYVdAK9zdNKauIOHUVqYUiuaaxStl4
331w==
X-Received: by 10.170.150.197 with SMTP id r188mr927554ykc.1.1414094317201;
Thu, 23 Oct 2014 12:58:37 -0700 (PDT)
Received: from m.west.isilon.com (c-98-209-117-232.hsd1.mi.comcast.net.
[98.209.117.232])
by mx.google.com with ESMTPSA id x9sm2642586igl.10.2014.10.23.12.58.35
for
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Thu, 23 Oct 2014 12:58:36 -0700 (PDT)
From: Conrad Meyer
To: libvir-list@redhat.com
Subject: [PATCH 1/2] bhyve: Support /domain/bootloader configuration for
non-FreeBSD guests.
Date: Thu, 23 Oct 2014 15:58:03 -0400
Message-Id: <1414094284-29055-2-git-send-email-cse.cem@gmail.com>
X-Mailer: git-send-email 1.9.3
In-Reply-To: <1414094284-29055-1-git-send-email-cse.cem@gmail.com>
References: <1414094284-29055-1-git-send-email-cse.cem@gmail.com>
Cc: Conrad Meyer , freebsd-virtualization@freebsd.org
X-BeenThere: freebsd-virtualization@freebsd.org
X-Mailman-Version: 2.1.18-1
Precedence: list
List-Id: "Discussion of various virtualization techniques FreeBSD supports."
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Thu, 23 Oct 2014 19:58:38 -0000
Also, flip Bhyve /domain/os/type support from HVM to Xen. Bhyve only
supports paravirtualized guests, and 'xen' is closest to that. We still
default to bhyveloader(1) if no explicit bootloader configuration is
supplied in the domain.
If the /domain/bootloader looks like grub-bhyve and the user doesn't
supply /domain/bootloader_args, we make an intelligent guess and try
chainloading the first partition on the disk.
Caveats:
- We can't install from CD without explicit bootloader_args.
- We leave a device.map file lying around in /tmp. I don't see a good
way not to do so without reworking the API somewhat.
Sponsored by: EMC / Isilon storage division
Signed-off-by: Conrad Meyer
---
docs/drvbhyve.html.in | 30 +++++-
docs/formatdomain.html.in | 4 +-
po/libvirt.pot | 4 +
src/bhyve/bhyve_capabilities.c | 2 +-
src/bhyve/bhyve_command.c | 107 +++++++++++++++++++--
tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.xml | 2 +-
tests/bhyvexml2argvdata/bhyvexml2argv-base.xml | 2 +-
tests/bhyvexml2argvdata/bhyvexml2argv-console.xml | 2 +-
.../bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.xml | 2 +-
.../bhyvexml2argv-disk-virtio.xml | 2 +-
tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.xml | 2 +-
tests/bhyvexml2argvdata/bhyvexml2argv-metadata.xml | 2 +-
tests/bhyvexml2argvdata/bhyvexml2argv-serial.xml | 2 +-
.../bhyvexml2xmlout-metadata.xml | 2 +-
14 files changed, 139 insertions(+), 26 deletions(-)
diff --git a/docs/drvbhyve.html.in b/docs/drvbhyve.html.in
index 39afdf5..c6c79d7 100644
--- a/docs/drvbhyve.html.in
+++ b/docs/drvbhyve.html.in
@@ -37,8 +37,7 @@ bhyve+ssh://root@example.com/system (remote access, SSH tunnelled)
Example config
The bhyve driver in libvirt is in its early stage and under active development. So it supports
-only limited number of features bhyve provides. All the supported features could be found
-in this sample domain XML.
+only limited number of features bhyve provides.
@@ -50,13 +49,13 @@ up to 31 PCI devices.
<domain type='bhyve'>
- <name>bhyve</name>
- <uuid>df3be7e7-a104-11e3-aeb0-50e5492bd3dc</uuid>
+ <name>bhyve</name>
+ <uuid>df3be7e7-a104-11e3-aeb0-50e5492bd3dc</uuid>
<memory>219136</memory>
<currentMemory>219136</currentMemory>
<vcpu>1</vcpu>
<os>
- <type>hvm</type>
+ <type>xen</type>
</os>
<features>
<apic/>
@@ -157,5 +156,26 @@ An example of domain XML device entry for that will look like:
Please refer to the Storage documentation for more details on storage
management.
+
+
+It's possible to boot non-FreeBSD guests by specifying an explicit
+bootloader, e.g. grub-bhyve(1)
. Arguments to the bootloader may be
+specified as well. If no arguments are given and bootloader is
+grub-bhyve
, libvirt will try and boot from the first partition of
+the disk image.
+
+
+ ...
+ <bootloader>/usr/local/sbin/grub-bhyve</bootloader>
+ <bootloader_args>...</bootloader_args>
+ ...
+
+
+(Of course, to install from a CD a user will have to supply explicit
+arguments to grub-bhyve
.)
+
+Caveat: bootloader_args
does not support any quoting.
+Filenames, etc, must not have spaces or they will be tokenized incorrectly.
+