| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
We currently use a heuristic to guess how drive names we find
referenced in the guest map to drive names in the appliance. If this
heuristic fails it can cause inspection to fail.
This change adds a new 'name' option to add_drive_opts, which allows
the user to explicitly pass the name of a drive to libguestfs if it is
known. This change also updates the fstab-parsing inspection code to
use this information if it is available.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a NFC on its own, but provides a place-holder for drive metadata which
can be used after launch.
Fixes by RWMJ:
- Fix the tests: this requires a new internal function 'debug-drives'
that dumps out the g->drives information so it can be checked in
two of the tests. Previously these tests used 'debug-cmdline'.
- Test file existence / use_cache_off in the add_drive_opts function,
not when launching qemu in the child process.
- Call free along error paths.
- Add comments.
|
| |
|
|
|
|
|
|
| |
For now, only detect the tool, but support from reading
installed package could be added later ( may require either
a package of pkgsrc, or a smaller tool to read the db ).
|
|
|
|
| |
This would also erronously detect SLES as Opensuse.
|
| |
|
|
|
|
| |
This updates commit 5c2f1a2d9433eeb5aebeec26f0412c703bbe7269.
|
| |
|
|
|
|
|
|
|
| |
These calls allow you to change the number of virtual CPUs assigned to
the appliance.
This also adds a --smp option to virt-rescue.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These APIs let you copy compressed files or devices out from the disk
image.
Compression is useful for large images which are mostly zeroes. We
cannot currently do sparseness detection, and compression gives us a
form of zero detection for free.
Example usage:
$ guestfish --ro -a /dev/vg_pin/F16x64 -i \
compress-out gzip /etc/passwd /tmp/passwd.gz
$ file -z /tmp/passwd.gz
/tmp/passwd.gz: ASCII text (gzip compressed data, was "passwd", from
Unix, last modified: Sun Aug 28 14:40:46 2011)
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This also improves the documentation for this call, pointing out
several pitfalls in using it.
This unfortunately breaks existing callers that might use
guestfs_grub_install without checking for this new group.
|
|
|
|
| |
This event is generated whenever a libguestfs function is called.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
pclose can return > 0 when the status of the command was non-zero.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This code modifies zero, zero-device, is-zero, is-zero-device.
zero and zero-device are modified so that if the blocks of the device
already contain zeroes, then we don't write zeroes. The reason for
this is to avoid unnecessarily making the underlying storage
non-sparse or (in the qcow2 case) growing it.
is-zero and is-zero-device are modified so that zero detection is
faster. This is a nice side effect of making the first change.
Since avoiding unnecessary zeroing involves reading the blocks before
writing them, whereas before we just blindly wrote, this can be
slower. As you can see from the tests below, in the case where the
disk is sparse, it actually turns out to be faster, because we avoid
allocating the underlying blocks.
However in the case where the disk is non-sparse and full of existing
data, it is much slower. There might be a case for an API flag to
adjust whether or not we perform the zero check. I did not add this
flag because it is unlikely that the caller would have enough
information to be able to set the flag correctly.
(Elapsed time in seconds)
Format Test case Before After
Raw Sparse 16.4 5.3
Preallocated zero 17.0 18.8
Preallocated random 16.0 41.3
Qcow2 preallocation=off 18.7 5.6
preallocation=metadata 17.4 5.8
The current code uses a fixed block size of 4K for reading and
writing. I also tried the same tests with a block size of 64K but it
didn't make any significant difference.
(Thanks to Federico Simoncelli for suggesting this change)
|
| |
|
|
|
|
| |
(RHBZ#729887).
|
|
|
|
|
| |
These commands allow you to manipulate the environment within
guestfish.
|
|
|
|
|
| |
Calls to these functions are generated, so there is no need to declare
the functions by hand.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
eg:
*stdin*:37: libguestfs: error: luks_close: Device lukstest is busy.
|
| |
|
|
|
|
| |
This also adds tests.
|
|
|
|
| |
And fix the code so it doesn't generate warnings.
|
|
|
|
| |
Also includes improvements to the OCaml documentation.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Turn:
=item B<-a> | B<--all>
into:
=item B<-a>
=item B<--all>
This gives a more natural-looking manual page, as well as making it
easier to directly link to these sections.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This allows long transfers (FileIn and FileOut operations) to be
cancelled by calling the signal and thread safe guestfs_user_cancel
function.
Most of this commit consists of a multithreaded program that tests
user cancellation of uploads and downloads.
|
|
|
|
|
|
|
|
|
|
|
| |
If the pgroup flag is set in the handle, then the qemu and recovery
subprocesses are placed in separate process groups. The default is
false.
The purpose for setting up a process group is that ^C will not be
passed from the main process down to these processes (killing them).
This allows ^C and other keyboard events to be caught and handled in
the main process.
|
| |
|
|
|
|
| |
Append content to the end of a file.
|
|
|
|
| |
This resizes a btrfs filesystem.
|
|
|
|
|
|
| |
This is a more comprehensive fix for RHBZ#685009. Add a new API which
allows the --force flag to be passed, allowing multiple NTFS resize
operations in a single session.
|
| |
|
|
|
|
| |
List device mapper devices.
|
|
|
|
|
|
|
| |
Although vg-activate and vg-activate-all do make /dev/mapper/VG-LV
devices internally, we always prefer to use the /dev/VG/LV format and
we return this format where possible. Therefore don't mention
/dev/mapper in this documentation.
|
|
|
|
|
|
| |
If the action doesn't take optional arguments, nevertheless force the
optargs_bitmask field in the header to be passed as 0, and give an
error if not.
|
| |
|
| |
|