Hi All,
In the last few days, I've been working on leveraging a pluggable mechanism
that is going to be introduced for muCommander [1] to provide a front-end
for libguestfs.
I published a video [2] that demonstrates this integration: enabling to
browse/upload-to/download-from virtual disks via a file manager with a
dual-pane interface.
I've followed the guidelines for inspecting the disk's file system(s) I got
on IRC (thanks Richard!). The code is available at [3], mostly in
LibguestfsFile.java.
However, as one can see in the video, it takes a pretty long time to
inspect the disk (in order to find the operating system) and to mount the
file systems. So it takes me back to the filesystem_walk function as I read
in [4] that it allows inspecting the metadata without mounting the disk
partition(s). Unfortunately, I didn't manage to try that function due to
the following error I get when trying to use it (tried on Fedora 28 & 29):
Exception in thread "main" com.redhat.et.libguestfs.LibGuestFSException:
internal_filesystem_walk: feature 'libtsk' is not available in this
build of libguestfs. Read 'AVAILABILITY' in the guestfs(3) man page for
how to check for the availability of features.
at com.redhat.et.libguestfs.GuestFS._filesystem_walk(Native Method)
at com.redhat.et.libguestfs.GuestFS.filesystem_walk(GuestFS.java:6010)
at test.Main.main(Main.java:27)
Is that right that the filesystem_walk doesn't require mounting the disk
partition(s)? If that's true, can we publish a version that supports that
in the Fedora repo?
And another question, the upload/download API requires to provide a remote
file and a file on the hosting file system. I currently use a temporary
local file that is passed as input (in case of upload) or output (in case
of download) for libguestfs. But I've noticed that by specifying "-",
libguestfs reads from stdin/writes to stdout. Do you have any experience in
using this to inject/retrieve data directly from/to a Java application
(that holds an input/output stream at hand) without going through the disk?
[1]
http://www.mucommander.com
[2]
https://youtu.be/_ykVRSuKFwc
[3]
https://github.com/ahadas/mucommander/tree/osgi/mucommander-libguestfs/sr...
[4]
https://www.redhat.com/archives/libguestfs/2016-June/msg00051.html