Description of problem: libguestfs inspection doesn't work on recent Fedora/RHEL 7 guests if /usr is a separate partition. Because of UsrMove, /bin -> /usr/bin. Inspection of the root filesystem fails because /bin is a symlink but the target (ie. /usr/bin) does not exist as /usr is not on the same partition. libguestfs: trace: mount_ro "/dev/logger/rootvol" "/" libguestfs: trace: mount_ro = 0 libguestfs: trace: part_to_partnum "/dev/logger/rootvol" libguestfs: trace: part_to_partnum = -1 (error) libguestfs: trace: is_dir "/etc" libguestfs: trace: is_dir = 1 libguestfs: trace: is_dir "/bin" libguestfs: trace: is_dir = 0 libguestfs: trace: is_dir "/share" libguestfs: trace: is_dir = 0 libguestfs: trace: is_file "/grub/menu.lst" libguestfs: trace: is_file = 0 libguestfs: trace: is_file "/grub/grub.conf" libguestfs: trace: is_file = 0 libguestfs: trace: is_file "/grub2/grub.cfg" libguestfs: trace: is_file = 0 libguestfs: trace: is_file "/hurd/console" libguestfs: trace: is_file = 0 libguestfs: trace: is_symlink "/bin" libguestfs: trace: is_symlink = 1 libguestfs: trace: is_dir "/usr/bin" libguestfs: trace: is_dir = 0 libguestfs: trace: is_dir "/log" libguestfs: trace: is_dir = 0 libguestfs: trace: case_sensitive_path "/windows" libguestfs: trace: case_sensitive_path = "/windows" libguestfs: trace: case_sensitive_path "/windows/system32" libguestfs: trace: case_sensitive_path = NULL (error) libguestfs: trace: case_sensitive_path "/winnt" libguestfs: trace: case_sensitive_path = "/winnt" libguestfs: trace: case_sensitive_path "/winnt/system32" libguestfs: trace: case_sensitive_path = NULL (error) libguestfs: trace: case_sensitive_path "/win32" libguestfs: trace: case_sensitive_path = "/win32" libguestfs: trace: case_sensitive_path "/win32/system32" libguestfs: trace: case_sensitive_path = NULL (error) libguestfs: trace: case_sensitive_path "/win" libguestfs: trace: case_sensitive_path = "/win" libguestfs: trace: case_sensitive_path "/win/system32" libguestfs: trace: case_sensitive_path = NULL (error) libguestfs: trace: case_sensitive_path "/boot.ini" libguestfs: trace: case_sensitive_path = "/boot.ini" libguestfs: trace: is_file "/boot.ini" libguestfs: trace: is_file = 0 libguestfs: trace: case_sensitive_path "/System Volume Information" libguestfs: trace: case_sensitive_path = "/System Volume Information" libguestfs: trace: is_dir "/System Volume Information" libguestfs: trace: is_dir = 0 libguestfs: trace: case_sensitive_path "/System Volume Information" libguestfs: trace: case_sensitive_path = "/System Volume Information" libguestfs: trace: is_dir "/System Volume Information" libguestfs: trace: is_dir = 0 libguestfs: trace: case_sensitive_path "/FDOS" libguestfs: trace: case_sensitive_path = "/FDOS" libguestfs: trace: is_dir "/FDOS" libguestfs: trace: is_dir = 0 libguestfs: trace: umount_all libguestfs: trace: umount_all = 0 Version-Release number of selected component (if applicable): libguestfs 1.28.1 Additional info:
Created attachment 987636 [details] Reproducer: usrsplit.sh The attached script is a short but rather ugly script that reproduces the bug by creating a Fedora guest with a separate /usr partition.
*** Bug 1197407 has been marked as a duplicate of this bug. ***
Fixed with commit https://github.com/libguestfs/libguestfs/commit/1df34fd8d131dc577344550350077431f56e8bdc which is in libguestfs >= 1.33.16.
The fix was backported in libguestfs 1.32.4.
It looks like this bug was opened against the upstream package, which is why we "lost" it in RHEL. However the good news is that it's fixed in RHEL 7.3, and the packages are available now: https://people.redhat.com/~rjones/libguestfs-RHEL-7.3-preview/ http://oirase.annexia.org/virt-p2v/
(In reply to Richard W.M. Jones from comment #6) > It looks like this bug was opened against the upstream > package, which is why we "lost" it in RHEL. We didn't, as there's a counterpart bug for 7.2: bug 1318440.
(In reply to Pino Toscano from comment #4) > Fixed with commit > https://github.com/libguestfs/libguestfs/commit/ > 1df34fd8d131dc577344550350077431f56e8bdc > which is in libguestfs >= 1.33.16. To be more precise, there were 3 commits needed: (two small refactor patches, and the actual fix) https://github.com/libguestfs/libguestfs/commit/0c4edcecbaa82be2251d296e524e3bb50840ba9e https://github.com/libguestfs/libguestfs/commit/e77e1ef95ed79d34dfcbaa08e26a333462471899 https://github.com/libguestfs/libguestfs/commit/1d86b3768956f818262a5189bb1ba996dedbf531
*** Bug 1469339 has been marked as a duplicate of this bug. ***