[Libguestfs] [RFC] Inconsistent output of guestfs_list_filesystems
Richard W.M. Jones
rjones at redhat.com
Tue Jan 23 10:11:25 UTC 2018
On Tue, Jan 23, 2018 at 12:44:10AM +0200, Mykola Ivanets wrote:
> Before I rush to change something I request your comments on the subject.
> Let me know what do you think and if it does make sense.
>
> The issue: guesfs_list_filesystems is inconsistent in its output.
The concept of guestfs_list_filesystem is that it returns a list
something like the list that running ‘df’ inside a traditional Unix
would return, ie. a list of mounted filesystems backed by real
devices, plus swap.
That's not an exact definition. A better way to understand it might
be to look at how it is is used (ie. ‘git grep list[-_]filesystems’).
> For, example, it filters out partitioned physical devices but
> doesn't do the same for MD devices.
Yes, this is a bug. I agree that the approach in your patches
(ie. filtering out explicitly partitioned devices) is better than the
current ad-hoc approach of listing whole devices, then partitioned
devices, then trying to remove whole devices uses a complicated
StringSet operation.
> More over, according to its name and API documentation
> guestfs_list_filesystem should return something which potentially
> can be mounted (SWAP is an exclusion and it is stated in API doc).
> It is the reason partitioned physical devices are filtered out: they
> are not mountable even in theory (they don't contain filesystem if
> they contain partition(s)).
Yes.
> Another example of non-mountable block device is extended MSDOS partition.
Do we return extended partitions? I thought not ..
> Also nothing stops you from creating partition table and partitions
> on logical volume (yes, it is probably uncommon but
> nevertheless). In this case such partitions are ignored completely.
This is a bit of a corner case that we probably shouldn't spend too
much time on. Most ordinary Linux guests would also ignore these
(they probably indicate nested VMs).
> Yet another example is Windows dynamic disks aka LDM:
> guestfs_list_filesystems returns both ldm_vol_ and ldm_part_ but
> strongly speaking only volumes should be considered as mountables.
I think this is a bug too.
> And last example is again with Windows dynamic disks and their
> physical counterparts: guestfs_list_filesystems filters out disks
> with MBR type byte 0x42 but what about GPT?
Again, likely to be a bug.
More comments in the patches ...
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