| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
(cherry picked from commit 04ea1375c55aa67df4e7fc61dbb534111767f3b6)
|
|
|
|
| |
NB: This requires hivex >= 1.3.2 before this syntax becomes true.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This avoids conflicts with the globally installed libguestfs
appliance, or lets us build in multiple local directories at the same
time without conflicts.
|
|
|
|
|
| |
The files could be listed in any order, resulting in the test failing
for no reason. Sort the output of tar.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 adds support for various Registry keys under HKEY_USERS (user
preferences).
(1) HKEY_USERS\<SID>
where <SID> is a User SID.
For example:
# virt-win-reg Windows 'HKEY_USERS\S-1-5-19'
lists out the LocalService user's registry.
(2) HKEY_USERS\<username>
where <username> is a Windows local username (this is a
libguestfs extension).
For example:
# virt-win-reg Windows 'HKEY_USERS\rjones'
lists out the user preferences of user 'rjones'.
HKU can be used as an abbreviation for HKEY_USERS. Merging is also
supported.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The crucial change is the tuple that is returned by map_path_to_hive:
- my ($hivename, [...]) = map_path_to_hive ($_);
+ my ($hiveshortname, $hivefile, [...]) = map_path_to_hive ($_);
Previously the $hivename was both the name of the hive (eg. "sam"),
the name of the local copy in /tmp, and the name of the hive in
%systemroot%\system32\config.
In the new code, the $hiveshortname (eg. "sam") is still used for the
local copy in /tmp, but we return $hivefile which is the full Windows
path (eg. "/windows/system32/config/sam").
The purpose of this change is to allow us in future to return hives
from other Windows directories, specifically HKEY_USERS hives from
Windows home directories.
Although this is just code motion, it requires some quite extensive
changes to virt-win-reg.
|
|
|
|
| |
This also requires hivex >= 1.2.7.
|
| |
|
|
|
|
| |
This is now used consistently across all the documentation.
|
|
|
|
|
| |
Remove all the run*locally scripts and replace with a single top level
./run shell script.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a fairly straightforward translation of Perl virt-resize into
OCaml. It is bug-for-bug and feature-for-feature identical to the
Perl version, except as noted below.
The motivation is to have a more solid, high-level, statically safe
compiled language to go forwards with fixing some of the harder bugs
in virt-resize. In particular contracts between different parts of
the program are now handled by statically typed structures checked at
compile time, instead of the very ad-hoc unchecked hash tables used by
the Perl version.
OCaml and the ocaml-pcre library (Perl-Compatible Regular Expressions
bindings for OCaml) are required.
Extra features in this version:
- 32 bit hosts are now supported.
- We try hard to handle the case where the target disk is not "clean"
(ie. all zeroes). It usually works for this case, whereas the
previous version would usually fail. However it is still
recommended that the system administrator creates a fresh blank disk
for the target before running the program.
- User messages are a bit more verbose and helpful. You can turn
these off with the -q (--quiet) option.
There is one lost feature:
- Ability to specify >= T (terabytes) sizes in command line size
expressions has been removed. This probably didn't work in the Perl
version.
Other differences:
- The first partition on the target is no longer aligned; instead we
place it at the same sector as on the source. I suspect that
aligning it was causing the bootloader failures.
- Because it's easier, we do more sanity checking on the source disk.
This might lead to more failures, but they'd be failures you'd want
to know about.
- The order in which operations are performed has been changed to make
it more logical. The user should not notice any functional
difference, but debug messages will be quite a bit different.
- virt-resize is a compiled binary, not a script.
|
| |
|
|
|
|
| |
This is just code motion.
|
|
|
|
| |
This is just code motion.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The methods $h->set_progress_callback and $h->clear_progress_callback
have been removed, and replaced with a complete mechanism for setting
and deleting general-purpose events.
This also updates virt-resize to use the new API.
|
|
|
|
|
|
|
| |
qemu-img used to allow you to specify a fractional image size in bytes
(or at least, it used to ignore the part after the decimal place). In
qemu-img 0.14 it no longer does this so we round down the size to a
whole number of bytes.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Relatively trivial wrappers around the equivalent guestfish
commands. Change also includes new man pages.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
I have diffed the output from the original virt-df with this
new version, and they agree very closely. Some differences:
- Old virt-df have a divide-by-zero error in cases where the
number of used inodes was 0. New virt-df fixes this.
- New virt-df uses gnulib human_readable library which displays
numbers to 3 significant figures for -h output (old version
used an ad hoc function).
|
| |
|
|
|
|
|
|
|
|
| |
This tool replaces virt-list-filesystems and virt-list-partitions with
a new tool written in C with a more uniform command line structure
and output.
This existing Perl tools are deprecated but remain indefinitely.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This now includes a product string, major and minor version,
hostname and even some applications.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With changes in the core API since 1.5, virt-cat was little
more than a Perl wrapper which did some command line argument
processing. Thus it could easily be rewritten in C.
This version also shares core command line argument processing
with guestfish and guestmount, so the options have changed
slightly (old-style command line *is* supported).
virt-cat -a disk.img file [file ...]
virt-cat -d domname file [file ...]
Several other guestfish options are supported including encryption,
and with the new style multiple files can be downloaded. See the
man page for details.
|
|
|
|
|
|
|
|
| |
We were generating this dummy 'Fedora' image already in the
tools directory. It contains just enough Fedora-like files
to fool our inspection code and thus to test the tools.
This is general enough that we can use it everywhere.
|
| |
|
|
|
|
|
|
| |
Change virt-list-filesystems to use the core inspection API
instead of the deprecated Sys::Guestfs::Lib::get_partitions
function.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update the following tools to use the C API for inspection:
- virt-cat
- virt-edit
- virt-ls
- virt-tar
- virt-win-reg
None of the tools in the tools/ directory now use the deprecated
Perl inspection APIs.
|
|
|
|
|
|
|
| |
This was probably not a security issue, but this change
makes the code cleaner by not opening the tmp file twice.
Also be more careful about error checking in close syscall.
|
| |
|
| |
|
|
|
|
| |
This enables networking in the rescue shell.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds two new options: --format specifies the format of the
input disk, and --output-format specified the format of the output
disk.
Requiring the format of the output disk seems a bit strange at first:
after all, this is the disk that the virt-resize user has to create.
However it is needed because we sometimes reopen this disk, after
copying data over the first sector, and in theory a raw-format guest
could write a qcow2 header here and have it copied to the output
disk, which we would subsequently reopen.
|