mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-22 07:03:38 +00:00
Only in end-user messages and documentation. This change was done mostly mechanically using the Perl script attached below. I also changed don't -> don’t etc and made some other simple fixes. See also: https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html ---------- #!/usr/bin/perl -w use strict; use Locale::PO; my $re = qr{'([-\w%.,=?*/]+)'}; my %files = (); foreach my $filename ("po/libguestfs.pot", "po-docs/libguestfs-docs.pot") { my $poref = Locale::PO->load_file_asarray($filename); foreach my $po (@$poref) { if ($po->msgid =~ $re) { my @refs = split /\s+/, $po->reference; foreach my $ref (@refs) { my ($file, $lineno) = split /:/, $ref, 2; $file =~ s{^\.\./}{}; if (exists $files{$file}) { push @{$files{$file}}, $lineno; } else { $files{$file} = [$lineno]; } } } } } foreach my $file (sort keys %files) { unless (-w $file) { warn "warning: $file is probably generated\n"; # have to edit generator next; } my @lines = sort { $a <=> $b } @{$files{$file}}; #print "editing $file at lines ", join (", ", @lines), " ...\n"; open FILE, "<$file" or die "$file: $!"; my @all = (); push @all, $_ while <FILE>; close FILE; my $ext = $file; $ext =~ s/^.*\.//; foreach (@lines) { # Don't mess with verbatim sections in POD files. next if $ext eq "pod" && $all[$_-1] =~ m/^ /; unless ($all[$_-1] =~ $re) { # this can happen for multi-line strings, have to edit it # by hand warn "warning: $file:$_ does not contain expected content\n"; next; } $all[$_-1] =~ s/$re/‘$1’/g; } rename "$file", "$file.bak"; open FILE, ">$file" or die "$file: $!"; print FILE $_ for @all; close FILE; my $mode = (stat ("$file.bak"))[2]; chmod ($mode & 0777, "$file"); }
310 lines
7.5 KiB
Plaintext
310 lines
7.5 KiB
Plaintext
=head1 NAME
|
||
|
||
virt-customize - Customize a virtual machine
|
||
|
||
=head1 SYNOPSIS
|
||
|
||
virt-customize
|
||
[ -a disk.img [ -a disk.img ... ] | -d domname ]
|
||
[--attach ISOFILE] [--attach-format FORMAT]
|
||
[ -c URI | --connect URI ] [ -n | --dry-run ]
|
||
[ --format FORMAT] [ -m MB | --memsize MB ]
|
||
[ --network | --no-network ]
|
||
[ -q | --quiet ] [--smp N] [ -v | --verbose ] [-x]
|
||
__CUSTOMIZE_SYNOPSIS__
|
||
|
||
virt-customize [ -V | --version ]
|
||
|
||
=head1 DESCRIPTION
|
||
|
||
Virt-customize can customize a virtual machine (disk image) by
|
||
installing packages, editing configuration files, and so on.
|
||
|
||
Virt-customize modifies the guest or disk image I<in place>. The
|
||
guest must be shut down. If you want to preserve the existing
|
||
contents of the guest, I<you must snapshot, copy or clone the disk first>.
|
||
|
||
You do I<not> need to run virt-customize as root. In fact we'd
|
||
generally recommend that you don't.
|
||
|
||
Related tools include: L<virt-sysprep(1)> and L<virt-builder(1)>.
|
||
|
||
=head1 OPTIONS
|
||
|
||
=over 4
|
||
|
||
=item B<--help>
|
||
|
||
Display brief help.
|
||
|
||
=item B<-a> file
|
||
|
||
=item B<--add> file
|
||
|
||
Add I<file> which should be a disk image from a virtual machine.
|
||
|
||
The format of the disk image is auto-detected. To override this and
|
||
force a particular format use the I<--format> option.
|
||
|
||
=item B<-a> URI
|
||
|
||
=item B<--add> URI
|
||
|
||
Add a remote disk. The URI format is compatible with guestfish.
|
||
See L<guestfish(1)/ADDING REMOTE STORAGE>.
|
||
|
||
=item B<--attach> ISOFILE
|
||
|
||
The given disk is attached to the libguestfs appliance. This is used
|
||
to provide extra software repositories or other data for
|
||
customization.
|
||
|
||
You probably want to ensure the volume(s) or filesystems in the
|
||
attached disks are labelled (or use an ISO volume name) so that you
|
||
can mount them by label in your run-scripts:
|
||
|
||
mkdir /tmp/mount
|
||
mount LABEL=EXTRA /tmp/mount
|
||
|
||
You can have multiple I<--attach> options, and the format can be any
|
||
disk format (not just an ISO).
|
||
|
||
=item B<--attach-format> FORMAT
|
||
|
||
Specify the disk format for the next I<--attach> option. The
|
||
C<FORMAT> is usually C<raw> or C<qcow2>. Use C<raw> for ISOs.
|
||
|
||
=item B<--colors>
|
||
|
||
=item B<--colours>
|
||
|
||
Use ANSI colour sequences to colourize messages. This is the default
|
||
when the output is a tty. If the output of the program is redirected
|
||
to a file, ANSI colour sequences are disabled unless you use this
|
||
option.
|
||
|
||
=item B<-c> URI
|
||
|
||
=item B<--connect> URI
|
||
|
||
If using libvirt, connect to the given I<URI>. If omitted, then we
|
||
connect to the default libvirt hypervisor.
|
||
|
||
If you specify guest block devices directly (I<-a>), then libvirt is
|
||
not used at all.
|
||
|
||
=item B<-d> guest
|
||
|
||
=item B<--domain> guest
|
||
|
||
Add all the disks from the named libvirt guest. Domain UUIDs can be
|
||
used instead of names.
|
||
|
||
=item B<-n>
|
||
|
||
=item B<--dry-run>
|
||
|
||
Perform a read-only "dry run" on the guest. This runs the sysprep
|
||
operation, but throws away any changes to the disk at the end.
|
||
|
||
=item B<--echo-keys>
|
||
|
||
When prompting for keys and passphrases, virt-customize normally turns
|
||
echoing off so you cannot see what you are typing. If you are not
|
||
worried about Tempest attacks and there is no one else in the room
|
||
you can specify this flag to see what you are typing.
|
||
|
||
=item B<--format> raw|qcow2|..
|
||
|
||
=item B<--format> auto
|
||
|
||
The default for the I<-a> option is to auto-detect the format of the
|
||
disk image. Using this forces the disk format for I<-a> options which
|
||
follow on the command line. Using I<--format auto> switches back to
|
||
auto-detection for subsequent I<-a> options.
|
||
|
||
For example:
|
||
|
||
virt-customize --format raw -a disk.img
|
||
|
||
forces raw format (no auto-detection) for F<disk.img>.
|
||
|
||
virt-customize --format raw -a disk.img --format auto -a another.img
|
||
|
||
forces raw format (no auto-detection) for F<disk.img> and reverts to
|
||
auto-detection for F<another.img>.
|
||
|
||
If you have untrusted raw-format guest disk images, you should use
|
||
this option to specify the disk format. This avoids a possible
|
||
security problem with malicious guests (CVE-2010-3851).
|
||
|
||
=item B<--keys-from-stdin>
|
||
|
||
Read key or passphrase parameters from stdin. The default is
|
||
to try to read passphrases from the user by opening F</dev/tty>.
|
||
|
||
=item B<-m> MB
|
||
|
||
=item B<--memsize> MB
|
||
|
||
Change the amount of memory allocated to I<--run> scripts. Increase
|
||
this if you find that I<--run> scripts or the I<--install> option are
|
||
running out of memory.
|
||
|
||
The default can be found with this command:
|
||
|
||
guestfish get-memsize
|
||
|
||
=item B<--network>
|
||
|
||
=item B<--no-network>
|
||
|
||
Enable or disable network access from the guest during the installation.
|
||
|
||
Enabled is the default. Use I<--no-network> to disable access.
|
||
|
||
The network only allows outgoing connections and has other minor
|
||
limitations. See L<virt-rescue(1)/NETWORK>.
|
||
|
||
If you use I<--no-network> then certain other options such as
|
||
I<--install> will not work.
|
||
|
||
This does not affect whether the guest can access the network once it
|
||
has been booted, because that is controlled by your hypervisor or
|
||
cloud environment and has nothing to do with virt-customize.
|
||
|
||
Generally speaking you should I<not> use I<--no-network>. But here
|
||
are some reasons why you might want to:
|
||
|
||
=over 4
|
||
|
||
=item 1.
|
||
|
||
Because the libguestfs backend that you are using doesn't support the
|
||
network. (See: L<guestfs(3)/BACKEND>).
|
||
|
||
=item 2.
|
||
|
||
Any software you need to install comes from an attached ISO, so you
|
||
don't need the network.
|
||
|
||
=item 3.
|
||
|
||
You don’t want untrusted guest code trying to access your host network
|
||
when running virt-customize. This is particularly an issue when you
|
||
don't trust the source of the operating system templates. (See
|
||
L</SECURITY> below).
|
||
|
||
=item 4.
|
||
|
||
You don’t have a host network (eg. in secure/restricted environments).
|
||
|
||
=back
|
||
|
||
=item B<-q>
|
||
|
||
=item B<--quiet>
|
||
|
||
Don’t print log messages.
|
||
|
||
To enable detailed logging of individual file operations, use I<-x>.
|
||
|
||
=item B<--smp> N
|
||
|
||
Enable N E<ge> 2 virtual CPUs for I<--run> scripts to use.
|
||
|
||
=item B<-v>
|
||
|
||
=item B<--verbose>
|
||
|
||
Enable verbose messages for debugging.
|
||
|
||
=item B<-V>
|
||
|
||
=item B<--version>
|
||
|
||
Display version number and exit.
|
||
|
||
=item B<-x>
|
||
|
||
Enable tracing of libguestfs API calls.
|
||
|
||
=back
|
||
|
||
=head2 Customization options
|
||
|
||
__CUSTOMIZE_OPTIONS__
|
||
|
||
=head1 SELINUX
|
||
|
||
For guests which make use of SELinux, special handling for them might
|
||
be needed when using operations which create new files or alter
|
||
existing ones.
|
||
|
||
For further details, see L<virt-builder(1)/SELINUX>.
|
||
|
||
=head1 EXIT STATUS
|
||
|
||
This program returns 0 on success, or 1 if there was an error.
|
||
|
||
=head1 ENVIRONMENT VARIABLES
|
||
|
||
=over 4
|
||
|
||
=item C<VIRT_TOOLS_DATA_DIR>
|
||
|
||
This can point to the directory containing data files used for Windows
|
||
firstboot installation.
|
||
|
||
Normally you do not need to set this. If not set, a compiled-in
|
||
default will be used (something like F</usr/share/virt-tools>).
|
||
|
||
This directory may contain the following files:
|
||
|
||
=over 4
|
||
|
||
=item F<rhsrvany.exe>
|
||
|
||
This is the RHSrvAny Windows binary, used to install a "firstboot"
|
||
script in Windows guests. It is required if you intend to use the
|
||
I<--firstboot> or I<--firstboot-command> options with Windows guests.
|
||
|
||
See also: C<https://github.com/rwmjones/rhsrvany>
|
||
|
||
=item F<pvvxsvc.exe>
|
||
|
||
This is a Windows binary shipped with SUSE VMDP, used to install a "firstboot"
|
||
script in Windows guests. It is required if you intend to use the
|
||
I<--firstboot> or I<--firstboot-command> options with Windows guests.
|
||
|
||
=back
|
||
|
||
=back
|
||
|
||
For other environment variables, see L<guestfs(3)/ENVIRONMENT VARIABLES>.
|
||
|
||
=head1 SEE ALSO
|
||
|
||
L<guestfs(3)>,
|
||
L<guestfish(1)>,
|
||
L<virt-builder(1)>,
|
||
L<virt-clone(1)>,
|
||
L<virt-rescue(1)>,
|
||
L<virt-resize(1)>,
|
||
L<virt-sparsify(1)>,
|
||
L<virt-sysprep(1)>,
|
||
L<virsh(1)>,
|
||
L<lvcreate(8)>,
|
||
L<qemu-img(1)>,
|
||
L<scrub(1)>,
|
||
L<http://libguestfs.org/>,
|
||
L<http://libvirt.org/>.
|
||
|
||
=head1 AUTHORS
|
||
|
||
Richard W.M. Jones L<http://people.redhat.com/~rjones/>
|
||
|
||
=head1 COPYRIGHT
|
||
|
||
Copyright (C) 2011-2017 Red Hat Inc.
|