[Libguestfs] [PATCH] inspector: Fix virt-inspector on *BSD guests (RHBZ#1144138).
Richard W.M. Jones
rjones at redhat.com
Fri Oct 6 10:11:08 UTC 2017
On Fri, Oct 06, 2017 at 09:53:27AM +0200, Pino Toscano wrote:
> 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:
> > > > /* 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.
Correct.
> (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.
But Gentoo, Pardus & Slackware don't fail in the mount and so don't
need any workaround.
> 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.
This isn't correct. With this patch, instead of virt-inspector
printing nothing and failing with the mount error, you get the basic
information:
$ ./run virt-inspector /var/tmp/freebsd-11.1
<?xml version="1.0"?>
<operatingsystems>
<operatingsystem>
<root>/dev/sda5</root>
<name>freebsd</name>
<arch>x86_64</arch>
<distro>freebsd</distro>
<major_version>0</major_version>
<minor_version>0</minor_version>
<hostname></hostname>
<mountpoints>
<mountpoint dev="/dev/sda5">/</mountpoint>
</mountpoints>
<filesystems>
<filesystem dev="/dev/sda5">
<type>ufs</type>
<uuid>59d658ab7d5c137f</uuid>
</filesystem>
<filesystem dev="/dev/sda6"/>
</filesystems>
</operatingsystem>
</operatingsystems>
(There is still a problem with major = minor = 0 but I'm going to try
to fix that separately).
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
More information about the Libguestfs
mailing list