[Libguestfs] guestfish and luks-format

Richard W.M. Jones rjones at redhat.com
Mon Jan 20 17:28:28 UTC 2014


On Mon, Jan 20, 2014 at 04:39:42PM +0100, Olaf Hering wrote:
> 
> Is "luks-format" supposed to work with guestfish? Like guestfish <<EOF
> luks-format /dev/sda4 0
> EOF
> 
> Appearently it lacks an option to give the passphrase programmatically.
> Was this option skipped on purpose?

The underlying API takes a passphrase parameter, ie:

        guestfs_luks_format (guestfs_h *g,
                             const char *device,
                             const char *key,     <<-- this one
                             int keyslot);

However the mapping between the API and guestfish intentionally omits
these key/passphrase parameters.  Instead guestfish is supposed to
prompt for a passphrase.  It does this using /dev/tty so you have to
have a human type the passphrase.

If you want to do this programmatically [apart from using a pty, tools
like 'expect', or another API eg. C, Perl or whatever], you can use
the guestfish option '--keys-from-stdin'.  You still have to work out
a way to supply the passphrase to stdin.

For example:

$ echo 123456 | guestfish -x --keys-from-stdin -N part luks-format /dev/sda1 0
libguestfs: trace: add_drive "test1.img" "format:raw"
libguestfs: trace: add_drive = 0
libguestfs: trace: is_config
libguestfs: trace: is_config = 1
libguestfs: trace: launch
libguestfs: trace: get_tmpdir
libguestfs: trace: get_tmpdir = "/tmp"
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: trace: launch = 0
libguestfs: trace: part_disk "/dev/sda" "mbr"
libguestfs: trace: part_disk = 0
libguestfs: trace: luks_format "/dev/sda1" "***" 0
libguestfs: trace: luks_format = 0
libguestfs: trace: shutdown
libguestfs: trace: internal_autosync
libguestfs: trace: internal_autosync = 0
libguestfs: trace: shutdown = 0
libguestfs: trace: close

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming blog: http://rwmj.wordpress.com
Fedora now supports 80 OCaml packages (the OPEN alternative to F#)




More information about the Libguestfs mailing list