[Libguestfs] [PATCH] inspector: Fix virt-inspector on *BSD guests (RHBZ#1144138).

Pino Toscano ptoscano at redhat.com
Fri Oct 6 07:53:27 UTC 2017


On Thursday, 5 October 2017 23:49:26 CEST Richard W.M. Jones wrote:
> On Thu, Oct 05, 2017 at 06:55:53PM +0200, Pino Toscano wrote:
> > On Thursday, 5 October 2017 17:36:09 CEST Richard W.M. Jones wrote:
> > > ---
> > >  inspector/inspector.c | 12 +++++++++++-
> > >  1 file changed, 11 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/inspector/inspector.c b/inspector/inspector.c
> > > index 3583c61df..30d279987 100644
> > > --- a/inspector/inspector.c
> > > +++ b/inspector/inspector.c
> > > @@ -347,6 +347,7 @@ output_root (xmlTextWriterPtr xo, char *root)
> > >    char buf[32];
> > >    char *canonical_root;
> > >    size_t size;
> > > +  int is_bsd;
> > >  
> > >    XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "operatingsystem"));
> > >  
> > > @@ -362,6 +363,10 @@ output_root (xmlTextWriterPtr xo, char *root)
> > >    if (STRNEQ (str, "unknown"))
> > >      XMLERROR (-1,
> > >  	      xmlTextWriterWriteElement (xo, BAD_CAST "name", BAD_CAST str));
> > > +  is_bsd =
> > > +    STREQ (str, "freebsd") ||
> > > +    STREQ (str, "netbsd") ||
> > > +    STREQ (str, "openbsd");
> > >    free (str);
> > >  
> > >    str = guestfs_inspect_get_arch (g, root);
> > > @@ -451,8 +456,13 @@ output_root (xmlTextWriterPtr xo, char *root)
> > >  
> > >    /* We need to mount everything up in order to read out the list of
> > >     * applications and the icon, ie. everything below this point.
> > > +   *
> > > +   * XXX As a workaround for BSD guests, because the Linux kernel
> > > +   * driver cannot just mount a UFS filesystem, we must disable this
> > > +   * for all *BSD operating systems.  We cannot read the apps or icon
> > > +   * from *BSD anyway.
> > >     */
> > 
> > This is not true, libguestfs can actually read those properties.  The
> > proof of that is running virt-inspector with --no-applications, and
> > --no-icon shows the proper details (such as product name, mount points,
> > host name, etc) of the guest.
> 
> I'm a bit confused by this comment

I thought this was a workaround to the fact that mounting UFS partitions
can fail, without particular mount options:

  $ ./run virt-inspector -a freebsd-10.qcow2
  libguestfs: error: mount_ro: mount exited with status 32: mount: /sysroot: wrong fs type, bad option, bad superblock on /dev/sda2, missing codepage or helper program, or other error.

(this happens in inspect_mount_root, when mounting it to get the icon
of the guest, and to list the applications)

> - libguestfs inspection doesn't
> know anything about apps and icons from *BSD as far as I can see.
> This patch just (temporarily) makes it so that virt-inspection acts
> like --no-applications --no-icon if it sees as *BSD guest, until we
> think of a better way to do it.

There are various guests in the same situation -- e.g. Gentoo, Pardus,
Slackware.  I do not see why we should special-case *BSD guests, since
at most (short of fixing the re-mount issue explained above) there will
be no information extracted.

-- 
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20171006/db4e1fb3/attachment.sig>


More information about the Libguestfs mailing list