Richard W.M. Jones 8f5e4f07ba inspection: Ignore btrfs snapshots of roots
In SLES guests in particular, btrfs snapshots seem to be used to allow
rollback of changes made to the filesystem.  Dozens of snapshots may
be present.  Technically therefore these are multi-boot guests.  The
libguestfs concept of "root" of an operating system does not map well
to this, causing problems in virt-inspector and virt-v2v.

In this commit we ignore these duplicates.  The test is quite narrow
to avoid false positives: We only remove a duplicate if it is a member
of a parent device, both are btrfs, both the snapshot and parent have
a root role, and the roles are otherwise very similar.

There may be a case for reporting this information separately in
future, although it's also easy to find this out now.  For example,
when you see a btrfs root device returned by inspect_os, you could
call btrfs_subvolume_list on the root device to list the snapshots.

Fixes: https://issues.redhat.com/browse/RHEL-93109
2025-05-27 17:01:09 +01:00
2025-05-09 15:52:30 +01:00
2025-05-11 21:29:23 +01:00
2025-05-10 18:29:40 +01:00
2025-02-16 17:00:46 +00:00
2025-02-16 17:00:46 +00:00
2025-02-16 17:00:46 +00:00
2021-04-09 14:27:11 +01:00
2025-02-16 17:00:46 +00:00
2025-02-16 17:00:46 +00:00
2025-02-16 17:00:46 +00:00
2025-02-16 16:57:43 +00:00
2025-02-16 17:00:46 +00:00
2025-02-16 17:00:46 +00:00
2025-05-20 14:57:59 +01:00
2025-05-20 14:57:59 +01:00
2025-02-16 17:00:46 +00:00
2025-02-16 17:00:46 +00:00
2025-02-16 17:00:46 +00:00
2025-04-29 19:05:07 +01:00
2018-02-22 15:06:13 +00:00
2021-04-08 11:36:40 +01:00
2023-11-16 10:38:59 +00:00
2013-01-24 15:00:49 +00:00
2025-03-22 12:41:39 +00:00
2020-01-14 16:21:22 +01:00
2025-05-20 14:57:59 +01:00
2019-11-13 12:49:55 +00:00
2025-02-16 17:00:46 +00:00
2025-02-16 17:00:46 +00:00

Libguestfs is tools and a library for accessing and modifying guest
disk images.  For more information see the home page:

  http://libguestfs.org/

For discussion, development, patches, etc. please use the mailing
list:

  https://lists.libguestfs.org

To find out how to build libguestfs from source, read:

  docs/guestfs-building.pod
  http://libguestfs.org/guestfs-building.1.html
  man docs/guestfs-building.1

Copyright (C) 2009-2025 Red Hat Inc.

The library is distributed under the LGPLv2+.  The programs are
distributed under the GPLv2+.  Please see the files COPYING and
COPYING.LIB for full license information.  The examples are under a
very liberal license.
Languages
C 42.7%
OCaml 35.5%
Shell 7.1%
Makefile 4%
Perl 2.6%
Other 8%