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/